PSCreateMemoryPropertyStore 函式 (propsys.h)
建立記憶體內部屬性存放區。
語法
PSSTDAPI PSCreateMemoryPropertyStore(
[in] REFIID riid,
[out] void **ppv
);
參數
[in] riid
類型: REFIID
所要求介面標識碼的參考。
[out] ppv
類型: void**
當此函式傳回時,包含所需介面的指標,通常是 IPropertyStore 或 IPersistSerializedPropStorage。
傳回值
類型: HRESULT
如果此函式成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。
備註
此函式會建立記憶體內部屬性存放區物件,該物件會實作 IPropertyStore、 INamedPropertyStore、 IPropertyStoreCache、 IPersistStream、 IPropertyBag 和 IPersistSerializedPropStorage。
這是使用 InMemoryPropertyStore
CLSID_InMemoryPropertyStore
CoCreateInstance 建構 () 和 InMemoryPropertyStoreMarshalByValue
(CLSID_InMemoryPropertyStoreMarshalByValue
) 所識別的相同物件。
InMemoryPropertyStoreMarshalByValue
可用於在進程之間傳遞對象的設計,使其更有效率。 它會 依值實作封送處理,並在 unmarshal 內容中建立對象的複本,並避免程式間通訊成本很高。
記憶體屬性存放區沒有前置表示法,因此呼叫 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 |
程式庫 | Propsys.lib |
Dll | Propsys.dll (6.0 版或更新版本) |
可轉散發套件 | Windows 桌面搜尋 (WDS) 3.0 |