Функция PSLookupPropertyHandlerCLSID (propsys.h)
Возвращает идентификатор класса (CLSID) зарегистрированного обработчика свойств файла на компьютере.
Синтаксис
PSSTDAPI PSLookupPropertyHandlerCLSID(
[in] PCWSTR pszFilePath,
[out] CLSID *pclsid
);
Параметры
[in] pszFilePath
Тип: PCWSTR
Указатель на буфер Юникода, заканчивающийся null, который содержит абсолютный путь к файлу, обработчик свойств которого запрашивается CLSID.
[out] pclsid
Тип: CLSID*
При возврате этой функции содержит запрошенный обработчик свойств CLSID.
Возвращаемое значение
Тип: PSSTDAPI
Возвращает S_OK в случае успешного выполнения или значение ошибки в противном случае.
Комментарии
Сведения о том, как зарегистрировать обработчик, см. в разделе Инициализация обработчиков свойств.
Эта функция возвращает только обработчики, зарегистрированные в HKEY_LOCAL_MACHINE.
Большинству вызывающих приложений не нужно вызывать этот метод или использовать CoCreateInstance для создания обработчика свойств напрямую. Вместо этого вызывающие приложения должны использовать IShellItem2::GetPropertyStore для создания хранилища свойств для элемента оболочки в Windows Vista. IShellItem2::GetPropertyStore предоставляет наибольший набор доступных свойств для элемента оболочки и большинство параметров для настройки возвращаемых свойств.
Если для указанного файла не зарегистрирован обработчик свойств, эта функция возвращает код ошибки. В этом случае по-прежнему может быть возможно чтение определенных свойств файловой системы из хранилища свойств, возвращаемого из IShellItem2::GetPropertyStore.
Приложения, которым необходимо создать обработчик свойств на основе кода и которые должны выполняться как в Windows Vista, так и в Windows XP, могут вызывать PSGetItemPropertyHandler , чтобы создать хранилище свойств для элемента оболочки с помощью распространяемого компонента Поиска компьютеров Microsoft Windows (WDS).
Примеры
В следующем примере, который будет включен в состав более крупной программы, показано, как использовать PSLookupPropertyHandlerCLSID.
CLSID clsid;
HRESULT hr = PSLookupPropertyHandlerCLSID(L"C:\\windows\\system32\\shell32.dll", &clsid);
if (SUCCEEDED(hr))
{
// clsid contains the CLSID of the property handler used for
// C:\windows\system32\shell32.dll.
}
Требования
Минимальная версия клиента | 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 |