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: 使用 SHCreateItemFromIDList、 SHCreateItemFromParsingName、 SHCreateItemFromRelativeName、 SHCreateItemInKnownFolder 或 SHCreateItemWithParent 创建 Shell 项。
[in] fReadWrite
类型: BOOL
如果为 TRUE ,则检索读/写属性处理程序。 如果为 FALSE ,则检索只读属性处理程序。
[in] punkCreateObject
类型: IUnknown*
指向支持 ICreateObject 的类工厂对象的 IUnknown 接口的指针。
[in] riid
类型: REFIID
对要通过 ppv 检索的接口的 IID 的引用。
[out] ppv
类型: void**
当此函数成功返回时,包含 riid 中请求的接口指针。 这通常是 IPropertyStore 或 IPropertyStoreCapabilities。
返回值
类型: 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 之前,必须使用 CoInitialize 或 OleInitialize 初始化组件对象模型 (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 |