2

我正在使用 Visual Studio 2008 (.Net 3.5) 创建要在 Outlook 2010 中使用的插件。我定义了两个单独的功能区。其中一个用于为附件创建上下文菜单,另一个用于向 TabReadMessage 添加一个按钮。

我很困惑我应该如何让他们两个都加载。我在 ThisAddIn.vb 中有一个函数,它不可能做我想做的事 - 加载两个功能区:

Protected Overrides Function CreateRibbonExtensibilityObject() As _
        Microsoft.Office.Core.IRibbonExtensibility

    Return New RibbonAttachAttachmentToPO()
    Return New RibbonOutlook14ReadMail()
End Function

这个问题的最佳解决方案是什么?

4

1 回答 1

4

您将拥有 2 个 XML 文件,一个用于 TabReadMessage,一个用于 Attachment 上下文菜单。然后你只需要一个 Ribbon 类, CreateRibbonExtensibilityObject() 加载 Ribbon 类。

在 Ribbon 类的 GetCustomUI() 函数中,您将根据您在 Outlook 的哪个部分加载相应的 XML 文件,无论是在资源管理器还是检查器中。

你可以这样做(VB.Net):

Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Microsoft.Office.Core.IRibbonExtensibility.GetCustomUI
   Select Case ribbonID
      Case "Microsoft.Outlook.Mail.Read"  'For TabReadMessage
         Return GetResourceText("The.Read.Message.XML")
      Case "Microsoft.Outlook.Mail.Compose" 'For compose new email message
         Return GetResourceText(".....")
      Case ...
   End Select
End Function
于 2012-10-24T07:22:46.300 回答