PSGetItemPropertyHandler 函数 (propsys.h)
检索 Shell 项的属性处理程序。
语法
PSSTDAPI PSGetItemPropertyHandler(
[in] IUnknown *punkItem,
[in] BOOL fReadWrite,
[in] REFIID riid,
[out] void **ppv
);
参数
[in] punkItem
类型: IUnknown*
指向支持 IShellItem 的 Shell 项的 IUnknown 接口的指针。
Windowsxp: 使用 SHCreateShellItem 创建 Shell 项。
Windows Vista: 使用 SHCreateItemFromIDList、 SHCreateItemFromParsingName、 SHCreateItemFromRelativeName、 SHCreateItemInKnownFolder 或 SHCreateItemWithParent 创建 Shell 项。
[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 之前,必须使用 CoInitialize 或 OleInitialize 初始化组件对象模型 (COM) 。 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 SP2、Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 SP1 [仅限桌面应用] |
目标平台 | Windows |
标头 | propsys.h |
Library | Propsys.lib |
DLL | Propsys.dll (版本 6.0 或更高版本) |
可再发行组件 | Windows 桌面搜索 (WDS) 3.0 |