IShellBrowser::InsertMenusSB 方法 (shobjidl_core.h)

允许容器将其菜单组插入到查看或使用扩展命名空间时显示的复合菜单中。

语法

HRESULT InsertMenusSB(
  HMENU                hmenuShared,
  LPOLEMENUGROUPWIDTHS lpMenuWidths
);

参数

hmenuShared

类型: HMENU

空菜单的句柄。

lpMenuWidths

类型: LPOLEMENUGROUPWIDTHS

包含六个 LONG 值的 OLEMENUGROUPWIDTHS 数组的地址。 容器填充元素 0、2 和 4,以反映它在“文件”、“视图”和“窗口”菜单组中提供的菜单元素数。

返回值

类型: HRESULT

如果成功,则返回 S_OK ,否则返回 COM 定义的错误值。

注解

此方法类似于 IOleInPlaceFrame::InsertMenus 方法。 Windows 资源管理器将“文件”和“编辑”下拉菜单放在“文件”菜单组中,“视图”和“工具”菜单位于“容器”菜单组中,并将“帮助”菜单置于“窗口”菜单组中。 每个下拉菜单都有一个唯一标识符,FCIDM_MENU_FILE/编辑/VIEW/TOOLS/HELP。 允许视图按标识符将菜单项插入到这些子菜单中,这不同于 OLE 的就地激活机制。 视图插入 Windows 资源管理器的子菜单或其自己的子菜单的菜单的命令标识符必须介于 FCIDM_SHVIEWFIRSTFCIDM_SHVIEWLAST 之间。

呼叫应用程序说明

首次激活时,命名空间扩展会调用此方法,以便他们可以将其菜单插入到框架级用户界面中。

对象应用程序要求容器将其菜单添加到 hmenuShared 参数中指定的菜单中,并在 lpMenuWidths 参数指向的 OLEMENUGROUPWIDTHS 数组中设置组计数。 然后,对象应用程序添加其自己的菜单和计数。 对象可以根据需要多次调用 IOleInPlaceFrame::InsertMenus 方法以生成复合菜单。 容器应使用与下拉菜单中所有项的复合菜单关联的初始菜单句柄。

实施者说明

对于 IShellBrowser 实现,菜单标识符必须在 FCIDM_BROWSERFIRST 范围内才能 FCIDM_BROWSERLAST

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)
DLL Shell32.dll (4.0 或更高版本)