Ms office Outlook 2010-从Word或Excel创建邮件项目时如何接收附件事件

Ms office Outlook 2010-从Word或Excel创建邮件项目时如何接收附件事件,ms-office,vsto,outlook-addin,Ms Office,Vsto,Outlook Addin,我有一个使用VSTO的Outlook 2010插件,可以在附件添加到邮件项目之前对其进行转换。我实现这一点的方法是在插件启动中注册新的inspector事件 inspectors = Application.Inspectors; inspectors.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(OnNewInspector); 然后在新的inspe

我有一个使用VSTO的Outlook 2010插件,可以在附件添加到邮件项目之前对其进行转换。我实现这一点的方法是在插件启动中注册新的inspector事件

inspectors = Application.Inspectors;
inspectors.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(OnNewInspector);
然后在新的inspector事件处理程序中,检查邮件项目并注册BeforeAttachmentAdd事件。然后在BeforeAttachmentAdd中,我对附件数据执行转换

在Outlook中撰写邮件时,这一切都很好

我试图解决的问题是,当用户试图直接从另一个Office应用程序(例如,在Word中编辑的当前文档或Excel中的当前电子表格)中“作为附件发送”时

在本例中,我的新inspector事件处理程序从不激发。将启动一个新的检查器窗口,其中已附加Office文档。我注意到,如果我注册了Application.ItemLoad事件,则在另一个应用程序执行“作为附件发送”时会调用该事件,但如果对象项是MailItem并且我注册了BeforeAttachmentAdd my Attachment add事件处理程序,则不会触发该事件


关于我的插件应该注册哪些事件,以便它可以在将这些Office发送的附件添加到邮件项目之前转换这些附件的任何想法?

BeforeAttachmentAdd事件将不会触发。但是NewInspector对我来说很好-如果您单击应用程序按钮,选择Inspector属性,单击浏览,转到Events选项卡并查看选项卡底部的日志,您会在中看到事件吗

既然NewInspector事件在项目已经有附件时触发,为什么不立即运行附件代码呢

更新


对不起,我错过了你在Word中这样做的事实。它使用简单MAPI,如果使用简单MAPI或mailto url,Outlook将禁用基于检查器的事件。唯一的解决方法是使用计时器定期扫描应用程序。Inspectors集合检查新Inspecters是否已打开。

BeforeAttachmentAdd事件不会触发。但是NewInspector对我来说很好-如果您单击应用程序按钮,选择Inspector属性,单击浏览,转到Events选项卡并查看选项卡底部的日志,您会在中看到事件吗

既然NewInspector事件在项目已经有附件时触发,为什么不立即运行附件代码呢

更新


对不起,我错过了你在Word中这样做的事实。它使用简单MAPI,如果使用简单MAPI或mailto url,Outlook将禁用基于检查器的事件。唯一的解决方法是使用计时器定期扫描应用程序。Inspectors集合检查新的Inspectors是否已打开。

我没有在OutlookSpy中看到记录的NewInspector事件,但是我也没有看到直接从Outlook打开新inspector时记录的事件,因此我不确定发生了什么。我编写了一个插件,除了在NewInspector启动时打开MessageBox外,它什么都不做,在从Word/Excel创建消息时不会出现,但在Outlook中创建时会出现。您正在查看Inspector对象的“事件”选项卡,而不是应用程序,对吗?在创建新消息之前是否打开Inspector浏览器?否,之后:1。启动Outlook 2。单击新建电子邮件3。从新的电子邮件窗口(无标题-邮件(HTML))a。转到OutlookSpy选项卡b。应用程序->属性->检查器->浏览->事件SoutLookSpy无法查看过去在创建新消息之前在OutlookSpy中打开检查器窗口。我没有在OutlookSpy中看到记录的NewInspector事件,但是我也没有看到直接从Outlook打开新检查器时记录的事件,所以我不确定到底发生了什么。我编写了一个插件,除了在NewInspector启动时打开MessageBox外,它什么都不做,在从Word/Excel创建消息时不会出现,但在Outlook中创建时会出现。您正在查看Inspector对象的“事件”选项卡,而不是应用程序,对吗?在创建新消息之前是否打开Inspector浏览器?否,之后:1。启动Outlook 2。单击新建电子邮件3。从新的电子邮件窗口(无标题-邮件(HTML))a。转到OutlookSpy选项卡b。应用程序->属性->检查器->浏览->EventsOutlookSpy无法查看过去在创建新消息之前在OutlookSpy中打开检查器窗口。