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

下載資訊
若要下載此程式碼範例,請按一下下列連結之一:
技術概觀
建立 OneNote 2010 共用增益集應用的程式
因為分享增益集精靈沒有 Microsoft OneNote 選項,若要建立的 OneNote 2010 共用增益集應用程式,請遵循下列步驟:
-
您可以選取 [Microsoft Access 為您的應用程式主機共用增益集精靈] 中。
-
修改安裝專案登錄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 或其供應商的任何已連接的任何方式告知損害的可能性。