次の方法で共有


PSCreateMemoryPropertyStore 関数 (propsys.h)

メモリ内プロパティ ストアを作成します。

構文

PSSTDAPI PSCreateMemoryPropertyStore(
  [in]  REFIID riid,
  [out] void   **ppv
);

パラメーター

[in] riid

種類: REFIID

要求されたインターフェイス ID への参照。

[out] ppv

型: void**

この関数が戻るとき、 には、目的のインターフェイス (通常 は IPropertyStore または IPersistSerializedPropStorage) へのポインターが含まれます。

戻り値

種類: HRESULT

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

注釈

この関数は、IPropertyStoreINamedPropertyStore、IPropertyStoreCacheIPersistStreamIPropertyBag、および 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

こちらもご覧ください

PSCreateMultiplexPropertyStore