3

Visual Studio 2010、VSTO4.0を使用して2007/2010用のOutlookアドインを作成しています

私は3つのプロジェクトを持っています:

  • 2010Ribbon(Ribbon1.cs、Ribbon2.cs)
  • 2007Ribbon(Ribbon1-2007.cs、Ribbon2-2007.cs)
  • 共有コード(クラスライブラリ)

バージョンに基づいて正しいバージョンのリボン(DESIGNER)をロードしようとしています

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        majorVersion = Globals.ThisAddIn.Application.Version.Split(new char[] { '.' })[0];
        if (majorVersion == 12) //Outlook 2007
        {
            Initialize2007UI();  
        }
        else if (majorVersion >= 14) //Outlook 2010
        {
            Initialize2010UI();   
        }
    }

Initialize2007UI()とInitialize2010UI()を実装するにはどうすればよいですか。エクスプローラーウィンドウにそれぞれのRibbon1.csをロードし、インスペクターウィンドウにRibbon2.csをロードしますか?

ありがとう!!!!

私が何を求めているのかはっきりしていることを願っています:)

4

1 に答える 1

1

おそらくこれはあなたが探しているものです

protected override Office.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    majorVersion = Globals.ThisAddIn.Application.Version.Split(new char[] { '.' })[0];
        if (majorVersion == 12) //Outlook 2007
        {
             return new Ribbon2007();
        }
        else if (majorVersion >= 14) //Outlook 2010
        {
            return new Ribbon2010();
        }


}


[ComVisible(true)]
public class Ribbon2007: Office.IRibbonExtensibility
{
    public string GetCustomUI(string ribbonID)
        {
                    var ribbonXml = GetResourceText("Ribbon2007.xml");                 
                    XNamespace nameSpace = @"http://schemas.microsoft.com/office/2006/01/customui";                  
                    return ribbonXml;
    }
}


[ComVisible(true)]
public class Ribbon2007: Office.IRibbonExtensibility
{
    public string GetCustomUI(string ribbonID)
        {
            var ribbonXml = GetResourceText("Ribbon2010.xml");                 
                    XNamespace nameSpace = @"http://schemas.microsoft.com/office/2009/07/customui";                  
                    return ribbonXml;
    }
}
于 2013-03-01T02:32:36.103 に答える