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 的内存中属性存储对象。
这是由 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 |