Поделиться через


Функция 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) и InMemoryPropertyStoreMarshalByValue (CLSID_InMemoryPropertyStoreMarshalByValue), созданный с помощью CoCreateInstance.

InMemoryPropertyStoreMarshalByValue можно использовать в проектах, которые передают объекты между процессами, чтобы сделать их более эффективными. Он реализует маршалирование по значению, создавая копию объекта в контексте unmarshal и избегая межпроцессного взаимодействия, что может быть дорогостоящим.

Хранилище свойств памяти не имеет предопределенного представления, поэтому вызовы IPropertyStore::Commit являются no-op.

Хранилище свойств памяти является потокобезопасной и гибкой.

Примеры

В следующем примере показано, как использовать 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 с пакетом обновления 2 (SP2), Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 с пакетом обновления 1 (SP1) [только классические приложения]
Целевая платформа Windows
Header propsys.h
Библиотека Propsys.lib
DLL Propsys.dll (версия 6.0 или более поздняя)
Распространяемые компоненты Windows Desktop Search (WDS) 3.0

См. также раздел

PSCreateMultiplexPropertyStore