3

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

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

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

我试图在 .NET 3.5 而不是 4

4

3 回答 3

5

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

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

 Outlook.Selection selection = this.Application.ActiveExplorer().Selection;
于 2012-05-30T14:12:50.003 回答
3

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

于 2012-09-01T16:20:20.973 回答
0

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

于 2012-08-08T21:51:19.750 回答