IContextMenu

【勇芳软件工作室】汉化HomePreviousNext

IContextMenu界面用于创建或合并与特定对象关联的上下文菜单。

默认上下文菜单适用于资源管理器的名称空间(如文件,文件夹和打印机对象)中可见的大多数对象。系统提供的上下文菜单适用于任何类型的文件对象,前提是您已经创建了相应的注册表项。

何时实施

在以下情况下实施IContexMenu

*将动态菜单项添加到与shell名称空间中的对象关联的上下文菜单中。通过位于COM进程内服务器DLL中的处理程序来实现实现。

*允许将菜单项动态添加到非默认拖放菜单。实现是通过处理程序来实现的。

*应用程序可以创建或合并shell名称空间(或扩展名称空间)中项目的上下文菜单。这是通过使用IShellFolder::GetUIObjectOf调用IContextMenu的应用程序完成的。

*命名空间扩展应实现IContextMenu,以便shell或其他应用程序可以访问属于其自己的名称空间中的项目的上下文菜单。这是通过使用IShellFolder::GetUIObjectOf完成的。

必须使用IShellExtInit界面来初始化基于此接口的Shell扩展,并且可以使用InsertMenuInsertMenuItem功能插入菜单项。

另外值得注意的是,除非做出所有适当的注册表项,否则外壳扩展不起作用。

何时使用

您不要直接调用此接口。当用户选择由在适当的注册表项下注册的处理程序添加的上下文菜单项时,或者当呼叫中包含【RIID】参数的呼叫IShellFolder::GetUIObjectOf时,Shell将调用该shell。

Vtable Order中的方法

IUnknown方法描述
QueryInterface返回指向支持的接口的指针。
AddRef增加引用计数。
发布减少引用计数。

IContextMenu方法描述
QueryContextMenu将命令添加到上下文菜单。
InvokeCommand执行菜单命令,以响应用户输入或其他方式。例如,请参阅IExtractIcon.
GetCommandString检索菜单命令的语言无关名称或菜单命令的帮助文本。