Я пытаюсь создать базовую структуру меню для надстройки Visual Studio 2008.Пока что я могу создать первое меню верхнего уровня, которое в моем примере ниже я назвал TOPMENU.Я изо всех сил пытаюсь выяснить, как добавить дочерние элементы в TOPMENU.Я пробовал различные способы и не могу понять это.Может кто-нибудь помочь мне закончить код ниже?В настоящее время я получаю недопустимое исключение приведения при попытке создать объект "a2" ниже.
void IDTExtensibility2.OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
{
_ApplicationObject = (DTE2)application;
_AddInInstance = (AddIn)addInInst;
if (connectMode == ext_ConnectMode.ext_cm_UISetup)
{
object[] contextGUIDS = new object[] { };
Commands2 commands = (Commands2)_ApplicationObject.Commands;
CommandBar cbMainMenu = ((CommandBars)_ApplicationObject.CommandBars)["MenuBar"];
try
{
// ROOT MENU
Command cmdProjectManagement = commands.AddNamedCommand2(_AddInInstance, "TOPMENU", "TOPMENU", "",
true, null, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported + (int)vsCommandStatus.vsCommandStatusEnabled,
(int)vsCommandStyle.vsCommandStyleText, vsCommandControlType.vsCommandControlTypeButton);
if (cmdProjectManagement != null)
cmdProjectManagement.AddControl(cbMainMenu, cbMainMenu.Controls.Count);
// SUB ITEM
Command cmdCompiledAssemblies = commands.AddNamedCommand2(_AddInInstance, "TOPMENU_CompiledAssemblies", "Compiled Assemblies", String.Empty,
true, null, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported + (int)vsCommandStatus.vsCommandStatusEnabled,
(int)vsCommandStyle.vsCommandStyleText, vsCommandControlType.vsCommandControlTypeButton);
CommandBarControl a1 = cbMainMenu.Controls["TOPMENU"];
CommandBarPopup a2 = (CommandBarPopup)a1;
if (cmdCompiledAssemblies != null)
cmdCompiledAssemblies.AddControl(a2.CommandBar, 1);
}
catch (Exception ex)
{
}
}
}