创建内存中属性存储。
语法
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 的内存中属性存储对象。
这是由 InMemoryPropertyStore () CLSID_InMemoryPropertyStore 和 InMemoryPropertyStoreMarshalByValue (CLSID_InMemoryPropertyStoreMarshalByValue) 标识的对象,使用 CoCreateInstance 构造。
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 |