[Now Supported on Windows NT]
允许资源管理器将其菜单组插入到在查看或使用扩展命名空间时显示的复合菜单中。
HRESULT InsertMenusSB(
HMENU 【hmenuShared】, | //一个空菜单的句柄 |
LPOLEMENUGROUPWIDTHS 【lpMenuWidths】 | //指向OLEMENUGROUPWIDTHS |
); |
参数
【hmenuShared】
指定一个空菜单的句柄。
【lpMenuWidths】
指向6 LONG值的OLEMENUGROUPWIDTHS数组。容器填充元素0,2和4以反映其在文件,视图和窗口菜单组中提供的菜单元素的数量。
返回值
如果成功返回NOERROR,否则返回OLE定义的错误值。
备注
此方法类似于IOleInPlaceFrame::InsertMenus.资源管理器将文件和编辑下拉菜单放入文件菜单组,容器菜单组中的查看和工具,以及窗口菜单组中的帮助。每个下拉菜单将具有唯一标识符FCIDM_MENU_FILE / EDIT / VIEW / TOOLS / HELP。该视图允许通过其标识符将菜单项插入到这些子菜单中,这与OLE的就地激活机制不同。视图插入资源管理器的子菜单或其自己的子菜单中的菜单的命令ID必须在FCIDM_SHVIEWFIRST和FCIDM_SHVIEWLAST之间。
调用注意事项
命名空间扩展名首先被激活时调用此方法,以便他们可以将其菜单插入到帧级别的用户界面中。
对象应用程序请求容器将其菜单添加到【hmenuShared】中指定的菜单中,并设置由【lpMenuWidths】指向的OLEMENUGROUPWIDTHS数组中的组计数。然后对象应用程序添加自己的菜单和计数。对象可以根据需要多次调用IOleInPlaceFrame::InsertMenus以构建复合菜单。容器应使用下拉菜单中所有项目的复合菜单相关联的初始菜单句柄。
实施者注意事项
对于IShellBrowser实现,菜单标识符必须在FCIDM_BROWSERFIRST到FCIDM_BROWSERLAST的范围内。
也可以看看