psCreateMemoryPropertyStore 函数 (propsys.h)

创建内存中属性存储。

语法

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

参数

[in] riid

类型: REFIID

对请求的接口 ID 的引用。

[out] ppv

类型: void**

当此函数返回时,包含指向所需接口的指针,通常为 IPropertyStoreIPersistSerializedPropStorage

返回值

类型: HRESULT

如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

此函数创建实现 IPropertyStoreINamedPropertyStoreIPropertyStoreCacheIPersistStreamIPropertyBagIPersistSerializedPropStorage 的内存中属性存储对象。

这是由 InMemoryPropertyStore () CLSID_InMemoryPropertyStoreInMemoryPropertyStoreMarshalByValue (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

另请参阅

PSCreateMultiplexPropertyStore