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: 使用 SHCreateItemFromIDListSHCreateItemFromParsingNameSHCreateItemFromRelativeNameSHCreateItemInKnownFolderSHCreateItemWithParent 创建 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 之前,必须使用 CoInitializeOleInitialize 初始化组件对象模型 (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