Функция PSCreateAdapterFromPropertyStore (propsys.h)
Создает адаптер из IPropertyStore.
Синтаксис
PSSTDAPI PSCreateAdapterFromPropertyStore(
[in] IPropertyStore *pps,
[in] REFIID riid,
[out] void **ppv
);
Параметры
[in] pps
Тип: IPropertyStore*
Указатель на объект IPropertyStore , представляющий хранилище свойств.
[in] riid
Тип: REFIID
Ссылка на IID.
[out] ppv
Тип: void**
При возврате этой функции содержит указатель интерфейса, запрошенный в riid.
Возвращаемое значение
Тип: HRESULT
Если эта функция завершается успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
Объект адаптера реализует IPropertySetStorage, IPropertyStore, IPropertyStoreCapabilities и IObjectProvider.
Используйте эту функцию, если вам нужен объект, реализующий IPropertyStore с API, для которого требуется интерфейс IPropertySetStorage . Созданный объект также может быть полезен для расширения пространства имен, которое хочет обеспечить поддержку привязки к элементам пространства имен с помощью IPropertySetStorage. Приложения должны вызывать этот объект только из одного потока за раз.
Хранилище свойств адаптера, созданное этой функцией, сохраняет ссылку на исходный интерфейс IPropertyStore . Таким образом, вызывающее приложение может при любой удобной возможности освобождать ссылку на исходный IPropertyStore после вызова этой функции.
Хранилище свойств адаптера при необходимости вызывает методы в интерфейсе IPropertyStore . Таким образом, если вызывающее приложение записывает значения в хранилище, оно должно вызывать метод IPropertyStore::Commit только в одном из интерфейсов.
Примеры
В следующем примере, который будет включен в состав более крупной программы, показано, как использовать PSCreateAdapterFromPropertyStore для использования хранилища свойств адаптера для преобразования интерфейса IPropertyStore в интерфейс IPropertySetStorage .
// IPropertyStore *ppropstore;
// Assume variable ppropstore is initialized and valid
IPropertySetStorage *pSetStorage;
HRESULT hr = PSCreateadapterFromPropertyStore(ppropstore, IID_PPV_ARGS(&pSetStorage));
if (SUCCEEDED(hr))
{
// pSetStorage is now valid and can be used to access the data in ppropstore.
pSetStorage->Release();
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | 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 |