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
集合来检查是否有一个新的检查器还没有被你的代码处理。
我用这个代码...
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
集合来检查是否有一个新的检查器还没有被你的代码处理。