Функция 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 |