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

C# 从Outlook 2010中的选定邮件项目获取信息,c#,outlook,ms-office,C#,Outlook,Ms Office,我想为Outlook 2010编写一个外接程序。想法是-用户在文件夹中选择一个邮件项目,然后按下功能区上的按钮,启动外接程序。外接程序从所选项目获取信息,对其进行处理并显示结果。 我在尝试获取所选项目的检查器时遇到问题。我试过: Outlook.Inspector Point = this.Application.ActiveInspector().CurrentItem as Outlook.Inspector; Outlook.MailItem mailItem = Point.Curren

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

Outlook.Inspector Point = this.Application.ActiveInspector().CurrentItem as Outlook.Inspector;
Outlook.MailItem mailItem = Point.CurrentItem as Outlook.MailItem;
当然,这不会检查当前项目是否确实是邮件项目,但这是供以后使用的。我的问题是,当我尝试运行该程序时,我得到了NullReferenceException。 我在网上找到的唯一有效的例子是with。但我想在按下按钮时启动加载项

我试图在.NET 3.5而不是4中实现这一点,这是当用户双击窗口中的邮件项目时打开的窗口。如果用户只是在阅读窗格中查看-您将没有活动的检查器窗口(因此出现
NullReferenceException

您可能正在查找以访问当前选定的

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

这是一个帮助我解决Outlook互操作问题的链接:-它确实显示了如何枚举当前选定的项目。

Globals.ThisAddIn.Application以获取应用程序对象。这可能是您的空引用,ribbon类中的“this”上没有应用程序对象。

它仍然为我提供NullReferenceException。这可能是因为我在资源管理器窗口中选择了一个项目,然后在功能区中导航以按我的自定义按钮?
selection
是否为
NullReferenceException
?请澄清。是的。也许我搞砸了打电话的方法?我有ribbon班和addin班。为了获得addin类方法,我在ribbon类中创建了一个对象并调用该方法。