PSGetItemPropertyHandlerWithCreateObject 函数 (propsys.h)

检索 Shell 项的属性处理程序。

语法

PSSTDAPI PSGetItemPropertyHandlerWithCreateObject(
  [in]  IUnknown *punkItem,
  [in]  BOOL     fReadWrite,
  [in]  IUnknown *punkCreateObject,
  [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] punkCreateObject

类型: IUnknown*

指向支持 ICreateObject 的类工厂对象的 IUnknown 接口的指针。

[in] riid

类型: REFIID

对要通过 ppv 检索的接口的 IID 的引用。

[out] ppv

类型: void**

当此函数成功返回时,包含 riid 中请求的接口指针。 这通常是 IPropertyStoreIPropertyStoreCapabilities

返回值

类型: PSSTDAPI

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

注解

Windows XP 中支持此函数,作为 Microsoft Windows 桌面搜索 (WDS) redistributable 的一部分,其中包括 IPropertyStore 和支持接口。 对于仅在 Windows Vista 或更高版本上支持的应用程序,我们建议使用 IShellItem2::GetPropertyStoreWithCreateObject 而不是 PSGetItemPropertyHandlerWithCreateObject ,因为 IShellItem2::GetPropertyStoreWithCreateObject 在返回的属性存储中提供了更丰富的属性集。

此函数大致等效于将 GPS_HANDLERPROPERTIESONLY 标志传递给 IShellItem2::GetPropertyStoreWithCreateObject

punkCreateObject 参数支持在与调用方不同的上下文中创建属性存储。 例如, ICreateObject 实现可能会导致在另一个进程中创建属性存储。 此参数仅用于支持该参数并在 下 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers注册的属性处理程序。

在调用 PSGetItemPropertyHandlerWithCreateObject 之前,必须使用 CoInitializeOleInitialize 初始化组件对象模型 (COM) 。 COM 必须在此对象的生存期内保持初始化状态。

示例

以下示例将作为更大的程序的一部分包含,演示如何使用 PSGetItemPropertyHandlerWithCreateObject 获取项的属性处理程序。

// IShellItem *psi;
// ICreateObject *pco;
// Assume variables pco and psi are valid and initialized.
IPropertyStore *pStore;

HRESULT hr = PSGetItemPropertyHandlerWithCreateObject(psi, FALSE, pco, 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

另请参阅

IShellItem2::GetPropertyStoreWithCreateObject

初始化属性处理程序