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


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

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

Синтаксис

PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(
  [in]  IUnknown *punkItem,
  [in]  BOOL     fReadWrite,
  [in]  IUnknown *punkCreateObject,
  [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] punkCreateObject

Тип: IUnknown*

Указатель на интерфейс IUnknown объекта фабрики класса, который поддерживает ICreateObject.

[in] riid

Тип: REFIID

Ссылка на IID интерфейса, извлекаемого через ppv.

[out] ppv

Тип: void**

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

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

Тип: PSSTDAPI

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

Комментарии

Эта функция поддерживается в Windows XP как часть распространяемого компонента Поиска компьютеров Microsoft Windows (WDS), который включает iPropertyStore и вспомогательные интерфейсы. Для приложений, поддерживаемых только в Windows Vista или более поздних версиях, рекомендуется использовать IShellItem2::GetPropertyStoreWithCreateObject вместо PSGetItemPropertyHandlerWithCreateObject , так как IShellItem2::GetPropertyStoreWithCreateObject предоставляет более широкий набор свойств в возвращаемом хранилище свойств.

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

Параметр punkCreateObject позволяет создать хранилище свойств в контексте, отличном от контекста вызывающего объекта. Например, реализация ICreateObject может привести к созданию хранилища свойств в другом процессе. Этот параметр используется только для обработчиков свойств, которые его поддерживают и которые зарегистрированы в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers.

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

Примеры

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

// IShellItem *psi;
// ICreateObject *pco;
// Assume variables pco and psi are valid and initialized.
IPropertyStore *pStore;

HRESULT hr = PSGetItemPropertyHandlerWithCreateObject(psi, FALSE, pco, 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

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

IShellItem2::GetPropertyStoreWithCreateObject

Инициализация обработчиков свойств