VSTO:未调用Outlook NewInspector

时间:2016-07-20 12:27:25

标签: outlook vsto outlook-addin

我使用此代码......

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

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

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

知道为什么没有调用NewInspector?

由于

更新代码:

这是一个简单的示例代码。从外部程序(如Word,Excel,Snipping工具等)发送邮件不会调用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

2 个答案:

答案 0 :(得分:1)

使用简单MAPI或mailto链接创建的检查员不会触发

NewInspector事件(这是设计使然)。您可以使用定时器循环遍历Application.Inspectors集合,以检查是否有新的检查器尚未由您的代码处理。

答案 1 :(得分:0)

您需要在全局(类)级别声明inspectors变量,以确保它不是垃圾回收。