簡介

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

難易度

下載資訊

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

技術概觀

建立 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 網站:

如需有關相容性問題,OneNote 2010 和視覺化的 Studio2010 的詳細資訊,請造訪下列 MSDN 部落格:

如需有關如何建立 OneNote 2010 COM 增益集應用程式的詳細資訊,請造訪下列 Microsoft 網站:

其他相關資訊

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

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

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

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

快速發行的免責聲明

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

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×