SHCreateShellItem 函数 (shlobj_core.h)

创建 IShellItem 对象。

注意 建议使用 SHCreateItemWithParentSHCreateItemFromIDList 而不是此函数。
 

语法

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。 如果父信息未包含在 pidlParentpsfParent 中,则必须是绝对 PIDL。

[out] ppsi

类型: IShellItem**

此方法返回时,包含指向新 IShellItem 的接口指针。

返回值

类型: HRESULT

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

注解

SHCreateShellItem 创建表示 Shell 命名空间项的对象。 调用方必须在 pidlParentpsfParent 中提供父信息;或者,调用方可以在 pidl 参数中提供绝对 IDList。

此函数有三种有效的调用模式:

  1. 父文件夹由绝对 IDList pidlParent 标识。 pidl 参数指向一个子 IDList,该 IDList 标识由 pidlParent 标识的文件夹中的项目。
    IShellItem *psi;
    SHCreateShellItem(pidlParent, NULL, pidlChild, &psi);
    
    
  2. 父文件夹由 psfParent 标识。 pidl 参数指向一个子 IDList,该 IDList 标识由 psfParent 标识的文件夹中的项目。
    IShellItem *psi;
    SHCreateShellItem(NULL, psfParent, pidlChild, &psi);
    
    
  3. 该项由传递给 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)