Insert Menu into Outlook Tools Memu Group

Add-in Express™ Support Service
That's what is more important than anything else

Insert Menu into Outlook Tools Memu Group
Insert Menu into Outlook Tools Memu Group in Add-In Express 2.7 2005 
George Qi




Posts: 1
Joined: 2006-09-07
Hi All:

Our company has purchased Add-In Express for Visual Studio 2005. We want to insert some menu bar or popup menu items into the Outlook.

The only sample at: http://www.add-in-express.com/support/addin-c-sharp.php#93

is for Visual Studio 2003. My effort to convert it into a Visual Studio 2005 is failed (See attached codes bellow).

Thank you very much.

Following is my code:
========================================================

this.adxOutlookEvents.CommandBarsUpdate += new EventHandler(this.ToolsMenuLogonEventHandler);



internal void ToolsMenuLogonEventHandler(object sender, System.EventArgs e)

{

Outlook.NameSpace nameSpace = OutlookApp.GetNamespace("MAPI");

Outlook.Explorer activeExplorer = OutlookApp.ActiveExplorer();

if (activeExplorer != null && nameSpace != null)

{

Outlook.MAPIFolder defaultFolder = nameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);

Outlook.MAPIFolder contactFolder = nameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);

Outlook.MAPIFolder currentFolder = activeExplorer.CurrentFolder;

if (currentFolder != null && defaultFolder != null && defaultFolder != contactFolder)

{

this.CommandBarsObj = activeExplorer.CommandBars;

AddinExpress.MSO.ADXCommandBar menuBar = this.FindCommandBarObj("Tools") as AddinExpress.MSO.ADXCommandBar;

if (menuBar != null)

{

if (menuBar.Controls.Count > 0)

{

AddinExpress.MSO.ADXCommandBarControl newButton = null;

try

{

newButton = (AddinExpress.MSO.ADXCommandBarControl)activeExplorer.CommandBars.FindControl(AddinExpress.MSO.ADXMsoBarType.adxMsoBarTypeMenuBar, (object)30007, Type.Missing, Type.Missing);

if (newButton == null)

{

//menuBar.Reset();

menuBar.Protection = AddinExpress.MSO.ADXMsoBarProtection.adxMsoBarNoProtection;

if (adxToolsCommandBar == null)

{

adxToolsCommandBar = new AddinExpress.MSO.ADXCommandBar();

adxToolsCommandBar.CommandBarObj = menuBar;

}

else

{

adxToolsCommandBar.Controls.Clear();

}

AddinExpress.MSO.ADXCommandBarButton adxNewButton = new AddinExpress.MSO.ADXCommandBarButton();

adxNewButton.ControlTag = "Packet8ToolBar";

adxNewButton.Before = 0;

adxNewButton.Temporary = true;

adxNewButton.BeginGroup = true;

adxNewButton.Style = AddinExpress.MSO.ADXMsoButtonStyle.adxMsoButtonCaption;

adxNewButton.Caption = "Packet8 Logon";

adxNewButton.Click += new AddinExpress.MSO.ADXClick_EventHandler(DoClick);

if (adxToolsCommandBar.Controls.Add(adxNewButton) != null)

{

//The following two line cannot be compiled:

adxNewButton.ControlObj = menuBar.Controls.Add(AddinExpress.MSO., "Packet8ToolBar", 0, 0, true);

adxNewButton.UpdateControlObj(this);

}

}

else

Marshal.ReleaseComObject(newButton);

}

catch

{

}

}

Marshal.ReleaseComObject(menuBar);

}

this.CommandBarsObj = null;

Marshal.ReleaseComObject(defaultFolder);

Marshal.ReleaseComObject(currentFolder);

}

Marshal.ReleaseComObject(nameSpace);

Marshal.ReleaseComObject(activeExplorer);

}

}

private void DoClick(object sender)

{

MessageBox.Show((sender as AddinExpress.MSO.ADXCommandBarControl).Caption, AddinName);

}

Posted 07 Sep, 2006 13:37:18 Top
Sergey Grischenko


Add-in Express team


Posts: 7233
Joined: 2004-07-05
Hi George.

I have already sent you an example. Please check your inbox.

Just in case you haven't received it:
http://www.add-in-express.com/projects/outlookmainmenu.zip
Posted 07 Sep, 2006 17:35:31 Top