Getting a Outlook MailItem from a Ribbon Event

You may find this code block handy: [csharp] /// /// Gets the mail item selected in the explorer view if one is selected or instance if that is the view active. /// /// The instance containing the event data. /// A Outlook.MailItem for the mail being viewed. private Outlook.MailItem GetMailItem(RibbonControlEventArgs e) { // Check to see if a item is select in explorer or we are in inspector. if (e.Control.Context is Outlook.Inspector) { Outlook.Inspector inspector = (Outlook.Inspector)e.Control.Context; if (inspector.CurrentItem is Outlook.MailItem) { return inspector.CurrentItem as Outlook.MailItem; } } if (e.Control.Context is Outlook.Explorer) { Outlook.Explorer explorer = (Outlook.Explorer)e.Control.Context; Outlook.Selection selectedItems = explorer.Selection; if (selectedItems.Count != 1) { return null; } if (selectedItems[1] is Outlook.MailItem) { return selectedItems[1] as Outlook.MailItem; } } return null; } [/csharp]