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