PSLookupPropertyHandlerCLSID 函数 (propsys.h)

获取每台计算机注册的文件属性处理程序 (CLSID) 的类标识符。

语法

PSSTDAPI PSLookupPropertyHandlerCLSID(
  [in]  PCWSTR pszFilePath,
  [out] CLSID  *pclsid
);

parameters

[in] pszFilePath

类型: PCWSTR

指向以 null 结尾的 Unicode 缓冲区的指针,该缓冲区包含请求其属性处理程序 CLSID 的文件的绝对路径。

[out] pclsid

类型: CLSID*

当此函数返回时,包含请求的属性处理程序 CLSID。

返回值

类型: PSSTDAPI

如果成功,则返回 S_OK ,否则返回错误值。

注解

有关如何注册处理程序的信息,请参阅 初始化属性处理程序

此函数仅返回在 HKEY_LOCAL_MACHINE 下注册的那些处理程序。

大多数调用应用程序不应需要调用此方法或使用 CoCreateInstance 直接创建属性处理程序。 相反,调用应用程序应使用 IShellItem2::GetPropertyStore 为 Windows Vista 上的 Shell 项创建属性存储。 IShellItem2::GetPropertyStore 为 Shell 项提供了最大的可用属性集,以及用于准确自定义要返回的属性的最多选项。

如果未为指定文件注册任何属性处理程序,则此函数将返回错误代码。 发生这种情况时,可能仍可以从 从 IShellItem2::GetPropertyStore 返回的属性存储读取某些文件系统属性。

需要从代码创建属性处理程序且必须在 Windows Vista 和 Windows XP 上运行的应用程序可以调用 PSGetItemPropertyHandler ,以通过 Microsoft Windows 桌面搜索 (WDS) 可再发行组件为 Shell 项创建属性存储。

示例

以下示例将作为较大程序的一部分包含,演示如何使用 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 SP2、Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 SP1 [仅限桌面应用]
目标平台 Windows
标头 propsys.h
Library Propsys.lib
DLL Propsys.dll (版本 6.0 或更高版本)
可再发行组件 Windows 桌面搜索 (WDS) 3.0

请参阅

IShellItem2::GetPropertyStore

PSGetItemPropertyHandler