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

时间:2012-05-30 13:00:36

标签: c# outlook ms-office

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

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

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

我试图在.NET 3.5而不是4

中进行此操作

3 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:0)

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