Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.
When To Use
The IMenuDef interface is used to define the properties of a custom menu. When creating your own menu, you would implement the IMenuDef interface in your class code. You can set the caption and name of the menu and specify what commanditems are on the menu.
If you want your custom menu to appear in the Menus category in the Customize dialog you also need to implement the IRootLevelMenu interface. IRootLevelMenu is an indicator interface that is used only to indicate to the application that the menu should be treated as a root menu.
If you are creating a context menu you would implement both IMenuDef and IShortcutMenu. IShortcutMenu is an indicator interface that is used only to indicate to the application that this menu should be treated as a context menu.