SHCreateShellItemArrayFromDataObject 函数 (shobjidl_core.h)

从数据对象创建 Shell 项数组对象。

Syntax

SHSTDAPI SHCreateShellItemArrayFromDataObject(
  [in]  IDataObject *pdo,
  [in]  REFIID      riid,
  [out] void        **ppv
);

参数

[in] pdo

类型: IDataObject*

指向 IDataObject 接口的指针。

[in] riid

类型: REFIID

对所需接口 ID 的引用。

[out] ppv

类型: void**

此方法返回时,包含 riid 中请求的接口指针。 这通常是 IShellItemArray

返回值

类型:HRESULT

如果此函数成功,它将返回 S_OK。 否则,它将返回 HRESULT 错误代码。

注解

此函数适用于实现 IShellExtInit 的 Shell 扩展,并将数据对象传递给 IShellExtInit::Initialize 方法;例如,上下文菜单处理程序。

使用此 API 可将数据对象转换为处理程序可以使用的 Shell 项。 建议处理程序使用 Shell 项数组,而不是剪贴板格式,如 CF_HDROPCFSTR_SHELLIDLIST (也称为 HIDA),因为它会导致更简单的代码,并允许一些性能改进。

生成的 shell 项数组保存对源数据对象的引用。 因此,该数据对象在 shell 项数组的生存期内必须保持有效。 值得注意的是,传递到 IDropTarget 方法的数据对象在删除作完成后不再有效。

要求

Requirement 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows操作系统
Header shobjidl_core.h (包括 Shobjidl.h)
Library OneCore.Lib
DLL Shell32.dll
API 集 ext-ms-win-shell-shell32-l1-2-2 (在 Windows 10 版本 10.0.14393 中引入)