SHCreateShellItemArrayFromDataObject 函数 (shobjidl_core.h)
从数据对象创建 Shell 项数组对象。
语法
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 并将数据对象传递给 IShellExtInit::Initialize 方法的 Shell 扩展;例如,上下文菜单处理程序。
此 API 允许将数据对象转换为处理程序可以使用的 Shell 项。 建议处理程序使用 Shell 项数组而不是剪贴板格式(如 CF_HDROP 和 CFSTR_SHELLIDLIST ), (也称为 HIDA) ,因为它可以简化代码并允许一些性能改进。
生成的 shell 项数组包含对源数据对象的引用。 因此,该数据对象必须在 shell 项数组的生存期内保持有效。 值得注意的是,传递给 IDropTarget 方法的数据对象在删除操作完成后不再有效。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl_core.h (包括 Shobjidl.h) |
DLL | Shell32.dll |
API 集 | ext-ms-win-shell-shell32-l1-2-2 (在 Windows 10 版本 10.0.14393 中引入) |