PSCreateMemoryPropertyStore 関数 (propsys.h)
メモリ内プロパティ ストアを作成します。
構文
PSSTDAPI PSCreateMemoryPropertyStore(
[in] REFIID riid,
[out] void **ppv
);
パラメーター
[in] riid
種類: REFIID
要求されたインターフェイス ID への参照。
[out] ppv
型: void**
この関数が戻るとき、 には、目的のインターフェイス (通常 は IPropertyStore または IPersistSerializedPropStorage) へのポインターが含まれます。
戻り値
種類: HRESULT
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
注釈
この関数は、IPropertyStore、INamedPropertyStore、IPropertyStoreCache、IPersistStream、IPropertyBag、および IPersistSerializedPropStorage を実装するメモリ内プロパティ ストア オブジェクトを作成します。
これは、CoCreateInstance で構築された (CLSID_InMemoryPropertyStore
) と (CLSID_InMemoryPropertyStoreMarshalByValue
) でInMemoryPropertyStore
識別されるのとInMemoryPropertyStoreMarshalByValue
同じオブジェクトです。
InMemoryPropertyStoreMarshalByValue
より効率的にするために、プロセス間でオブジェクトを渡す設計で使用できます。 値 によるマーシャリングを実装し、非マーシャリング コンテキストでオブジェクトのコピーを作成し、コストの高いプロセス間通信を回避します。
メモリ プロパティ ストアには既存の表現がないため、 IPropertyStore::Commit の呼び出しは操作不要です。
メモリ プロパティ ストアはスレッド セーフでアジャイルです。
例
次の例は、InMemoryPropertyStore
の使用方法を示しています。
auto memPropStore = wil::CoCreateInstance<InMemoryPropertyStore, IPropertyStore>();
auto value = PROPVARIANT{};
value.vt = VT_LPWSTR;
value.pwszVal = L"Title";
THROW_IF_FAILED(memPropStore->SetValue(PKEY_Title, value));
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | WINDOWS XP と SP2、Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 SP1 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | propsys.h |
Library | Propsys.lib |
[DLL] | Propsys.dll (バージョン 6.0 以降) |
再頒布可能パッケージ | Windows デスクトップ検索 (WDS) 3.0 |