SHCreateShellItem 函数 (shlobj_core.h)
创建 IShellItem 对象。
注意 建议使用 SHCreateItemWithParent 或 SHCreateItemFromIDList 而不是此函数。
语法
SHSTDAPI SHCreateShellItem(
[in, optional] PCIDLIST_ABSOLUTE pidlParent,
[in, optional] IShellFolder *psfParent,
[in] PCUITEMID_CHILD pidl,
[out] IShellItem **ppsi
);
参数
[in, optional] pidlParent
类型: PCIDLIST_ABSOLUTE
父级的 PIDL。 此值可以为 NULL。
[in, optional] psfParent
类型: IShellFolder*
指向父 IShellFolder 的指针。 此值可以为 NULL。
[in] pidl
类型: PCUITEMID_CHILD
请求项的 PIDL。 如果父信息未包含在 pidlParent 或 psfParent 中,则必须是绝对 PIDL。
[out] ppsi
类型: IShellItem**
此方法返回时,包含指向新 IShellItem 的接口指针。
返回值
类型: HRESULT
如果此函数成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。
注解
SHCreateShellItem 创建表示 Shell 命名空间项的对象。 调用方必须在 pidlParent 或 psfParent 中提供父信息;或者,调用方可以在 pidl 参数中提供绝对 IDList。
此函数有三种有效的调用模式:
- 父文件夹由绝对 IDList pidlParent 标识。
pidl 参数指向一个子 IDList,该 IDList 标识由 pidlParent 标识的文件夹中的项目。
IShellItem *psi; SHCreateShellItem(pidlParent, NULL, pidlChild, &psi);
- 父文件夹由 psfParent 标识。
pidl 参数指向一个子 IDList,该 IDList 标识由 psfParent 标识的文件夹中的项目。
IShellItem *psi; SHCreateShellItem(NULL, psfParent, pidlChild, &psi);
- 该项由传递给 pidl 参数的绝对 IDList 标识。
IShellItem *psi; SHCreateShellItem(NULL, NULL, pidlFull, &psi);
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 具有 SP1 的 Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | shlobj_core.h (包括 Shlobj.h) |
Library | Shell32.lib |
DLL | Shell32.dll |
API 集 | Windows 10版本 10.0.14393 中引入的 ext-ms-win-shell-shell32-l1- (2-2) |