IShellItem2::GetPropertyStoreWithCreateObject 方法 (shobjidl_core.h)

使用指定的 ICreateObject 而不是 CoCreateInstance 创建与调用此方法的 Shell 项关联的属性处理程序的实例。 大多数调用应用程序不需要调用此方法,可以改为调用 IShellItem2::GetPropertyStore

语法

HRESULT GetPropertyStoreWithCreateObject(
  [in]  GETPROPERTYSTOREFLAGS flags,
  [in]  IUnknown              *punkCreateObject,
  [in]  REFIID                riid,
  [out] void                  **ppv
);

参数

[in] flags

类型: GETPROPERTYSTOREFLAGS

修改属性存储对象的 GETPROPERTYSTOREFLAGS 常量。

[in] punkCreateObject

类型: IUnknown*

指向工厂的指针,用于创建 ICreateObject 类型的低权限。

方法 CreateObject 创建 COM 对象的实例。 IShellItem2::GetPropertyStoreWithCreateObject 的实现使用 CreateObject 而不是 CoCreateInstance 为给定文件类型创建属性处理程序(这是 Shell 扩展)。 属性处理程序在此方法返回的属性存储中提供了许多重要属性。

仅当 ICreateObject 对象是在单独的进程中创建的, (为 LOCALSERVER 而不是 INPROCSERVER) ,并且此其他进程的权限低于调用 IShellItem2::GetPropertyStoreWithCreateObject 的进程时,此方法才有用。

[in] riid

类型: REFIID

对要检索的对象的 IID 的引用。

[out] ppv

类型: void**

此方法返回时,包含所请求的 IPropertyStore 接口指针的地址。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

注意 在文件的属性存储中调用此方法时,该文件在 IPropertyStore 对象的生存期内保持打开状态。
 

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)