2012-10-24 54 views
2

我正在使用Visual Studio 2008(.Net 3.5)創建要在Outlook 2010中使用的Addin。我有兩個單獨的色帶定義。其中一個用於創建附件的上下文菜單,另一個用於向TabReadMessage添加按鈕。CreateRibbonExtensibilityObject只創建一個功能區對象 - Outlook 2010 Addin

我很困惑我應該如何讓他們加載。我有一個ThisAddIn.vb功能不可能做我想做的事情 - 同時加載色帶:

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

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

什麼是解決這個問題的最佳解決方案?

回答

4

您將擁有2個XML文件,一個用於TabReadMessage,一個用於附件上下文菜單。 然後,您將只需要一個Ribbon類,CreateRibbonExtensibilityObject()將加載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 
相關問題