从Outlook 2010中的选定邮件项获取信息

我想为Outlook 2010编写一个加载项。想法是 – 用户在文件夹中选择一个邮件项,然后按function区上的按钮启动加载项。 加载项从所选项中获取信息,处理它并显示结果。 在尝试获取所选项目的Inspector时,我遇到了问题。 我试过了:

Outlook.Inspector Point = this.Application.ActiveInspector().CurrentItem as Outlook.Inspector; Outlook.MailItem mailItem = Point.CurrentItem as Outlook.MailItem; 

当然,这不会检查当前项目是否实际上是一个邮件项目,但这是为了以后。 我的问题是,当我尝试运行程序时,我得到NullReferenceException。 我在网上找到的唯一可行的例子就是事件处理 。 但是我想按下按钮按下加载项..

我试图在.NET 3.5而不是4中做到这一点

ActiveInspector()是当用户在Explorer窗口中双击邮件项时打开的窗口。 如果用户只是在阅读窗格中查看MailItems – 您将没有活动的检查器窗口( 因此NullReferenceException )。

您可能正在寻找Explorer.Selection来访问当前选定的MailItems

  Outlook.Selection selection = this.Application.ActiveExplorer().Selection; 

Globals.ThisAddIn.Application获取Application对象。 这可能是你的空引用,在function区类中“this”上没有Application对象。

这是帮助我解决Outlook互操作问题的链接: http : //msdn.microsoft.com/en-us/library/ff184621.aspx – 它确实显示了如何枚举当前选定的项目。