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


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

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

IPropertySetStorage

IPropertyStore

PSCreatePropertyStoreFromPropertySetStorage