1

我正在构建我的第一个 Outlook 插件,根据此处的代码,我应该将以下代码添加到事件处理程序中。

new Microsoft.Office.Interop
  .Outlook.InspectorsEvents_NewInspectorEventHandler(foo);

当我输入它时,语法有效(没有红色下划线)并且代码编译。但是,由于某种原因,智能感知并没有为我提供那个特定的选项,这意味着我必须自己输入。那让我伤心。

更糟糕的是,当我执行项目时,监听器事件被触发,但下面的行不会产生对象 -mailItem仍然存在null

Outlook.MailItem mailItem = inspector as Outlook.MailItem;
  1. 为什么没有智能感知.Outlook.InspectorsEvents_NewInspectorEventHandler(foo);
  2. 我可以以某种方式启用它吗?如果可以,如何启用?
  3. 如何访问新创建的消息框?

我敢打赌,它与Interop引用有关,我怀疑它实际上不起作用,因为在处理程序添加操作之前之后Count的字段inspectors都为零。

尽管打开了一个新的邮件窗口(当然,没有对其进行任何更改),但执行下面的行仅返回null,而不是 的实例。MailItem虽然输入参数inspector不同于null,但 as-'ification 似乎使其无效。

我运行 VS10/.NET4。

4

1 回答 1

0

Inspector代表包含Outlook 项目的窗口。要访问包含在窗口中的项目,您需要使用Inspector.CurrentItem

Outlook.MailItem mailItem = inspector.CurrentItem as Outlook.MailItem;

对于智能感知问题,请尝试以下 using 语句:

using Outlook = Microsoft.Office.Interop.Outlook;
inspectors.NewInspector += new Outlook.InspectorsEvents_NewInspectorEventHandler(foo);
于 2012-09-06T17:18:46.430 回答