两个 VSTO 加载项可以处理同一个 outlook 应用程序事件吗(application.newmailex)

Can two VSTO Add-ins handle the same outlook application event (application.newmailex)

我正在为我工​​作的两个独立部门编写两个加载项。两者都会在收到电子邮件时处理不同类型的电子邮件,但它们都是相当大的加载项,我宁愿避免将两者合并.话虽这么说,有些人最终将不得不同时拥有两个加载项 运行。

是否可以同时安装两个加载项并且它们都有处理 application.newmailex 的子程序?

我可以拥有:

加载项 1:

Private Sub Application_NewMailEx(EntryIDCollection As String) Handles Application.NewMailEx

    For Each itemID In Split(EntryIDCollection, ",")
        Dim item = Application.Session.GetItemFromID(itemID)
        If TypeName(item) = "MailItem" Then
              if item.subject.contains("team1:") then
                   'do stuff
              end if
        end if
    next
end sub

加载项 2:

Private Sub Application_NewMailEx(EntryIDCollection As String) Handles Application.NewMailEx

    For Each itemID In Split(EntryIDCollection, ",")
        Dim item = Application.Session.GetItemFromID(itemID)
        If TypeName(item) = "MailItem" Then
              if item.subject.contains("team2:") then
                   'do stuff
              end if
        end if
    next
end sub

或者我是否必须维护一个大插件:

Private Sub Application_NewMailEx(EntryIDCollection As String) Handles Application.NewMailEx

    For Each itemID In Split(EntryIDCollection, ",")
        Dim item = Application.Session.GetItemFromID(itemID)
        If TypeName(item) = "MailItem" Then
              if item.subject.contains("team1:") then
                   'do stuff
              else if item.subject.contains("team2:") then
                   'do other stuff
              end if
        end if
    next
end sub

是的,两个不同的加载项可以安装到同一个 Outlook 中。显然他们可能有相同的事件处理程序,这没有问题(你不需要合并任何东西)。您唯一无法控制的是这两个加载项的通知顺序。您的 "Add-in 1" 可能会获得第一名或第二名 Application_NewMailEx,您的 "Add-in 2" 也是如此。编码时请记住它。