OneNote (應用程式介面)
應用程式介面包含可協助擷取、操作及更新 OneNote 資訊和內容的方法。 這些方法分為四個一般類別:
筆記本結構 – 處理筆記本結構的方法,包括用於探索、開啟、修改、關閉和刪除筆記本、區段群組和區段的方法。
頁面內容 – 使用頁面和頁面內容的方法,包括用於探索、修改、儲存和刪除頁面內容的方法。 頁面內容包含二進位物件,例如筆跡和影像,以及文字物件,例如大綱。
導覽 – 用於尋找、鏈接及瀏覽至頁面和物件的方法。
功能 – 在 OneNote 中執行特定動作或設定參數的所有其他方法。
此外 ,應用程式介面 包含許多 屬性 和 事件。
Notebook 結構方法
本節所述的方法可讓您探索、開啟、修改、關閉和刪除 OneNote 筆記本、區段群組和區段。
GetHierarchy 方法
值 | 描述 |
---|---|
描述 |
取得筆記本節點階層結構,從您指定 (所有筆記本或單一筆記本、區段群組或區段) 的節點開始,然後向下延伸至您指定層級的所有子系。 |
語法 |
HRESULT GetHierarchy( [in]BSTR bstrStartNodeID, [in]HierarchyScope hsScope, [out]BSTR * pbstrHierarchyXmlOut, [in,defaultvalue(xs2013)]XMLSchema xsSchema); |
參數 |
bstrStartNodeID – 您要 (筆記本、區段群組或區段) 節的節點。 如果您傳遞 null 字串 (“”) ,此方法會取得根節點 (下的所有節點,也就是所有筆記本、區段群組和區段) 。 如果您指定筆記本、區段群組或區段節點,此方法只會取得該節點的子系。 hsScope – 您想要的最低子代節點層級。 例如,如果您指定頁面,此方法會取得頁面層級為止的所有節點。 如果您指定區段,此方法只會取得筆記本下方的區段節點。 如需詳細資訊,請參閱列舉主題中的HierarchyScope列舉。 pbstrHierarchyXmlOut – (Output 參數) 要 OneNote 寫入 XML 輸出之字串的指標。 xsSchema – (選擇性) 您要輸出之 XMLSchema 類型的 OneNote XML 架構版本。 您可以指定要 XML 架構版本 2013、2010、2007 或目前的版本。 注意:建議您指定 OneNote (版本,例如 xs2013) ,而不是使用 xsCurrent 或保留空白,因為這可讓您的載入宏使用未來的 OneNote 版本。 |
根據預設,GetHierarchy 方法會傳回 OneNote 2013 XML 格式的字串,或者您可以使用選擇性的 xsSchema 參數來設定慣用 的 XML 架構 版本。
根據您傳遞的參數, GetHierarchy 方法可以傳回各種清單 (例如所有筆記本、所有筆記本中的所有區段、指定區段內的所有頁面,或指定筆記本) 內的所有頁面。 針對每個節點,傳回的 XML 字串會提供屬性 (例如區段或頁面標題、標識符,以及上次修改的時間) 。
並非所有開始節點和範圍的組合都是有效的。 例如,如果您指定節開始節點和筆記本範圍, GetHierarchy 會傳回 Null 結果,因為筆記本在節點階層中高於區段。
下列 C# 範例示範如何使用 GetHierarchy 方法,將整個 OneNote 階層,包括所有筆記本,向下移至頁面層級。 它會將輸出字串複製到剪貼簿,您可以從中將字串貼到文字編輯器中以供檢閱。
static void GetEntireHierarchy()
{
String strXML;
OneNote.Application onApplication = new OneNote.Application();
onApplication.GetHierarchy(null,
OneNote.HierarchyScope.hsPages, out strXML);
Clipboard.SetText(strXML);
MessageBox.Show("The XML has been copied to the clipboard");
}
UpdateHierarchy 方法
值 | 描述 |
---|---|
描述 | 修改或更新筆記本的階層。 例如,您可以將區段或區段群組新增至筆記本、新增筆記本、移動筆記本內的區段、變更區段的名稱、將頁面新增至區段,或變更區段內的頁面順序。 |
語法 | HRESULT UpdateHierarchy( [in]BSTR bstrChangesXmlIn, [in,defaultvalue(xsCurrent)] XMLSchema xsSchema); |
參數 |
bstrChangesXmlIn – 包含 OneNote XML 程式代碼的字串,指定要進行階層變更。 例如,如果您想要插入新的區段,您可以在 XML 字串中新增 Section 元素,以指出您想要新增新區段的位置。 或者,如果您想要變更現有區段的名稱,您可以保留相同的區段標識碼,並在 XML 程式代碼中變更其 名稱 屬性。 xsSchema – (選擇性) 字串 bstrChangesXmln 的 OneNote 架構版本。 這個選擇性值是用來指定 bstrChangesXmlIn 字串所在的 OneNote XML 架構版本。 如果未指定此值,OneNote 會假設 XML 位於架構版本 xsCurrent 中。 注意:建議您指定 OneNote (版本,例如 xs2013) ,而不是使用 xsCurrent 或保留空白,因為這可讓您的載入宏使用未來的 OneNote 版本。 |
如果您只傳遞 bstrChangesXmlIn 參數的部分 OneNote XML 字串,OneNote 會嘗試推斷您想要的變更。 例如,如果您包含只包含一個區段的 Notebook 元素,OneNote 會在任何現有的區段之後新增 區段。 不過,如果您指定的作業模棱兩可,則結果可能難以判斷。 例如,如果現有的筆記本包含四個區段,而且您傳遞的 XML 字串包含筆記本,而且只有第四個和第一個區段 (依該順序) ,則 OneNote 可能會將第二個和第三個區段放在第四個區段之前或第一個區段之後。
您無法使用 UpdateHierarchy 方法來刪除筆記本的一部分。 也就是說,傳遞只包含現有階層一部分的 XML 字串,並不會刪除字串中未包含的區段。 若要刪除階層的一部分,請使用 DeleteHierarchy 方法。
下列 C# 程式代碼顯示使用 UpdateHierarchy 方法變更 OneNote 階層的其中一種方式,方法是變更現有區段的名稱。 它會從磁碟驅動器 C 根目錄名為 ChangeSectionName.xml 的範例檔案讀取 XML 程式代碼、將它載入 XML 檔,然後將該檔的 XML 結構傳遞至 方法。
static void UpdateExistingHierarchy()
{
OneNote.Application onApplication = new OneNote.Application();
// Get the XML from the file.
XmlTextReader reader = new XmlTextReader("C:\\ChangeSectionName.xml");
reader.WhitespaceHandling = WhitespaceHandling.None;
XmlDocument xmlDocIn = new XmlDocument();
xmlDocIn.Load(reader);
// Update the hierarchy.
onApplication.UpdateHierarchy(xmlDocIn.OuterXml,
OneNote.XMLSchema.xs2007);
}
下列 XML 程式代碼是前一個 C# 程式代碼傳遞給 方法的 ChangeSectionName.xml 檔摘錄。 當 XML 傳遞至 UpdateHierarchy 方法時,它會變更現有階層中其中一個區段的名稱 (,方法是將 name 屬性的值變更為 “My Renamed Section”) 。 然後,它會移除所有區段,但名稱已變更的區段除外。 此外,程式代碼會從目標 Section 元素移除不必要的屬性,包括 lastModifiedTime、 isCurrentlyViewed 和 色彩 屬性,只保留 名稱、 標識符和 路徑 屬性。
<?xml version="1.0" ?>
<one:Notebooks xmlns:one="http://schemas.microsoft.com/office/onenote/12/2004/onenote">
<one:Notebook name="My Notebook" nickname="My Notebook" ID="{0B8E7305-AC2C-4BCB-8651-1CDA55AAE14C}{1}{B0}">
<one:Section name="My Renamed Section" ID="{5F4E2908-44BA-4C02-91FE-49FC665E9A33}{1}{B0}" path="C:\My Section.one" />
</one:Notebook>
</one:Notebooks>
先前的 XML 程式代碼是使用 GetHierarchy 方法範例中所示的程式代碼取得,其修改方式如下,將範圍限製為區段。
static void GetAllSections()
{
String strXML;
OneNote.Application onApplication = new OneNote.Application();
onApplication.GetHierarchy(System.String.Empty,
OneNote.HierarchyScope.hsSections, out strXML);
Clipboard.SetText(strXML.ToString());
MessageBox.Show("The XML has been copied to the Clipboard");
}
下列 C# 範例顯示的完整控制台應用程式會搜尋名為 「Sample_Section
」 的區段、提示使用者輸入區段的新名稱,然後使用 UpdateHierarchy 方法將區段名稱變更為使用者輸入的名稱。 執行程式代碼之前,請將 「Sample_Section
變更為存在於 OneNote 階層中的區段名稱。
static void Main(string[] args)
{
// OneNote 2013 Schema namespace.
string strNamespace = "http://schemas.microsoft.com/office/onenote/2013/onenote";
string outputXML;
Application onApplication = new Application();
onApplication.GetHierarchy(null, HierarchyScope.hsSections, out outputXML);
// Load a new XmlDocument.
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(outputXML);
XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace("one", strNamespace);
// Search for the section named "Sample_Section".
XmlNode xmlNode = xmlDoc.SelectSingleNode("//one:Section[@name='Sample_Section']", nsmgr);
// Prompt for a new section title.
System.Console.Write("Please enter a new title for the section: ");
string input = System.Console.ReadLine();
xmlNode.Attributes["name"].Value = input;
// Update the section with the new title.
onApp.UpdateHierarchy(xmlNode.OuterXml);
System.Console.Write("Done!\n");
}
OpenHierarchy 方法
值 | 描述 |
---|---|
描述 |
開啟您指定的區段群組或區段。 |
語法 |
HRESULT OpenHierarchy( [in]BSTR bstrPath, [in]BSTR bstrRelativeToObjectID, [out]BSTR * pbstrObjectID, [in,defaultvalue(cftNone)]CreateFileType cftIfNotExist); |
參數 |
bstrPath – 您想要開啟的路徑。 對於筆記本或筆記本中的區段群組, bstrPath 可以是資料夾路徑或 .one 區段檔案的路徑。 如果您指定 .one 區段檔案的路徑,則必須在檔案路徑字串上包含 .one 擴展名。 bstrRelativeToObjectID – 您想要開啟新物件) (筆記本或區段群組的父物件 OneNote 標識符。 如果 bstrPath 參數是絕對路徑,您可以針對 bstrRelativeToObjectID 傳遞空字串 (“”) 。 或者,您可以將應包含物件的筆記本或區段群組的物件標識碼傳遞 (區段或區段群組) ,然後指定您要在該父物件下建立之對象的檔名 (例如 section1.one) 。 pbstrObjectID – (Output 參數) OneNote 針對 OpenHierarchy 方法開啟的筆記本、區段群組或區段傳回的物件標識符。 此參數是您想要方法寫入標識符之字串的指標。 cftlfNotExist - (選用) 來自 CreateFileType 列舉的列舉值。 如果您傳遞 cftIfNotExist 的值, OpenHierarchy 方法只會在檔案不存在時,才在指定的路徑建立區段群組或區段檔案。 |
如果您指定的節群組不在開啟的筆記本中, OpenHierarchy 方法會將區段群組開啟為筆記本。 如果您指定的區段不在開啟的筆記本中, OpenHierarchy 方法會開啟 [最近開啟的章節] 區段群組中的 區段。 如果您指定的節群組或區段已經在開啟的筆記本中,則不會發生任何事,因為區段群組或區段也已開啟。 在任何情況下, OpenHierarchy 都會傳回您指定之區段群組、筆記本或區段的對象標識碼,以便在其他作業中使用它。
您也可以使用 OpenHierarchy 方法來建立新的區段,而不是藉由匯入 XML 來建立。
下列程式代碼示範如何使用 OpenHierarchy 方法開啟工作筆記本中的 Meetings 區段,並取得區段的標識符。 如果區段不存在,OneNote 會在您指定的位置建立它。
static void OpenSection()
{
String strID;
OneNote.Application onApplication = new OneNote.Application();
onApplication.OpenHierarchy("C:\\Documents and Settings\\user\\My Documents\\OneNote Notebooks\\Work\\Meetings.one",
System.String.Empty, out strID, OneNote.CreateFileType.cftSection);
}
DeleteHierarchy 方法
值 | 描述 |
---|---|
描述 |
從 OneNote 筆記本階層刪除區段群組、區段或頁面) (任何階層物件。 |
語法 |
HRESULT DeleteHierarchy( [in]BSTR bstrObjectID, [in,defaultvalue(0)]DATE dateExpectedLastModified, [in,defaultvalue(false)]VARIANT_BOOL deletePermanently); |
參數 |
bstrObjectID – 您想要刪除之物件的 OneNote 識別符。 物件可以是區段群組、區段或頁面。 dateExpectedLastModified – (選擇性) 您認為要刪除的物件上次修改的日期和時間。 如果您傳遞此參數的非零值,OneNote 只會在您傳遞的值符合物件上次修改的實際日期和時間時,繼續進行更新。 傳遞此參數的值有助於防止使用者在上次修改對象之後不小心覆寫編輯。 deletePermanently – (選擇性) true 永久刪除內容; false 表示將內容移至對應 Notebook 的 OneNote 回收站, (預設) 。 如果 Notebook 是 OneNote 2007 格式,則沒有任何回收站存在,因此會永久刪除內容。 |
CreateNewPage 方法
值 | 描述 |
---|---|
描述 |
將新頁面新增至您指定的 區段。 新頁面會新增為區段的最後一頁 |
語法 |
HRESULT CreateNewPage( [in]BSTR bstrSectionID, [out]BSTR * pbstrPageID); [in,defaultvalue(npsDefault)]NewPageStyle npsNewPageStyle); |
參數 |
bstrSectionID – 字串,其中包含您要在其中建立新頁面之區段的 OneNote 識別符。 pbstrPageID – (Output 參數) 方法寫入新建立頁面之 OneNote 識別符之字串的指標。 npsNewPageStyle – NewPageStyle 列舉中的值,指定要建立之頁面的樣式。 |
OneNote API 包含 CreateNewPage 方法以方便使用。 您可以藉由呼叫 UpdateHierarchy 方法,以更充分掌控新頁面在階層中的位置,以達到相同的結果。 UpdateHierarchy 方法也可讓您在建立新頁面的同時建立子頁面。
CloseNotebook 方法
值 | 描述 |
---|---|
描述 |
關閉指定的筆記本。 |
語法 |
HRESULT CloseNotebook( [in]BSTR bstrNotebookID, [in,defaultvalue(false)]VARIANT_BOOL force); |
參數 |
bstrNotebookID – 您要關閉之筆記本的 OneNote 識別符。 force – (選擇性) true 關閉筆記本,即使筆記本中有 OneNote 無法在關閉之前同步的變更;否則為 false (預設) 。 |
您可以使用 CloseNotebook 方法來關閉您指定的筆記本。 當您呼叫這個方法時,OneNote 會視需要同步處理任何具有目前筆記本內容的離線檔案,然後關閉指定的筆記本。 方法傳回之後,筆記本就不會再出現在 OneNote 使用者介面中開啟的筆記本清單中, (UI) 。
GetHierarchyParent 方法
值 | 描述 |
---|---|
描述 |
取得 OneNote 物件之父物件的 OneNote 識別符。 |
語法 |
HRESULT GetHierarchyParent ( [in]BSTR bstrObjectID, [out]BSTR * pbstrParentID); |
參數 |
bstrObjectID – 字串,其中包含您要尋找其父物件之物件的 OneNote 識別符。 pbstrParentID – (Output 參數) 方法寫入父物件 OneNote 識別符之字串的指標。 |
例如,如果 OneNote 對象沒有父物件 (,當使用者想要取得 Notebook) 的父系時,就會擲回例外狀況。
GetSpecialLocation 方法
值 | 描述 |
---|---|
描述 |
尋找 OneNote 儲存特定特殊專案的位置路徑,例如備份、未填入的筆記和預設筆記本。 |
語法 |
HRESULT GetSpecialLocation( [in]SpecialLocation slToGet, [out]BSTR * pbstrSpecialLocationPath); |
參數 |
slToGet – 其中一個 SpecialLocation 列舉值,指定要取得的特殊資料夾位置。 pbstrSpecialLocationPath - (Output 參數) 要 OneNote 寫入特殊資料夾路徑之字串的指標。 |
您可以使用此方法來判斷 [未填入的備忘稿] 資料夾的磁碟位置。 這是 OneNote 儲存將專案拖曳至 OneNote 時所建立筆記的資料夾,以及直接來自其他應用程式的備註, (例如當您在 Microsoft Outlook 或 Microsoft Internet Explorer) 中按兩下 [ 傳送至 OneNote ] 時所產生的筆記。
頁面內容方法
本節所述的方法可讓您探索、更新和刪除 OneNote 筆記本中頁面上的內容,以及發佈 OneNote 內容。
GetPageContent 方法
值 | 描述 |
---|---|
描述 | 取得指定頁面之 OneNote XML 格式) 的所有內容 (。 |
語法 | HRESULT GetPageContent( [in]BSTR bstrPageID, [out]BSTR * pbstrPageXmlOut, [in,defaultvalue(piBasic)]PageInfo pageInfoToExport, [in,defaultvalue(xsCurrent)]XMLSchema xsSchema); |
參數 |
bstrPageId – 您想要取得其內容之頁面的 OneNote 識別符。 pbstrPageXmlOut – (Output 參數) 要 OneNote 寫入 XML 輸出的字串指標。 pageInfoToExport - (選擇性) 指定 GetPageContent 方法是否傳回內嵌在 XML 程式代碼中且 base-64 編碼的二進位內容。 二進位內容可以包含影像和筆跡數據。 pageInfoToExport 參數也會指定是否要在 GetPageContent 方法傳回的 XML 程式代碼中標記選取範圍。 它會從 PageInfo 列舉取得列舉值。 xsSchema – (選擇性) 您要輸出之 XMLSchema 類型的 OneNote XML 架構版本。 您可以指定要 XML 架構版本 2013、2010、2007 或目前的版本。 注意:建議您指定 OneNote (版本,例如 xs2013) ,而不是使用 xsCurrent 或保留空白,因為這可讓您的載入宏使用未來的 OneNote 版本。 |
根據預設,為了避免傳回的 XML 字串中有超過長度,OneNote 不會在 XML 程式代碼中內嵌二進位內容。 基於相同原因,它不會以選取屬性標記目前的選取範圍。 二進位物件在其標記中包含 OneNote 識別碼。 若要取得二進位物件,您可以呼叫 GetBinaryPageContent 方法,並將您從 GetPageContent 方法取得的 OneNote 標識符傳遞給它。 當您不需要立即使用二進位數據時,請使用 GetPageContent 方法。
UpdatePageContent 方法
值 | 描述 |
---|---|
描述 | 匯報 或修改頁面上的內容。 |
語法 | HRESULT UpdatePageContent( [in]BSTR bstrPageChangesXmlIn, [in,defaultvalue(0)]DATE dateExpectedLastModified, [in,defaultvalue(xsCurrent)]XMLSchema xsSchema, [in,defaultvalue(false)]VARIANT_BOOL force); |
參數 |
bstrPageChangesXmlIn - 包含 OneNote XML 程式代碼的字串,其中包含您想要對頁面所做的變更。 dateExpectedLastModified – (選擇性) 您認為要更新的頁面上次修改的日期和時間。 如果您傳遞此參數的非零值,OneNote 只有在您傳遞的值符合頁面上次修改的實際日期和時間時,才會繼續進行更新。 傳遞此參數的值有助於防止使用者在上次修改頁面之後不小心覆寫編輯。 xsSchema – (選擇性) 您要輸出之 XMLSchema 類型的 OneNote XML 架構版本。 您可以指定要 XML 架構版本 2013、2010、2007 或目前的版本。 注意:建議您指定 OneNote (版本,例如 xs2013) ,而不是使用 xsCurrent 或保留空白,因為這可讓您的載入宏使用未來的 OneNote 版本。 force (選擇性) true 來更新頁面內容,即使頁面上有來自未來 OneNote 版本的未知數據;否則為 false (預設) 。 |
您可以使用此方法,以各種方式修改頁面。 例如,您可以使用 UpdatePageContent 方法將大綱新增至頁面、變更大綱的內容、新增影像、新增筆跡、移動內容或修改大綱中的文字。
更具體的範例是,您可以使用 GetPageContent 方法導出現有的頁面、對頁面的 XML 程式代碼進行一些變更,然後使用 UpdatePageContent 方法再次匯入整個頁面。 或者,您可以使用這個方法,將新的頁面物件,例如影像,新增至現有頁面的底部。
您必須包含在傳遞至 UpdatePageContent 方法之 XML 程式代碼中的唯一對像是頁面層級物件, (例如大綱、頁面上的影像,或頁面上已變更的筆跡) 。 這個方法不會修改或移除您未在 bstrPageChangesXmlIn 參數中指定的頁面層級物件。 方法會完全取代頁面層級物件,例如大綱,其標識元符合您傳遞的對象標識碼。 因此,您必須完整指定程式碼中的所有頁面層級物件,包括其現有內容和您想要對它們所做的變更。
例如,如果您的頁面包含大綱和背景頁面影像,您可以使用現有大綱的標識碼在 XML 程式代碼中完全指定大綱,而不要在程式碼中包含影像,來取代大綱並讓影像保持不變。 因為您在程式代碼中包含的修訂大綱會完全取代現有的大綱,所以您必須包含大綱的整個內容。
此外, UpdatePageContent 方法只會修改您在 bstrPageChangesXmlIn 參數中指定的項目屬性。 例如,如果您指定 PageSettings 元素的部分屬性,但不是全部屬性,您未指定的屬性會保持不變。
下列範例示範如何使用 UpdatePageContent 方法來變更頁面的標題,並將一些範例文字新增至頁面。 執行程式代碼之前,請以有效的頁面標識碼中顯示的頁面識別碼,讓程式代碼在您的電腦上運作。 您可以使用 GetHierarchy 方法並檢查輸出,以取得頁面的頁面識別碼。
static void UpdatePageContent()
{
OneNote.Application onApplication = new OneNote.Application();
String strImportXML;
strImportXML = "<?xml version=\"1.0\"?>" +
"<one:Page xmlns:one=\"http://schemas.microsoft.com/office/onenote/12/2004/onenote\"
ID=\"{3428B7BB-EF39-4B9C-A167-3FAE20630C37}{1}{B0}\">" +
" <one:PageSettings RTL=\"false\" color=\"automatic\">" +
" <one:PageSize>" +
" <one:Automatic/>" +
" </one:PageSize>" +
" <one:RuleLines visible=\"false\"/>" +
" </one:PageSettings>" +
" <one:Title style=\"font-family:Calibri;
font-size:17.0pt\" lang=\"en-US\">" +
" <one:OE alignment=\"left\">" +
" <one:T>" +
" <![CDATA[My Sample Page]]>" +
" </one:T>" +
" </one:OE>" +
" </one:Title>" +
" <one:Outline >" +
" <one:Position x=\"120\" y=\"160\"/>" +
" <one:Size width=\"120\" height=\"15\"/>" +
" <one:OEChildren>" +
" <one:OE alignment=\"left\">" +
" <one:T>" +
" <![CDATA[Sample Text]]>" +
" </one:T>" +
" </one:OE>" +
" </one:OEChildren>" +
" </one:Outline>" +
"</one:Page>";
// Update the page content.
onApplication.UpdatePageContent(strImportXML, System.DateTime.MinValue);
}
GetBinaryPageContent 方法
值 | 描述 |
---|---|
描述 |
傳回 OneNote 頁面上的二進位物件,例如筆跡或影像,做為 base-64 編碼的字串。 |
語法 |
HRESULT GetBinaryPageContent( [in]BSTR bstrPageID, [in]BSTR bstrCallbackID, [out]BSTR * pbstrBinaryObjectB64Out); |
參數 |
bstrPageID – 包含要取得之二進位對象之頁面的 OneNote 識別符。 bstrCallBackID – 您想要取得之二進位物件的 OneNote 識別碼。 此標識碼稱為 callbackID,位於 GetPageContent 方法所傳回頁面的 OneNote XML 程式代碼中。 pbstrBinaryObectB64Out - (Output 參數) 字串的指標,其中 OneNote 會將二進位物件寫入為 base-64 編碼字符串。 |
DeletePageContent 方法
值 | 描述 |
---|---|
描述 |
刪除物件,例如頁面中的 Outline、 Ink 或 Image 物件。 |
語法 |
HRESULT DeletePageContent( [in]BSTR bstrPageID, [in]BSTR bstrObjectID, [in,defaultvalue(0)]DATE dateExpectedLastModified, [in,defaultvalue(#)]VARIANT_BOOL force); |
參數 |
bstrPageID – 包含要刪除之物件之頁面的 OneNote 識別符。 bstrObjectID – 您要刪除之物件的 OneNote 識別符。 dateExpectedLastModified – (選擇性) 您認為包含您想要刪除之內容的頁面上次修改的日期和時間。 如果您傳遞此參數的非零值,OneNote 只會在您傳遞的值符合頁面上次修改的實際日期和時間時繼續刪除。 傳遞此參數的值有助於防止使用者在上次修改頁面后不小心覆寫編輯。 force – (選擇性) true 來更新頁面內容,即使頁面上有來自未來 OneNote 版本的未知數據;否則為 false (預設) 。 |
Publish 方法
值 | 描述 |
---|---|
描述 |
以 OneNote 支援的任何格式,將您指定的頁面匯出至檔案。 |
語法 |
HRESULT Publish( [in]BSTR bstrHierarchyID, [in]BSTR bstrTargetFilePath, [in,defaultvalue(pfOneNote)]PublishFormat pfPublishFormat, [in,defaultvalue(0)]BSTR bstrCLSIDofExporter); |
參數 |
bstrHierarchyID – 您要匯出之階層的 OneNote 識別符。 bstrTargetFilePath – 您要儲存所產生輸出檔之位置的絕對路徑。 您指定的檔案必須是該位置尚未存在的檔案。 pfPublishFormat – 其中一個 PublishFormat 列舉值,指定您想要 (發佈頁面的格式,例如 MTHML、PDF 等等) 。 bstrCLSIDofExporter - 可匯出 Microsoft Windows 增強型元檔 (.emf) 之已註冊 COM 應用程式 (CLSID) 類別識別符。 COM 應用程式必須實作 IMsoDocExporter 介面。 此參數包含在內,可讓第三方開發人員撰寫自己的程式代碼,以自定義格式發佈 OneNote 內容。 如需 IMsoDocExporter 介面的詳細資訊,請參閱 擴充 Office 2007 Fixed-Format 匯出功能。 |
目前,OneNote 支援下列檔案格式:
- MHTML 檔案 (.mht)
- Adobe Acrobat PDF 檔案 (.pdf)
- XML 檔規格 (XPS) 檔案 (.xps)
- OneNote 2013、2010 或 2007 檔案 (.one)
- OneNote Package 檔案 (.onepkg)
- Microsoft Word 檔 (.doc 或 .docx)
- Microsoft Windows 增強型元檔 (.emf)
- HTML 檔案 (.html)
此方法會產生與您在 UI 中按兩下 [ 發佈 ] 並指定格式完全相同的結果。
導覽方法
本節所述的方法可讓您尋找、瀏覽及連結至 OneNote 筆記本、區段群組、區段、頁面和頁面物件。
NavigateTo 方法
值 | 描述 |
---|---|
描述 |
流覽至指定的物件 (例如,頁面內的區段、頁面和 大綱 元素) 。 |
語法 |
HRESULT NavigateTo( [in]BSTR bstrHierarchyObjectID, [in,defaultvalue(#)]BSTR bstrObjectID, [in,defaultvalue(0)]VARIANT_BOOL fNewWindow); |
參數 |
bstrHierarchyObjectID – 您要在 OneNote 階層中巡覽至之物件的 OneNote 識別符。 bstrObjectID – 您想要在 OneNote 頁面上巡覽至之物件的 OneNote 識別符。 fNewWindow – (選擇性) true ,在新的 OneNote 視窗中開啟指定的物件。 如果 開啟 OneNote 視窗,則 false 不會開啟新的 OneNote 視窗。 |
NavigateToUrl 方法
值 | 描述 |
---|---|
描述 |
如果將 OneNote 連結傳遞 (onenote://) ,則會將 OneNote 視窗開啟至 OneNote 中的對應位置。 如果此連結位於 OneNote (的外部,例如 https:// 或 file://) ,則會出現安全性對話方塊。 關閉時,OneNote 會嘗試開啟連結,並傳回 HResult.hrObjectDoesNotExist 錯誤。 |
語法 |
HRESULT NavigateTo( [in]BSTR bstrUrl, [in,defaultvalue(0)]VARIANT_BOOL fNewWindow); |
參數 |
bstrUrl – 指出巡覽至何處的字串。 這可能是 OneNote 連結或任何其他 URL,例如 Web 連結或網路位置。 fNewWindow – (選用) true 在新的 OneNote 視窗中開啟指定的 URL。 如果 開啟 OneNote 視窗,則 false 不會開啟新的 OneNote 視窗。 |
GetHyperLinkToObject 方法
值 | 描述 |
---|---|
描述 |
取得指定筆記本、區段群組、區段、頁面或頁面物件的 OneNote 超連結。 |
語法 |
HRESULT GetHyperlinkToObject( [in] BSTR bstrHierarchyID, [in] BSTR bstrPageContentObjectID, [out] BSTR * pbstrHyperlinkOut); |
參數 |
bstrHierarchyID – 您想要超連結之筆記本、區段群組、區段或頁面的 OneNote 識別符。 bstrPageContentObjectID – (選擇性) 您想要超連結之頁面內物件的 OneNote 識別符。 例如,物件可以是大綱或 Outline 元素。 如果您傳遞空字串 (“”) ,傳回的連結會指向您在 bstrHierarchyID 參數中指定的筆記本、區段群組、區段或頁面。 如果您傳遞 bstrPageContentObjectID 參數的非空白字串,則 _bstrHierarchyID參數必須是包含指定物件之頁面的參考。 pbstrHyperlinkOut – (Output 參數) GetHyperlinkToObject 方法寫入輸出超連結文字的字串指標。 |
當您嘗試瀏覽至產生的連結時,OneNote 會開啟並在瀏覽器中顯示指定的物件。
GetWebHyperlinktoObject 方法
值 | 描述 |
---|---|
描述 |
傳回在 OneNote Web 用戶端中開啟之物件的超連結。 |
語法 |
HRESULT GetWebHyperlinkToObject ( [in] BSTR bstrHierarchyID, [in] BSTR bstrPageContentObjectID, [out] BSTR * pbstrHyperlinkOut); |
參數 |
bstrHierarchyID – 您想要 Web 超連結之筆記本、區段群組、區段或頁面的 OneNote 識別符。 bstrPageContentObjectID – (選擇性) 您想要超連結之頁面內物件的 OneNote 識別符。 例如,物件可以是大綱或 Outline 元素。 如果您傳遞空字串 (“”) ,傳回的連結會指向您在 bstrHierarchyID 參數中指定的筆記本、區段群組、區段或頁面。 如果您傳遞 bstrPageContentObjectID 參數的非空白字串,則 _bstrHierarchyID參數必須是包含指定物件之頁面的參考。 pbstrHyperlinkOut - (Output 參數) GetWebHyperlinkToObject 方法寫入輸出超連結文字的字串指標。 如果無法為筆記本建立 Web 超連結,則會傳回 Null 值。 |
FindPages 方法
值 | 描述 |
---|---|
描述 | 傳回符合指定查詢字詞的頁面清單。 |
語法 | HRESULT FindPages( [in]BSTR bstrStartNodeID, [in]BSTR bstrSearchBSTR, [out]BSTR * pbstrHierarchyXmlOut, [in,defaultvalue(#)]VARIANT_BOOL fIncludeUnindexedPages, [in,defaultvalue(0)]VARIANT_BOOL fDisplay, [in,defaultvalue(#)]XMLSchema xsSchema); |
參數 |
bstrStartNodeID - 要搜尋內容的節點 (根、筆記本、節群組或區段) 下方。 此參數會設定搜尋的範圍。 bstrSearchString – 搜尋字串。 傳遞與您在 OneNote UI 中搜尋方塊中輸入的完全相同的字串。 您可以使用位運算符,例如 AND 和 OR,這必須全部是大寫。 pbstrHierarchyXmlOut - (Output 參數) 要 OneNote 寫入輸出 XML 字串串的字串指標。 產生的 XML 字串包含從根目錄向下到任何符合搜尋字串的頁面的筆記本階層。 例如, FindPages 方法不會列出階層中沒有頁面相符專案的區段。 此外,如果單一區段中只有一個頁面符合字串,則傳回的階層會包含該區段和頁面的路徑,但不包含筆記本階層的其他部分。 fIncludeUnindexedPages - (選用) true 搜尋尚未由 Windows 搜尋編製索引的頁面;否則為 false。 fDisplay – (選擇性) true 也可以在使用者的 UI 中執行搜尋,就如同使用者自行輸入搜尋一樣。 false 表示在預設) (不變更 UI 即可執行查詢。 xsSchema – (選擇性) 字串 串 pbstrHierarchyXmlOut 的 OneNote 架構版本。 這個選擇性值可用來指定包含 pbstrHierarchyXmlOut 字串的 OneNote XML 架構版本。 如果未指定此值,OneNote 會假設 XML 位於架構版本 xsCurrent 中。 注意:建議您指定 OneNote (版本,例如 xs2013) ,而不是使用 xsCurrent 或保留空白,因為這可讓您的載入宏使用未來的 OneNote 版本。 |
FindPages 只有在您的電腦上已安裝 Microsoft Search 3.0 或 4.0 時才能運作。 Windows Vista 和 Windows 7 包含此元件。 不過,如果您執行的是舊版 Windows,則必須安裝 Windows Search for FindPages 才能運作。
FindMeta 方法
值 | 描述 |
---|---|
描述 | 傳回 OneNote 物件的清單,其中包含符合指定查詢字詞的元數據。 |
語法 | HRESULT FindMeta ( [in]BSTR bstrStartNodeID, [in]BSTR bstrSearchBSTRName, [out]BSTR * pbstrHierarchyXmlOut, [in,defaultvalue(#)]VARIANT_BOOL fIncludeUnindexedPages, [in,defaultvalue(#)]XMLSchema xsSchema); |
參數 |
bstrStartNodeID - 要搜尋內容的節點 (根、筆記本、節群組或區段) 下方。 此參數會設定搜尋的範圍。 bstrSearchStringName – 搜尋字串。 傳入元數據名稱的任何部分。 如果您傳入空字串或 Null 值,具有元數據的所有物件都會符合查詢。 pbstrHierarchyXmlOut - (Output 參數) 要 OneNote 寫入輸出 XML 字串串的字串指標。 產生的 XML 字串包含從根目錄向下到任何符合搜尋字串的頁面的筆記本階層。 例如, FindPages 方法不會列出階層中沒有頁面相符專案的區段。 此外,如果單一區段中只有一個頁面符合字串,則傳回的階層會包含該區段和頁面的路徑,但不包含筆記本階層的其他部分。 fIncludeUnindexedPages - (選用) true 搜尋尚未由 Windows 搜尋編製索引的頁面;否則為 false。 xsSchema – (選擇性) 字串 串 pbstrHierarchyXmlOut 的 OneNote 架構版本。 這個選擇性值可用來指定包含 pbstrHierarchyXmlOut 字串的 OneNote XML 架構版本。 如果未指定此值,OneNote 會假設 XML 位於架構版本 xsCurrent 中。 注意:建議您指定 OneNote (版本,例如 xs2013) ,而不是使用 xsCurrent 或保留空白,因為這可讓您的載入宏使用未來的 OneNote 版本。 |
FindMeta 只有在您的電腦上已安裝 Microsoft Windows Search 3.0 或 4.0 時才能運作。 Windows Vista 和 Windows 7 包含此元件。 不過,如果您執行的是舊版的 Windows,則必須安裝 Windows Search for FindMeta 才能運作。
功能方法
本節所述的方法可讓您在 OneNote 應用程式內執行特定動作或設定參數。
MergeFiles 方法
值 | 描述 |
---|---|
描述 |
允許使用者將相同檔案的變更合併成一個檔案。 若要將檔案視為相同,它們必須具有相同的 OneNote 識別符。 |
語法 |
HRESULT MergeFiles ( [in]BSTR bstrBaseFile, [in]BSTR bstrClientFile, [in]BSTR bstrServerFile, [in]BSTR bstrTargetFile); |
參數 |
bstrBaseFile – 檔案初始狀態之 .one 檔案位置的路徑字串。 bstrClientFile – 伺服器檔案變更與基底合併之後,要與基底檔案合併之第二組變更之 .one 檔案位置的路徑字串串。 bstrServerFile – 要與基底檔案合併之第一組變更之 .one 檔案位置的路徑字串。 bstrTargetFile – 具有合併變更之檔案之 .one 檔案位置的路徑字串。 |
MergeFiles 方法適用於可能存在多個 OneNote 檔案版本的行動案例。
MergeSections 方法
值 | 描述 |
---|---|
描述 |
將一個區段的內容合併到 OneNote 中的另一個區段。 |
語法 |
HRESULT MergeSections ( [in]BSTR bstrSectionSourceId, [in]BSTR bstrSectionDestinationId); |
參數 |
bstrSectionSourceId – 要合併之區段的 OneNote 識別符。 bstrSectionDestinationId – 要合併到其中之區段的 OneNote 識別符。 來源區段將會合併到這個目的地區段。 |
這個方法會執行與 [ 合併到另一個區段 ] 功能相同的作業,當您以滑鼠右鍵按兩下區段時,便會顯示此功能。
QuickFiling 方法
值 | 描述 |
---|---|
描述 |
傳回 IQuickFilingDialog 對話框的實例,可用來選取 OneNote 階層樹狀結構內的位置。 |
語法 |
HRESULT QuickFiling ( ); |
SyncHierarchy 方法
值 | 描述 |
---|---|
描述 |
強制 OneNote 將指定的物件與磁碟上的來源檔案同步。 |
語法 |
HRESULT SyncHierarchy ( [in]BSTR bstrHierarchyID); |
參數 |
bstrHierarchyID – 要同步處理之物件的 OneNote 識別符。 |
SetFilingLocation 方法
值 | 描述 |
---|---|
描述 |
可讓使用者指定特定類型的內容應該在 OneNote 中歸檔的位置和方式。 |
語法 |
HRESULT SetFilingLocation ( [in]FilingLocation flToSet, [in]FilingLocationType fltToSet, [in]BSTR bstrFilingSectionID); |
參數 |
flToSet – 要設定之歸檔位置的物件類型。 fltToSet – 要在其中提出類型的位置。 bstrFilingSectionID – 您要設定位置之區段或頁面的 OneNote 識別符。 如果不適用,用戶可以傳入 null 或空字串。 |
可歸檔的內容類型包括 Outlook 專案和 Internet Explorer 的 Web Notes,這些專案會透過每個應用程式中的 [ 傳送至 OneNote] 命令匯入至 OneNote 。 列印到 OneNote 的項目歸檔位置也可以使用這個方法來設定。
屬性
本節描述 應用程式介面 的屬性。
屬性 | 描述 |
---|---|
Windows |
讓使用者存取開啟的 OneNote 視窗。 此屬性可讓用戶列舉 OneNote 視窗集合,並修改特定視窗屬性。 如需詳細資訊,請參閱 Windows 介面。 |
COMAddIns |
會傳回 OneNote 的 COMAddIns 集合。 此集合包含 OneNote 可用的所有 COM 載入宏。 COMAddins 集合的 Count 屬性會傳回可用的 COM 載入宏數目。如需詳細資訊,請參閱 COMAddIns 物件。 |
LanguageSettings |
可讓您存取某些 API 來變更 OneNote 的通用語言設定。 |
Events
本節描述應用程式介面的事件。
注意
目前無法在Managed程式代碼中新增事件。
OnNavigate 事件
值 | 描述 |
---|---|
描述 |
允許使用者在從目前的 OneNote 位置巡覽 OneNote UI 時,指派要呼叫的函式。 |
語法 |
Event OnNavigate ( ); |
OnHierarchyChange 方法
值 | 描述 |
---|---|
描述 |
允許使用者在 OneNote 階層變更 (時指派要呼叫的函式,例如新增或刪除頁面,或移動區段) 。 階層變更會批處理,因此如果同時或接近同一時間發生多個變更,OneNote 就會引發事件一次。 |
語法 |
Event OnHierarchyChange ( BSTR bstrActivePageID); |
參數 |
bstrActivePageID – 傳遞使用中頁面的 OneNote 識別符。 |