Application インターフェイス (OneNote)

Application インターフェイスには、OneNote の情報とコンテンツの取得、操作、および更新に役立つメソッドが含まれています。 こうしたメソッドは、次の 4 つの一般的なカテゴリに分けられます。

  • ノートブック構造 – ノートブック、セクション グループ、セクションを検出、開く、変更、閉じる、削除する方法など、ノートブック構造を操作するためのメソッド。

  • ページ コンテンツ – ページ コンテンツを検出、変更、保存、削除するためのページとページ コンテンツを操作するためのメソッド。 ページ コンテンツには、バイナリ オブジェクト (インクやイメージなど)、およびテキスト オブジェクト (アウトラインなど) が含まれます。

  • ナビゲーション – ページとオブジェクトを検索、リンク、および移動するためのメソッド。

  • 機能 – OneNote で特定のアクションを実行したり、パラメーターを設定したりするその他のすべてのメソッド。

さらに、Application インターフェイスには、いくつかのプロパティイベントが含まれています。

ノートブック構造のメソッド

このセクションで説明するメソッドを使用すると、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 – (省略可能) 出力する OneNote XML スキーマのバージョン ( XMLSchema 型)。 XML スキーマのバージョンは、2013、2010、2007、または現行のバージョンを指定できます。
: xsCurrent を使用したり空白のままにしたりするのではなく、OneNote のバージョン (xs2013 など) を指定することをお勧めします。これは、アドインが将来のバージョンの OneNote で動作できるようにするためです。

GetHierarchy メソッドは、既定で OneNote 2013 XML 形式の文字列を返します。また、オプションの xsSchema パラメーターを使用して、優先 XML スキーマ バージョンを設定することもできます。

どのパラメーターを渡すかによって、GetHierarchy メソッドは異なるリストを返すようになります (たとえば、すべてのノートブック、すべてのノートブックに含まれるすべてのセクション、特定のセクション内のすべてのページ、特定のノートブック内のすべてのページなど)。 それぞれのノードごとに、プロパティ (セクションやページのタイトル、ID、最終更新時刻など) の情報を示す 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 コード内でセクション ID を変更せずに、そのセクションの name 属性を変更します。

xsSchema – (省略可能) 文字列 bstrChangesXmln の OneNote スキーマ バージョン。 この省略可能な値は、 bstrChangesXmlIn 文字列が含まれる OneNote XML スキーマのバージョンを指定するために使用されます。 この値を指定しない場合、OneNote は XML がスキーマ バージョン xsCurrent にあると想定します。

: xsCurrent を使用したり空白のままにしたりするのではなく、OneNote のバージョン (xs2013 など) を指定することをお勧めします。これは、アドインが将来のバージョンの OneNote で動作できるようにするためです。

bstrChangesXmlIn パラメーターに部分的な OneNote XML 文字列のみを渡すと、OneNote は必要な変更を推論しようとします。 たとえば、1 つのセクションのみを含む Notebook 要素を含めると、OneNote は、そのセクションを既存のセクションの最後に追加します。 ただし、あいまいな操作の指定については、その結果を判断することが困難になります。 たとえば、既存のノートブックに 4 つのセクションが含まれているときに、そのノートブックと 4 番目のセクションおよび 1 番目のセクションのみが (この順序で) 含まれている XML 文字列を渡すと、OneNote は 2 番目と 3 番目のセクションを 4 番目のセクションの前に配置することも、1 番目のセクションの後に配置することもあります。

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 メソッドに渡すと、既存の階層に含まれるセクションの 1 つの名前が変更されます (name 属性の値が "My Renamed Section" に変更されます)。 その後で、名前を変更したもの以外のすべてのセクションが削除されます。 さらに、このコードではターゲットの Section 要素から不要な属性 (lastModifiedTimeisCurrentlyViewedcolor などの属性) が削除され、属性の nameID、および path のみがそのまま残されます。

<?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 ID。 bstrPath パラメーターが絶対パスの場合は、空の文字列 ("") の bstrRelativeToObjectID を渡すことができます。 また、作成するオブジェクト (セクションまたはセクション グループ) の格納先ノートブックまたはセクション グループのオブジェクト ID を渡して、その親オブジェクトの下に作成するオブジェクトのファイル名 (section1.one など) を指定することもできます。
pbstrObjectID – (出力パラメーター) OpenHierarchy メソッドが開くノートブック、セクション グループ、またはセクションに対して OneNote から返されるオブジェクト ID。 このパラメーターは、このメソッドが ID を書き込む文字列へのポインターです。
cftlfNotExist – (省略可能) CreateFileType 列挙体からの列挙値。 cftIfNotExist の値を渡すと、OpenHierarchy メソッドは、ファイルがまだ存在しない場合にのみ、指定されたパスにセクション グループまたはセクション ファイルを作成します。

開いているノートブックに含まれていないセクション グループを指定すると、OpenHierarchy メソッドはセクション グループをノートブックとして開きます。 開いているノートブックに含まれていないセクションを指定すると、OpenHierarchy メソッドは Recent Opened Sections セクション グループにセクションを開きます。 開いているノートブックに含まれているセクション グループまたはセクションを指定しても何も起こりません。そのセクション グループまたはセクションは既に開いています。 どの場合も、OpenHierarchy は指定されたセクション グループ、ノートブック、またはセクションのオブジェクト ID を返します。その ID は別の操作で使用できます。

また、新しいセクションを作成するために XML をインポートするのではなく、OpenHierarchy メソッドを使用することもできます。

次のコードは、OpenHierarchy メソッドを使用して、Work ノートブックの Meetings セクションを開いて、そのセクションの ID を取得する方法を示しています。 そのセクションが存在していない場合は、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 ID。 このオブジェクトは、セクション グループ、セクション、またはページです。
dateExpectedLastModified – (省略可能) 削除するオブジェクトが最後に変更されたと思われる日時。 このパラメーターに 0 以外の値を渡すと、OneNote は、渡された値とオブジェクトの実際の最終更新日時が一致する場合にのみ更新操作を続行します。 このパラメーターで値を渡すと、オブジェクトの最終更新時以降にユーザーが編集した内容の意図しない上書きを防止できます。
deletePermanently – (省略可能) コンテンツを完全に削除するには truefalse を指定 すると、対応するノートブックの OneNote ごみ箱にコンテンツが移動されます (既定値)。 ノートブックが OneNote 2007 形式の場合は、ごみ箱が存在しないため、コンテンツは完全に削除されます。

CreateNewPage メソッド

説明
説明
指定したセクションに新しいページを追加します。 新しいページは、セクションの最後のページとして追加されます。
構文
HRESULT CreateNewPage(
[in]BSTR bstrSectionID,
[out]BSTR * pbstrPageID);
[in,defaultvalue(npsDefault)]NewPageStyle npsNewPageStyle);
パラメーター
bstrSectionID – 新しいページを作成するセクションの OneNote ID を含む文字列。
pbstrPageID – (出力パラメーター) メソッドが新しく作成したページの OneNote ID を書き込む文字列へのポインター。
npsNewPageStyle – 作成するページのスタイルを指定する NewPageStyle 列挙体の値。

OneNote API の CreateNewPage メソッドは、利便性を目的として含まれています。 UpdateHierarchy メソッドを呼び出すことで、同じ結果が得られます。この場合は、新しいページの階層内での配置方法を細かく制御できます。 また、UpdateHierarchy メソッドを使用すると、新しいページの作成と同時にサブページも作成できます。

CloseNotebook メソッド

説明
説明
指定したノートブックを閉じます。
構文
HRESULT CloseNotebook(
[in]BSTR bstrNotebookID,
[in,defaultvalue(false)]VARIANT_BOOL force);
パラメーター
bstrNotebookID – 閉じるノートブックの OneNote ID。
force – (省略可能) True を指定 すると、ノートブックが閉じる前に OneNote が同期できない変更があった場合でも、ノートブックを閉じます。それ以外の場合は false (既定値)。

CloseNotebook メソッドを使用すると、指定したノートブックを閉じることができます。 このメソッドを呼び出すと、OneNote はオフラインのファイルを現在のノートブック コンテンツと同期します (同期が必要な場合)。その後で、指定のノートブックを閉じます。 このメソッドから復帰すると、そのノートブックは OneNote ユーザー インターフェイス (UI) の開いているノートブックのリストに表示されなくなります。

GetHierarchyParent メソッド

説明
説明
OneNote オブジェクトの親オブジェクトの OneNote ID を取得します。
構文
HRESULT GetHierarchyParent (
[in]BSTR bstrObjectID,
[out]BSTR * pbstrParentID);
パラメーター
bstrObjectID – 親オブジェクトを検索するオブジェクトの OneNote ID を含む文字列。
pbstrParentID – (出力パラメーター) メソッドが親オブジェクトの OneNote ID を書き込む文字列へのポインター。

親オブジェクトが存在しない OneNote オブジェクトの場合 (ユーザーがノートブックの親オブジェクトを取得しようとした場合など)、例外がスローされます。

GetSpecialLocation メソッド

説明
説明
OneNote の特定の特別なアイテム (バックアップ、落書きノート、既定のノートブックなど) の保存場所へのパスを見つけます。
構文
HRESULT GetSpecialLocation(
[in]SpecialLocation slToGet,
[out]BSTR * pbstrSpecialLocationPath);
パラメーター
slToGet – 取得する特別なフォルダーの場所を指定する SpecialLocation 列挙値の 1 つ。
pbstrSpecialLocationPath – (出力パラメーター) 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 ID。

pbstrPageXmlOut – (Output パラメーター) OneNote が XML 出力を書き込む文字列へのポインター。

pageInfoToExport – (省略可能) GetPageContent メソッドがバイナリ コンテンツを返すかどうかを指定します。XML コードに埋め込まれており、base-64 でエンコードされています。 バイナリ コンテンツには、イメージやインクなどのデータを含めることができます。 また、pageInfoToExport パラメーターでは、GetPageContent メソッドから返される XML コード内で選択部分をマーク アップするかどうかも指定します。 PageInfo 列挙型の列挙値を指定します。

xsSchema – (省略可能) 出力する OneNote XML スキーマのバージョン ( XMLSchema 型)。 XML スキーマのバージョンは、2013、2010、2007、または現行のバージョンを指定できます。

: xsCurrent を使用したり空白のままにしたりするのではなく、OneNote のバージョン (xs2013 など) を指定することをお勧めします。これは、アドインが将来のバージョンの OneNote で動作できるようにするためです。

既定では、過度に長い XML 文字列を返さないようにするために、OneNote は XML コードにバイナリ コンテンツを埋め込みません。 同じ理由から、現在の選択部分を選択属性でマーク アップすることもありません。 バイナリ オブジェクトは、そのオブジェクトのタグに OneNote ID が含まれています。 バイナリ オブジェクトを取得するには、GetBinaryPageContent メソッドを呼び出して、GetPageContent メソッドから取得した OneNote ID を渡します。 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 – (省略可能) 更新するページが最後に変更されたと思われる日付と時刻。 このパラメーターに 0 以外の値を渡すと、OneNote は、渡された値とページの実際の最終更新日時が一致する場合にのみ更新操作を続行します。 このパラメーターで値を渡すと、ページの最終更新時以降にユーザーが編集した内容の意図しない上書きを防止できます。

xsSchema – (省略可能) 出力する OneNote XML スキーマのバージョン ( XMLSchema 型)。 XML スキーマのバージョンは、2013、2010、2007、または現行バージョンを指定できます。

: xsCurrent を使用したり空白のままにしたりするのではなく、OneNote のバージョン (xs2013 など) を指定することをお勧めします。これは、アドインが将来のバージョンの OneNote で動作できるようにするためです。

force - (省略可能) OneNote の将来のバージョンからページに不明なデータが存在していてもページ コンテンツを更新する場合は true。それ以外の場合は false (既定)。

このメソッドを使用すると、さまざまな方法でページを変更できます。 たとえば、UpdatePageContent メソッドは、ページへのアウトアインの追加、アウトラインのコンテンツの変更、イメージの追加、インクの追加、コンテンツの移動、アウトラインのテキストの変更などに使用できます。

具体的な例としては、GetPageContent メソッドを使用して既存のページをエクスポートし、ページの XML コードに変更を加えてから、UpdatePageContent メソッドを使用してページ全体を再度インポートします。 また、このメソッドを使用して、新しいページ オブジェクト (イメージなど) を既存のページの下部に追加することもできます。

UpdatePageContent メソッドに渡す XML コードには、変更したページ レベルのオブジェクト (アウトライン、ページ上のイメージ、ページ上のインクなど) のみを含める必要があります。 このメソッドは、bstrPageChangesXmlIn パラメーターで指定していないページ レベルのオブジェクトを変更または削除することはありません。 このメソッドは、渡されたオブジェクトの ID と一致する ID を持つページ レベルのオブジェクト (アウトラインなど) を完全に置き換えます。 そのため、コードでは、既存のコンテンツとそのコンテンツに加える変更内容を含めて、すべてのページ レベルのオブジェクトを完全に指定する必要があります。

たとえば、ページにアウトラインと背景ページ イメージが含まれている場合は、XML コードで既存のアウトラインの ID を使用してアウトラインを完全に指定して、そのコードにイメージを含めないようにすることで、イメージを変更することなく、アウトラインを置き換えることができます。 既存のアウトラインはコードに含まれる改訂したアウトラインで完全に置き換えられるため、そのアウトラインのすべてのコンテンツを含める必要があります。

さらに、UpdatePageContent メソッドは、bstrPageChangesXmlIn パラメーターで指定した要素のプロパティのみを変更します。 たとえば、PageSettings 要素のすべてのプロパティではなく、一部のプロパティを指定すると、指定していないプロパティは変更されません。

次の例は、UpdatePageContent メソッドを使用して、ページのタイトルを変更し、そのページにいくつかのサンプル テキストを追加する方法を示しています。 このコードの実行前に、自分のコンピューターでコードが動作するように、コード内に示したページ ID を有効なページ ID に置換してください。 ページのページ ID は、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 ID。
bstrCallBackID – 取得するバイナリ オブジェクトの OneNote ID。 この ID (callbackID) は、GetPageContent メソッドで返されるページの OneNote XML コードに含まれています。
pbstrBinaryObectB64Out – (出力パラメーター) OneNote がバイナリ オブジェクトを base-64 でエンコードされた文字列として書き込む文字列へのポインター。

DeletePageContent メソッド

説明
説明
オブジェクト ( OutlineInkImage オブジェクトなど) をページから削除します。
構文
HRESULT DeletePageContent(
[in]BSTR bstrPageID,
[in]BSTR bstrObjectID,
[in,defaultvalue(0)]DATE dateExpectedLastModified,
[in,defaultvalue(#)]VARIANT_BOOL force);
パラメーター
bstrPageID – 削除するオブジェクトを含むページの OneNote ID。
bstrObjectID – 削除するオブジェクトの OneNote ID。
dateExpectedLastModified – (省略可能) 削除するコンテンツを含むページが最後に変更されたと思われる日付と時刻。 このパラメーターに 0 以外の値を渡すと、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 ID。
bstrTargetFilePath – 結果の出力ファイルを保存する場所への絶対パス。 指定したファイルは、その場所に存在していないことが必要です。
pfPublishFormat – 発行済みページの形式を指定する PublishFormat 列挙値の 1 つ (MTHML、PDF など)。
bstrCLSIDofExporter – Microsoft Windows 拡張メタファイル (.emf) をエクスポートできる登録済み COM アプリケーションのクラス ID (CLSID)。 この COM アプリケーションは、IMsoDocExporter インターフェイスを実装している必要があります。 このパラメーターは、サード パーティの開発者がカスタム形式で OneNote コンテンツを発行する独自のコードを作成できるようにするために含まれています。 IMsoDocExporter インターフェイスの詳細については、「Office (2007) 固定形式エクスポート機能の拡張」を参照してください。

現在、OneNote では次のファイル形式をサポートしています。

  • MHTML ファイル (.mht)
  • Adobe Acrobat PDF ファイル (.pdf)
  • XML Paper Specification (XPS) ファイル (.xps)
  • OneNote 2013、2010 または 2007 ファイル (.one)
  • OneNote パッケージ ファイル (.onepkg)
  • Microsoft Word 文書 (.doc or .docx)
  • Microsoft Windows 拡張メタファイル (.emf)
  • HTML ファイル (.html)

このメソッドは、UI の [発行] をクリックして形式を指定した場合と、まったく同じ結果を生成します。

このセクションで説明するメソッドを使用すると、OneNote ノートブック、セクション グループ、セクション、ページ、およびページ オブジェクトへのナビゲーション、リンク、および検索が可能になります。

説明
説明
指定したオブジェクト (セクション、ページ、ページ内の Outline 要素など) にナビゲートします。
構文
HRESULT NavigateTo(
[in]BSTR bstrHierarchyObjectID,
[in,defaultvalue(#)]BSTR bstrObjectID,
[in,defaultvalue(0)]VARIANT_BOOL fNewWindow);
パラメーター
bstrHierarchyObjectID – OneNote 階層で移動するオブジェクトの OneNote ID。
bstrObjectID – OneNote ページで移動するオブジェクトの OneNote ID。
fNewWindow – (省略可能) true を指定 して、新しい OneNote ウィンドウで指定したオブジェクトを開きます。 OneNote ウィンドウが開いているときには新しいウィンドウを開かない場合は false
説明
説明
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 を指定 して、指定した URL を新しい OneNote ウィンドウで開きます。 OneNote ウィンドウが開いているときには新しいウィンドウを開かない場合は false

GetHyperLinkToObject メソッド

説明
説明
指定のノートブック、セクション グループ、セクション、ページ、またはページ オブジェクトへの OneNote ハイパーリンクを取得します。
構文
HRESULT GetHyperlinkToObject(
[in] BSTR bstrHierarchyID,
[in] BSTR bstrPageContentObjectID,
[out] BSTR * pbstrHyperlinkOut);
パラメーター
bstrHierarchyID – ハイパーリンクが必要なノートブック、セクション グループ、セクション、またはページの OneNote ID。
bstrPageContentObjectID – (省略可能) ハイパーリンクが必要なページ内のオブジェクトの OneNote ID。 たとえば、このオブジェクトはアウトラインであることも、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 ID。
bstrPageContentObjectID – (省略可能) ハイパーリンクが必要なページ内のオブジェクトの OneNote ID。 たとえば、このオブジェクトはアウトラインであることも、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 の検索ボックスに入力する場合とまったく同じ文字列を渡します。 ビットごとの演算子 (ANDOR など) を使用できます。この演算子は、大文字表記にする必要があります。

pbstrHierarchyXmlOut – (出力パラメーター) OneNote で出力 XML 文字列を書き込む文字列へのポインター。 結果の XML 文字列には、ルートから下位方向に検索文字列と一致するページまでのノートブック階層が格納されています。 たとえば、FindPages メソッドは、階層内で一致するページが存在しないセクションはリスト出力しません。 さらに、1 つのセクションの 1 つのページのみが文字列と一致する場合に返される階層には、そのセクションとページへのパスが含まれますが、それ以外のノートブック階層の部分へのパスは含まれません。

fIncludeUnindexedPages – (省略可能) Windows Search によってインデックスが作成されていないページを検索する場合は true 。それ以外の場合は false

fDisplay – (省略可能) true を指定 すると、ユーザーが自分で入力したかのように、ユーザーの UI で検索も実行されます。 UI の変化なしにクエリを実行する場合は false (既定)。

xsSchema – (省略可能) 文字列 pbstrHierarchyXmlOut の OneNote スキーマ バージョン。 この省略可能な値は、pbstrHierarchyXmlOut 文字列を格納する OneNote XML スキーマのバージョンを指定するために使用します。 この値を指定しない場合、OneNote は XML がスキーマ バージョン xsCurrent にあると想定します。

: xsCurrent を使用したり空白のままにしたりするのではなく、OneNote のバージョン (xs2013 など) を指定することをお勧めします。これは、アドインが将来のバージョンの OneNote で動作できるようにするためです。

FindPages は、コンピューターに Microsoft Search 3.0 または 4.0 がインストールされている場合にのみ動作します。 Windows Vista および Windows 7 には、このコンポーネントが組み込まれています。 ただし、それより前のバージョンの Windows を実行している場合は、FindPages が動作するように、Windows Search をインストールする必要があります。

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 – (出力パラメーター) OneNote で出力 XML 文字列を書き込む文字列へのポインター。 結果の XML 文字列には、ルートから下位方向に検索文字列と一致するページまでのノートブック階層が格納されています。 たとえば、FindPages メソッドは、階層内で一致するページが存在しないセクションはリスト出力しません。 さらに、1 つのセクションの 1 つのページのみが文字列と一致する場合に返される階層には、そのセクションとページへのパスが含まれますが、それ以外のノートブック階層の部分へのパスは含まれません。
fIncludeUnindexedPages – (省略可能) Windows Search によってインデックスが作成されていないページを検索する場合は true 。それ以外の場合は false

xsSchema – (省略可能) 文字列 pbstrHierarchyXmlOut の OneNote スキーマ バージョン。 この省略可能な値は、pbstrHierarchyXmlOut 文字列を格納する OneNote XML スキーマのバージョンを指定するために使用します。 この値を指定しない場合、OneNote は XML がスキーマ バージョン xsCurrent にあると想定します。

: xsCurrent を使用したり空白のままにしたりするのではなく、OneNote のバージョン (xs2013 など) を指定することをお勧めします。これは、アドインが将来のバージョンの OneNote で動作できるようにするためです。

FindMeta は、コンピューターに Microsoft Windows Search 3.0 または 4.0 がインストールされている場合にのみ動作します。 Windows Vista および Windows 7 には、このコンポーネントが組み込まれています。 ただし、それより前のバージョンの Windows を実行している場合は、FindMeta が動作するように、Windows Search をインストールする必要があります。

機能性のメソッド

このセクションで説明するメソッドを使用すると、OneNote アプリケーションで特定のアクションを実行することやパラメーターを設定することができます。

MergeFiles メソッド

説明
説明
ユーザーが同じファイルの変更内容を 1 つに結合できるようにします。 複数のファイルが同一であると見なされるには、それらの OneNote ID が同じであることが必要です。
構文
HRESULT MergeFiles (
[in]BSTR bstrBaseFile,
[in]BSTR bstrClientFile,
[in]BSTR bstrServerFile,
[in]BSTR bstrTargetFile);
パラメーター
bstrBaseFile – ファイルの初期状態の .one ファイルの場所へのパス文字列。
bstrClientFile – サーバー ファイルの変更がベースとマージされた後に、ベース ファイルにマージされる 2 番目の変更セットの .one ファイルの場所へのパス文字列。
bstrServerFile – 基本ファイルとマージする変更の最初のセットの .one ファイルの場所へのパス文字列。
bstrTargetFile – マージされた変更を含むファイルの .one ファイルの場所へのパス文字列。

MergeFiles メソッドは、複数バージョンの OneNote ファイルが存在する可能性のあるモバイル シナリオに向けられたものです。

MergeSections メソッド

説明
説明
セクションのコンテンツを OneNote の別のセクションに結合します。
構文
HRESULT MergeSections (
[in]BSTR bstrSectionSourceId,
[in]BSTR bstrSectionDestinationId);
パラメーター
bstrSectionSourceId – マージするセクションの OneNote ID。
bstrSectionDestinationId – マージ先のセクションの OneNote ID。 結合元のセクションが、この結合先セクションに結合されます。

このメソッドは、セクションを右クリックしたときに表示される [別のセクションに結合] 機能と同じ操作を実行します。

QuickFiling メソッド

説明
説明
IQuickFilingDialog ダイアログ ボックスのインスタンスを返します。このダイアログ ボックスは、OneNote 階層ツリーの場所を選択する際に使用できます。
構文
HRESULT QuickFiling (
);

SyncHierarchy メソッド

説明
説明
指定したオブジェクトとディスク上のソース ファイルを OneNote で強制的に同期します。
構文
HRESULT SyncHierarchy (
[in]BSTR bstrHierarchyID);
パラメーター
bstrHierarchyID – 同期するオブジェクトの OneNote ID。

SetFilingLocation メソッド

説明
説明
ユーザーが OneNote で特定の種類のコンテンツを分類整理する場所と方法を指定できるようにします。
構文
HRESULT SetFilingLocation (
[in]FilingLocation flToSet,
[in]FilingLocationType fltToSet,
[in]BSTR bstrFilingSectionID);
パラメーター
flToSet – 設定するファイリング場所のオブジェクトの種類。
fltToSet – 型をファイルする場所。
bstrFilingSectionID – 設定する場所のセクションまたはページの OneNote ID。 該当しない場合、ユーザーは Null または空の文字列を渡すことができます。

分類整理できるコンテンツの種類には、Outlook アイテムおよび Internet Explorer からの Web ノートが含まれます。これらは、それぞれのアプリケーションの [OneNote に送る] コマンドで OneNote にインポートします。 OneNote に出力するアイテムをファイリングする場所は、このメソッドで設定することもできます。

プロパティ

このセクションでは、Application インターフェイスのプロパティについて説明します。

Property 説明
Windows
開いている OneNote ウィンドウにユーザーがアクセスできるようにします。 このプロパティによって、ユーザーが OneNote ウィンドウのセットを列挙して、特定のウィンドウのプロパティを変更できるようになります。 詳細については、「Windows インターフェイス」を参照してください。
COMAddIns
OneNote の COMAddIns コレクションを返します。 このコレクションには、OneNote で使用可能なすべての COM アドインが含まれています。 COMAddins コレクションの Count プロパティは、使用可能な COM アドインの数を返します。詳細については、「COMAddIns オブジェクト」を参照してください。
LanguageSettings
OneNote の共通言語の設定を変更する一部の API にアクセスできます。

イベント

このセクションでは、Application インターフェイスのイベントについて説明します。

注意

現時点では、マネージ コードにイベントを追加することはできません。

OnNavigate イベント

説明
説明
現在の OneNote の場所から別の場所に OneNote UI がナビゲートされたときに呼び出す関数をユーザーが割り当てできます。
構文
Event OnNavigate (
);

OnHierarchyChange メソッド

説明
説明
OneNote 階層が変更されたとき (ページの追加時または削除時、セクションの移動時など) に必ず呼び出される関数をユーザーが割り当てできます。 階層の変更は一括処理されるため、複数の変更が同時またはほぼ同時に発生すると、OneNote はこのイベントを 1 回発せさせます。
構文
Event OnHierarchyChange (
BSTR bstrActivePageID);
パラメーター
bstrActivePageID – アクティブなページの OneNote ID を渡します。

関連項目