我想为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
中进行此操作答案 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 - 它确实显示了如何枚举当前选定的项目。