CDefFolderMenu_Create2 函数 (shlobj_core.h)

为所选的一组文件文件夹对象创建上下文菜单。

语法

SHSTDAPI CDefFolderMenu_Create2(
  [in, optional] PCIDLIST_ABSOLUTE     pidlFolder,
  [in, optional] HWND                  hwnd,
                 UINT                  cidl,
  [in, optional] PCUITEMID_CHILD_ARRAY apidl,
  [in, optional] IShellFolder          *psf,
  [in, optional] LPFNDFMCALLBACK       pfn,
                 UINT                  nKeys,
  [in, optional] const HKEY            *ahkeys,
  [out]          IContextMenu          **ppcm
);

参数

[in, optional] pidlFolder

类型: PCIDLIST_ABSOLUTE

父文件夹的 ITEMIDLIST 结构。 此值可以为 NULL

[in, optional] hwnd

类型:HWND

父窗口的句柄。 此值可以为 NULL

cidl

类型: UINT

apidl 指向的数组中的 ITEMIDLIST 结构数。

[in, optional] apidl

类型: PCUITEMID_CHILD_ARRAY*

指向 ITEMIDLIST 结构数组的指针,每个选定项对应一个。

[in, optional] psf

类型: IShellFolder*

指向父文件夹的 IShellFolder 接口的指针。 此 IShellFolder 必须支持 IDataObject 接口。 否则, CDefFolderMenu_Create2 失败并返回E_NOINTERFACE。 此值可以为 NULL

[in, optional] pfn

类型: LPFNDFMCALLBACK

LPFNDFMCALLBACK 回调对象。 如果不需要回调对象,则此值可以为 NULL

nKeys

类型: UINT

ahkeys 指向的数组中的注册表项数。

注意 注册表项的最大数目为 16。 调用方必须强制实施此限制,因为 API 不会。 否则可能会导致内存损坏。
 

[in, optional] ahkeys

类型: const HKEY*

指向注册表项数组的指针,这些注册表项指定与菜单条目一起使用的上下文菜单处理程序。 有关上下文菜单处理程序的详细信息,请参阅 创建上下文菜单处理程序。 此数组最多可以包含 16 个注册表项。

[out] ppcm

类型: IContextMenu**

IContextMenu 接口指针的地址,当此函数成功返回时,该指针指向表示上下文菜单的 IContextMenu 对象。

返回值

类型: HRESULT

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

要求

   
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shlobj_core.h (包括 Shlobj.h)
Library Shell32.lib
DLL Shell32.dll (版本 5.00 或更高版本)

另请参阅

SHCreateDefaultContextMenu