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


Функция PSGetItemPropertyHandler (propsys.h)

Извлекает обработчик свойств для элемента оболочки.

Синтаксис

PSSTDAPI PSGetItemPropertyHandler(
  [in]  IUnknown *punkItem,
  [in]  BOOL     fReadWrite,
  [in]  REFIID   riid,
  [out] void     **ppv
);

Параметры

[in] punkItem

Тип: IUnknown*

Указатель на интерфейс IUnknown элемента оболочки, поддерживающего IShellItem.

Windows XP: Используйте SHCreateShellItem для создания элемента оболочки.

Windows Vista: Используйте SHCreateItemFromIDList, SHCreateItemFromParsingName, SHCreateItemFromRelativeName, SHCreateItemInKnownFolder или SHCreateItemWithParent для создания элемента оболочки.

[in] fReadWrite

Тип: BOOL

Значение TRUE для получения обработчика свойств чтения и записи. ЗНАЧЕНИЕ FALSE для получения обработчика свойств только для чтения.

[in] riid

Тип: REFIID

Ссылка на IID интерфейса, который должен возвращать объект обработчика. Это должен быть IPropertyStore или интерфейс, производный от IPropertyStore.

[out] ppv

Тип: void**

При возврате этой функции содержит указатель интерфейса, запрошенный в riid.

Возвращаемое значение

Тип: PSSTDAPI

Возвращает S_OK в случае успешного выполнения или значение ошибки в противном случае.

Комментарии

Эта функция поддерживается в Windows XP и Windows Vista. Для приложений, поддерживаемых только в Windows Vista или более поздних версий, рекомендуется использовать IShellItem2::GetPropertyStore вместо PSGetItemPropertyHandler. Этот метод предоставляет более широкий набор свойств в возвращаемом хранилище свойств.

Эта функция примерно эквивалентна передаче флага GPS_HANDLERPROPERTIESONLY в IShellItem2::GetPropertyStore.

Перед вызовом PSGetItemPropertyHandler необходимо инициализировать объектную модель компонентов (COM) с помощью CoInitialize или OleInitialize. COM должен оставаться инициализированным в течение времени существования этого объекта.

Примеры

В следующем примере, который будет включен в более крупную программу, показано, как использовать PSGetItemPropertyHandler для получения обработчика свойств для элемента.

// IShellItem *psi;
// Assume variable psi is valid and initialized.
IPropertyStore *pStore;

HRESULT hr = PSGetItemPropertyHandler(psi, FALSE, IID_PPV_ARGS(&pStore));

if (SUCCEEDED(hr))
{
    // pStore is now valid and contains properties exposed through the 
    // property handler for the item.
 
    pStore->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