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 |