VSTO:未调用 Outlook NewInspector

VSTO: Outlook NewInspector is not called

我用这个代码...

Dim inspectors As Outlook.Inspectors = Outlook.Application.Inspectors
AddHandler inspectors.NewInspector, AddressOf Inspectors_NewInspector

...将我的自定义面板添加到 net mailitem。

但是如果我在 windows 中使用截图工具并告诉它通过电子邮件发送片段,那么即使创建了新邮件也不会调用 NewInspector。

知道为什么不调用 NewInspector 吗?

谢谢

更新代码:

这是一个简单的示例代码。从外部程序(如 Word、Excel、截图工具等)发送邮件不会调用 NewInspector 事件...

Imports System.Runtime.InteropServices
Imports Microsoft.Office.Interop.Outlook
Imports Microsoft.Office.Tools
Imports Outlook = Microsoft.Office.Interop.Outlook

Public Class ThisAddIn    

    Private WithEvents _inspectors As Outlook.Inspectors

    Private Sub ThisAddIn_Startup() Handles Me.Startup
        _inspectors = Globals.ThisAddIn.Application.Inspectors
    End Sub

    Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
    End Sub

    Private Sub _inspectors_NewInspector(Inspector As Inspector) Handles _inspectors.NewInspector
        MsgBox("New inspector")
    End Sub

End Class

您需要在全局 (class) 级别声明检查器变量,以确保它不会被垃圾回收。

NewInspector 事件不会为使用简单 MAPI 或 mailto 链接创建的检查器触发(这是设计使然)。你可以有一个计时器,它定期循环 Application.Inspectors 集合来检查是否有一个新的检查器还没有被你的代码处理。