About the Applying user interface customizations at startup Sample
[C#]
AcmeMenu.cs
using System; using System.Runtime.InteropServices; using ESRI.ArcGIS.Framework; using ESRI.ArcGIS.SystemUI; using ESRI.ArcGIS.ADF.CATIDs; namespace ACME.GIS.SampleExt { [Guid("A7198661-605D-4683-A282-221C154450A1")] [ClassInterface(ClassInterfaceType.None)] [ProgId("ACME.MainMenu")] public class AcmeMenu : IMenuDef, IRootLevelMenu { #region IMenuDef Members public string Caption { get { return "ACME"; } } public void GetItemInfo(int pos, IItemDef itemDef) { // Add some commands to the menu (don't really exists for simplicity sake) switch (pos) { case 0: itemDef.ID = "ACME.SomeCmd"; itemDef.Group = false; break; case 1: itemDef.ID = "ACME.SomeCmd2"; itemDef.Group = true; break; } } public int ItemCount { get { return 2; } } public string Name { get { return "ACME Main Menu"; } } #endregion } }
[Visual Basic .NET]
AcmeMenu.vb
Imports System Imports System.Runtime.InteropServices Imports ESRI.ArcGIS.Framework Imports ESRI.ArcGIS.SystemUI Imports ESRI.ArcGIS.ADF.CATIDs Namespace ACME.GIS.SampleExt <Guid("527C02BC-2AFB-477d-A5F3-B178F4F7C633")> _ <ClassInterface(ClassInterfaceType.None)> _ <ProgId("ACME.MainMenuVB")> _ Public Class AcmeMenu Implements IMenuDef Implements IRootLevelMenu #Region "IMenuDef Members" Public ReadOnly Property Caption() As String Implements IMenuDef.Caption Get Return "ACME" End Get End Property Public Sub GetItemInfo(ByVal pos As Integer, ByVal itemDef As IItemDef) Implements IMenuDef.GetItemInfo ' Add some commands to the menu (don't really exists for simplicity sake) Select Case pos Case 0 itemDef.ID = "ACME.SomeCmd" itemDef.Group = False Exit Select Case 1 itemDef.ID = "ACME.SomeCmd2" itemDef.Group = True Exit Select End Select End Sub Public ReadOnly Property ItemCount() As Integer Implements IMenuDef.ItemCount Get Return 2 End Get End Property Public ReadOnly Property Name() As String Implements IMenuDef.Name Get Return "ACME Main Menu" End Get End Property #End Region End Class End Namespace