如何開發 OneNote 2010 功能區增益集應用程式

簡介

本文將說明可供下載的全部合一架構程式碼範例。 程式碼範例會示範如何開發 Microsoft OneNote 2010 COM 增益集應用程式實作IRibbonExtensibility介面。 增益集應用程式支援自訂功能區,藉由實作IRibbonExtensibility介面。 這個程式碼範例也會介紹如何使用 OneNote 2010 物件模型。

難易度

alternate text

下載資訊

若要下載此程式碼範例,請按一下下列連結之一:

技術概觀

建立 OneNote 2010 共用增益集應用的程式

因為分享增益集精靈沒有 Microsoft OneNote 選項,若要建立的 OneNote 2010 共用增益集應用程式,請遵循下列步驟:

  1. 您可以選取 [Microsoft Access 為您的應用程式主機共用增益集精靈] 中。

  2. 修改安裝專案登錄HKCU到下列登錄子機碼:

    [HKEY_CURRENT_USER\Software\Microsoft\Office\OneNote\AddIns\CSOneNoteRibbonAddIn.Connect]"LoadBehavior"=dword:00000003"FriendlyName"="OneNoteRibbionAddIn""Description"="OneNote2010 功能區增益集範例"

OneNote 的繼承 IDTExtensibility 介面的自訂功能區控制項

如果要自訂功能區控制項的 OneNote,執行下列的程式碼,使連接類別繼承, IRibbonExtensibility介面,並再實作 [ GetCustomUI方法:

/// <summary>        ///     Loads the XML markup from an XML customization file         ///     that customizes the Ribbon user interface.        /// </summary>        /// <param name="RibbonID">The ID for the RibbonX UI</param>        /// <returns>string</returns>        public string GetCustomUI(string RibbonID)        {            return Properties.Resources.customUI;        }

自訂的圖示和實作功能的功能區控制項的按鈕

執行下列的程式碼,以實作的OnGetImage和ShowForm方法,在 customUI.xml 檔案中:

/// <summary>        ///     Implements the OnGetImage method in customUI.xml        /// </summary>        /// <param name="imageName">the image name in customUI.xml</param>        /// <returns>memory stream contains image</returns>        public IStream OnGetImage(string imageName)        {            MemoryStream stream = new MemoryStream();            if (imageName == "showform.png")            {                Resources.ShowForm.Save(stream, ImageFormat.Png);            }             return new ReadOnlyIStreamWrapper(stream);        }         /// <summary>        ///     show Windows Form method        /// </summary>        /// <param name="control">Represents the object passed into every        /// Ribbon user interface (UI) control's callback procedure.</param>        public void ShowForm(IRibbonControl control)        {            OneNote.Window context = control.Context as OneNote.Window;            CWin32WindowWrapper owner =                new CWin32WindowWrapper((IntPtr)context.WindowHandle);            TestForm form = new TestForm(applicationObject as OneNote.Application);            form.ShowDialog(owner);             form.Dispose();            form = null;            context = null;            owner = null;                       GC.Collect();            GC.WaitForPendingFinalizers();            GC.Collect();        }

使用 OneNote 2010 物件模型,以取得 OneNote 頁面上的標題

加入 Microsoft OneNote 14.0 物件程式庫的參考,然後再將內嵌 Interop Type屬性設定為False:

/// <summary>        /// Get the title of the page        /// </summary>        /// <returns>string</returns>        private string GetPageTitle()        {            string pageXmlOut = GetActivePageContent();                    var doc = XDocument.Parse(pageXmlOut);            string pageTitle = "";            pageTitle = doc.Descendants().FirstOrDefault().Attribute("ID").NextAttribute.Value;             return pageTitle;        }

技術類別

Office 開發

語言

這個程式碼範例有下列的程式語言:

語言

專案名稱

Visual C#

COneNoteRibbonAddIn

Visual Basic.NET

VBOneNoteRibbonAddIn

先決條件

若要執行這個程式碼範例,您必須安裝下列產品:

  • Microsoft Visual Studio 2010

  • Microsoft Visual Studio Tools for Microsoft Office 2010

  • Microsoft OneNote 2010

標記

  • OneNote 2010 功能區增益集

  • COM 增益集

  • IDTExtensibility

  • OneNote 2010 物件模型

參考

如需有關 COM 增益集應用程式若要修改使用者介面的詳細資訊,請造訪下列 MSDN 網站:

若要修改使用者介面的 COM 增益集的一般資訊如需有關相容性問題,OneNote 2010 和視覺化的 Studio2010 的詳細資訊,請造訪下列 MSDN 部落格:

OneNote 2010,Visual Studio 2010 的相容性問題的一般資訊如需有關如何建立 OneNote 2010 COM 增益集應用程式的詳細資訊,請造訪下列 Microsoft 網站:

http://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/8a50b1e9-bd81-4a49-9f37-bf043d2a81f0

http://social.msdn.microsoft.com/Forums/en-US/innovateonoffice/thread/ed366aa2-131d-450f-aec8-e123409a29e9

其他相關資訊

全部合一程式碼架構是什麼?

全部合一程式碼架構會顯示大部分的 Microsoft 開發技術,藉由使用不同的程式設計語言的程式碼範例。 每個範例是仔細選取、 所組成,並加以記錄,以顯示其中一個常見的程式碼案例。 如需有關全部合一程式碼架構的詳細資訊,請造訪下列 Microsoft 網站:

http://1code.codeplex.com

如何尋找更多的全部合一程式碼架構範例

若要尋找更多的全部合一程式碼架構範例,搜尋"kbcodefx",以及相關的關鍵字,在 Microsoft 支援網站。 或者,請造訪下列 Microsoft 網站:

全部合一程式碼架構的範例

快速發行的免責聲明

Microsoft 公司和/或其供應商不提供任何保證有關適用性、 可靠性或資訊和相關的圖形,此處所含的正確性。 所有這類的資訊和相關的圖形會提供 「 現狀 」 不提供任何形式之擔保。 Microsoft 和/或其供應商謹不擔保或條件就此資訊和相關的圖形,包括所有的默示責任擔保規定條款之適售性、 適合某特定用途,workmanlike投入比、 標題以及不侵害。 您特別同意,在沒有事件應該 Microsoft 和/或其供應商對於而導致之任何直接、 間接、 代價極高,附隨性、 特殊、 衍生性損害或任何損害皆不包括但不限於,使用,資料之損失的損害或利潤,因使用或無法使用的資訊和相關的圖形,此處所述之,是否根據合約、 侵權行為、 過失、 無過失責任或其他方式,即使 Microsoft 或其供應商的任何已連接的任何方式告知損害的可能性。

需要更多協助?

擴展您的技能
探索訓練
優先取得新功能
加入 Microsoft 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

×