(57)【要約】      （修正有）【課題】．ＮＥＴ（商標）Ｆｒａｍｅｗｏｒｋの効率および／または性能を高める方法を可能にするＡＰＩ関数の独自のセットを提供し、開発者が、オペレーティングシステム、オブジェクトモデルサービス、あるいは他のシステムまたはサービスからサービスを得られるようにする。【解決手段】グラフィカルコンポーネントの再生に関連するサービスの第１群と、クラスのプロパティをデータソースにバインディングすることに関連するサービスの第２群と、コンテンツのフォーマットに関連するサービスの第３群とをプログラミングインターフェースに備える。【選択図】  図２
2005135384.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のコンピュータ可読媒体において実施されるプログラミングインターフェースであって、
グラフィカルコンポーネントの生成に関連するサービスの第１群と、
クラスのプロパティをデータソースにバインディングすることに関連するサービスの第２群と、
コンテンツのフォーマットに関連するサービスの第３群と
を備えたことを特徴とするプログラミングインターフェース。
【請求項２】
サービスの前記第１群は、前記グラフィカルコンポーネントの外見を決定するサービスを含むことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項３】
サービスの前記第１群は、前記グラフィカルコンポーネントの挙動を決定するサービスを含むことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項４】
サービスの前記第１群は、前記グラフィカルコンポーネントの配置を決定するサービスを含むことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項５】
サービスの前記第１群は、前記グラフィカルコンポーネントを定義する複数のネストされたプリミティブコントロールを含むことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項６】
前記グラフィカルコンポーネントは、ベクトルグラフィックスによって定義されることを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項７】
少なくとも１つのグラフィカルコンポーネントのアニメーション表示に関連するサービスの第４群をさらに備えたことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項８】
ナビゲーション機能を有するアプリケーションの作成に関連するサービスの第４群をさらに備えたことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項９】
電子インク処理システムのサポートに関連するサービスの第４群をさらに備えたことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項１０】
複数の異なる媒体型の組合せに関連するサービスの第４群をさらに備えたことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項１１】
ブラウザ型インターフェースを使用するクライアントでのアプリケーション実行に関連するサービスの第４群をさらに備えたことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項１２】
アプリケーションの自動的なインストールおよび実行に関連するサービスの第４群をさらに備えたことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項１３】
コンテンツのシリアライゼーションに関連するサービスの第４群をさらに備えたことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項１４】
ユーザインターフェースの生成のオートメーションに関連するサービスの第４群をさらに備えたことを特徴とする請求項１に記載のプログラミングインターフェース。
【請求項１５】
請求項１に記載の前記プログラミングインターフェースを備えたソフトウェアアーキテクチャ。
【請求項１６】
１つまたは複数のコンピュータ可読媒体で実施されるプログラミングインターフェースであって、
コンテンツを表示する前に前記コンテンツをフォーマットすることに関連するサービスの第１群と、
クラスのプロパティをデータソースにバインディングすることに関連するサービスの第２群と、
イメージングエフェクトの生成に関連するサービスの第３群と
を備えたことを特徴とするプログラミングインターフェース。
【請求項１７】
サービスの前記第１群は、複数のデータ要素を配置することを含むことを特徴とする請求項１６に記載のプログラミングインターフェース。
【請求項１８】
サービスの前記第３群は、少なくとも１つのグラフィカルアイテムのアニメーション表示を含むことを特徴とする請求項１６に記載のプログラミングインターフェース。
【請求項１９】
サービスの第４群は、アプリケーションのユーザが複数のイメージの間でナビゲートできるようにする前記アプリケーションの作成に関連することを特徴とする請求項１６に記載のプログラミングインターフェース。
【請求項２０】
前に作成されたコンテンツの編集に関連するサービスの第４群をさらに備えたことを特徴とする請求項１６に記載のプログラミングインターフェース。
【請求項２１】
入力デバイスから受け取る入力の管理に関連するサービスの第４群をさらに備えたことを特徴とする請求項１６に記載のプログラミングインターフェース。
【請求項２２】
他のコンピューティングシステムとのインターオペラビリティを有効にすることに関連するサービスの第４群をさらに備えたことを特徴とする請求項１６に記載のプログラミングインターフェース。
【請求項２３】
１つまたは複数のマイクロプロセッサと１つまたは複数のソフトウェアプログラムとを含むコンピュータシステムであって、前記１つまたは複数のソフトウェアプログラムは、オペレーティングシステムからサービスを要求するためにアプリケーションプログラムインターフェースを使用し、前記アプリケーションプログラムインターフェースは、
グラフィカルオブジェクトの生成に関連するサービスの第１群と、
前記グラフィカルオブジェクトのコンポーネントの作成に関連するサービスの第２群と、
前記グラフィカルオブジェクトの外見の修正に関連するサービスの第３群と
を含むサービスを要求する個別のコマンドを含むことを特徴とするコンピュータシステム。
【請求項２４】
サービスの前記第１群は、少なくとも１つのグラフィカルオブジェクトの挙動を定義するサービスを含むことを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２５】
サービスの前記第１群は、前記１つのグラフィカルオブジェクトの配置を定義するサービスを含むことを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２６】
前記グラフィカルオブジェクトの外見を修正することは、前記グラフィカルオブジェクトのアニメーション表示を含むことを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２７】
サービスの前記第２群は、幾何学的形状を生成するサービスを含むことを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２８】
前記アプリケーションプログラムインターフェースは、さらに、テキストをフォーマットすることに関連するサービスの第４群を備えたことを特徴とする請求項２３に記載のコンピュータシステム。
【請求項２９】
データをフォーマットするのを容易にする１つまたは複数の第１機能を呼び出すステップと、
グラフィカルオブジェクトを作成するのを容易にする１つまたは複数の第２機能を呼び出すステップと、
前記グラフィカルオブジェクトの外見を変更するのを容易にする１つまたは複数の第３機能を呼び出すステップと
を備えたことを特徴とする方法。
【請求項３０】
複数のグラフィカルオブジェクトを使用してユーザインターフェースを生成するのを容易にする１つまたは複数の第４機能を呼び出すステップをさらに備えたことを特徴とする請求項２９に記載の方法。
【請求項３１】
ユーザインターフェースのランタイム作成を容易にする１つまたは複数の第４機能を呼び出すステップをさらに備えたことを特徴とする請求項２９に記載の方法。
【請求項３２】
複数のグラフィカルオブジェクトを使用してユーザインターフェースを生成するのを容易にする１つまたは複数の第４機能を呼び出すステップと、
前記ユーザインターフェースのランタイム作成を容易にする１つまたは複数の第５機能を呼び出すステップと
をさらに備えたことを特徴とする請求項２９に記載の方法。
【請求項３３】
前記第１機能は、
ユーザ入力を受け取るステップと、
ディスプレイ上でデータ要素を配置するステップと
を容易にすることを特徴とする請求項２９に記載の方法。
【請求項３４】
前記第２機能は、幾何学的形状の生成を容易にすることを特徴とする請求項２９に記載の方法。
【請求項３５】
前記第２機能は、少なくとも１つの幾何学的形状の生成を容易にし、および前記第３機能は、前記幾何学的形状の外見を修正するのを容易にすることを特徴とする請求項２９に記載の方法。
【請求項３６】
複数の幾何学的形状を作成できるようにする機能の第１のセットを公開する手段と、
前記幾何学的形状が配置される方法を変更できるようにする機能の第２のセットを公開する手段と、
前記幾何学的形状の外見を修正できるようにする機能の第３のセットを公開する手段と
を備えたことを特徴とするシステム。
【請求項３７】
機能の前記第２のセットは、さらに、ページ上の前記幾何学的形状の配置をレンダリングできるようにすることを特徴とする請求項３６に記載のシステム。
【請求項３８】
前記複数の幾何学的形状は、線を含むことを特徴とする請求項３６に記載のシステム。
【請求項３９】
機能の前記第３のセットは、さらに、イメージエフェクトを少なくとも１つの幾何学的形状に関連付けられるようにすることを特徴とする請求項３６に記載のシステム。
【請求項４０】
機能の前記第３のセットは、さらに、期間にわたって特定の幾何学的形状の外見を変更できるようにすることを特徴とする請求項３６に記載のシステム。
【請求項４１】
前記複数の幾何学的形状を使用するユーザインターフェースの生成を可能にする機能の第４セットを公開する手段をさらに備えたことを特徴とする請求項３６に記載のシステム。
【請求項４２】
グラフィカルオブジェクトを１つまたは複数のデータソースに関連付けられるようにする機能の第４セットを公開する手段をさらに備えたことを特徴とする請求項３６に記載のシステム。
【請求項４３】
グラフィカルオブジェクトのデータ固有版を表示できるようにする機能の第４セットを公開する手段をさらに備えたことを特徴とする請求項３６に記載のシステム。
【請求項４４】
グラフィカルオブジェクトのコンポーネントの作成を容易にする１つまたは複数の第１機能を呼び出すステップと、
グラフィカルオブジェクトの生成を容易にする１つまたは複数の第２機能を呼び出すステップと、
前記グラフィカルオブジェクトの外見の修正を容易にする１つまたは複数の第３機能を呼び出すステップと、
前記グラフィカルオブジェクトの配置を容易にする１つまたは複数の第４機能を呼び出すステップと、
前記グラフィカルオブジェクトのデータソースへの関連付けを容易にする１つまたは複数の第５機能を呼び出すステップと
を備えたことを特徴とする方法。
【請求項４５】
コンテンツの複数の表示の間でのナビゲーションを容易にする１つまたは複数の第６機能を呼び出すことをさらに備えたことを特徴とする請求項４４に記載の方法。
【請求項４６】
前記グラフィカルオブジェクトのコンポーネントは、複数の形状を含むことを特徴とする請求項４４に記載の方法。
【請求項４７】
前記第２機能は、さらに、グラフィカルユーザインターフェースの生成を容易にすることを特徴とする請求項４４に記載の方法。
【請求項４８】
前記第３機能は、特定のグラフィカルオブジェクトの前記外見を修正する機能を含むことを特徴とする請求項４４に記載の方法。
【請求項４９】
前記第３機能は、グラフィカルオブジェクトの１つまたは複数のコンポーネントの前記外見を修正する機能を含むことを特徴とする請求項４４に記載の方法。
【請求項５０】
前記第３機能は、グラフィカルオブジェクトをディスプレイ上の異なる位置に移動する機能を含むことを特徴とする請求項４４に記載の方法。
【請求項５１】
前記第３機能は、ユーザ入力に応答してグラフィカルオブジェクトの外見を修正することを特徴とする請求項４４に記載の方法。
【請求項５２】
前記第４機能は、ユーザ入力に応答してグラフィカルオブジェクトの配置を修正することを特徴とする請求項４４に記載の方法。
【請求項５３】
プログラムを開発する方法であって、
グラフィカルイメージのコンポーネントを選択する機能の第１群にアクセスするステップと、
前記グラフィカルイメージを生成する機能の第２群にアクセスするステップと、
前記グラフィカルイメージの少なくとも１つのコンポーネントの外見を修正する機能の第３群にアクセスするステップと、
前記グラフィカルイメージに関連するコンテンツをフォーマットする機能の第４群にアクセスするステップと
を備えたことを特徴とする方法。
【請求項５４】
前記グラフィカルイメージは、ユーザインターフェースであることを特徴とする請求項５３に記載の方法。
【請求項５５】
前記コンテンツは、テキスト情報であることを特徴とする請求項５３に記載の方法。
【請求項５６】
前記コンテンツは、グラフィカルデータであることを特徴とする請求項５３に記載の方法。
【請求項５７】
前記グラフィカルイメージのコンポーネントをデータソースに関連付ける機能の第５群にアクセスすることをさらに備えたことを特徴とする請求項５３に記載の方法。
【請求項５８】
機能の前記第３群は、さらに、前記グラフィカルイメージの少なくとも１つのコンポーネントに関連する挙動を修正することを特徴とする請求項５３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアおよびそのようなソフトウェアの開発に関する。より詳細には、アプリケーションプログラムおよびコンピュータハードウェアによる、ソフトウェアプラットフォームの使用を容易にするプログラミングインターフェースに関する。
【背景技術】
【０００２】
非常に早くから、コンピュータソフトウェアは、「オペレーティングシステム」ソフトウェアまたは「アプリケーション」ソフトウェアとして分類されるようになった。おおまかにいって、アプリケーションは、数学の方程式を解くか、またはワードプロセッシングをサポートするなど、コンピュータユーザのために特定のタスクを実行することを意図されたソフトウェアである。オペレーティングシステムは、コンピュータハードウェアを管理し、制御するソフトウェアである。オペレーティングシステムの目標は、コンピュータリソースをアプリケーションプログラマが使用可能にすると同時に、ハードウェアを実際に制御するのに必要な複雑さを隠蔽することである。
【０００３】
オペレーティングシステムは、アプリケーションプログラムインターフェースまたはＡＰＩとして周知の機能または関数を介してリソースを使用可能にする。用語ＡＰＩは、これらの機能のうちの単一の関数を指すのにも使用される。関数は、多くの場合、アプリケーションプログラマに提供するリソースまたはサービスに関してグループ化される。アプリケーションソフトウェアは、個々のＡＰＩ関数を呼び出すことによってリソースを要求する。ＡＰＩ関数は、オペレーティングシステムによって提供されるメッセージおよび情報をアプリケーションソフトウェアに中継する手段としても働く。
【０００４】
【特許文献１】米国特許出願第０９／５９８，１０５号明細書
【特許文献２】米国特許出願第０９／６１３，２８９号明細書
【非特許文献１】［online］、ＥＣＭＡ、〈URL:www.ecma.ch〉
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ハードウェアの変更のほかに、オペレーティングシステムソフトウェアの進化を駆り立てるもう１つの要因が、アプリケーションソフトウェア開発を単純化し、加速する要望である。アプリケーションソフトウェア開発は、困難な作業になる場合があり、時折、数百万行のコードによって高度化されたプログラムを作成するために数年の開発者の時間を必要とする。Ｍｉｃｒｏｓｏｆｔ  Windows(登録商標)オペレーティングシステムのさまざまなバージョンなどの広く使用されているオペレーティングシステムに関して、アプリケーションソフトウェア開発者は、そのオペレーティングシステムを利用する数千本の異なるアプリケーションを毎年記述している。そのように多くの異なるアプリケーション開発者をサポートするために、一貫性のある（coherent）、利便性の高いオペレーティングシステムベースが必要である。
【０００６】
多くの場合、オペレーティングシステムをより複雑にすることによって、アプリケーションソフトウェアの開発を単純にすることができる。すなわち、ある機能が、複数の異なるアプリケーションプログラムに有用であり得る場合に、その機能をオペレーティングシステムに含めるために一度記述することが、数十人のソフトウェア開発者が数十本の異なるアプリケーションに含めるために数十回記述することを要求するよりよい場合がある。このように、オペレーティングシステムが、複数のアプリケーションによって要求される広範囲の共通の機能性をサポートする場合、アプリケーションソフトウェア開発のコストおよび時間においてかなりの節約を達成することができる。
【０００７】
オペレーティングシステムとアプリケーションソフトウェアの間のどこに線が引かれるかに関係なく、有用なオペレーティングシステムについて、オペレーティングシステムおよびコンピュータハードウェアとアプリケーションソフトウェアとの間のＡＰＩは、オペレーティングシステム自体の効率的な内部動作と同様に重要であることは明白である。
【０００８】
過去数年間に、インターネットおよびネットワーク技術全般の万国での採用によって、コンピュータソフトウェア開発者の情景が変化した。従来、ソフトウェア開発者は、独立型デスクトップコンピュータまたはローカルエリアネットワーク（ＬＡＮ）を介して、限られた数の他のコンピュータに接続されたＬＡＮベースコンピュータの単一サイトソフトウェアアプリケーションに焦点を合わせていた。ソフトウェアが、シュリンクラップパッケージでマーケティングされ、販売されたので、そのようなソフトウェアアプリケーションを、通常は、「シュリンクラップ」製品と称する。これらのアプリケーションは、明確に定義されたＡＰＩを使用して、コンピュータの基礎になるオペレーティングシステムにアクセスした。
【０００９】
インターネットが進化し、広く受け入れられたので、産業界は、ワールドワイドウェブ（または単に「ウェブ」）のさまざまなサイトでのアプリケーションのホスティングの威力を理解し始めた。ネットワーク化された世界では、あらゆる場所のクライアントが、個別の位置でホスティングされるサーバベースのアプリケーションに要求をサブミットし、数分の１秒で応答を受信することができる。しかし、これらのウェブアプリケーションは、通常は、元々は独立型コンピューティングマシンまたはローカルにネットワーク化されたコンピュータのために開発されたものと同一のオペレーティングシステムプラットフォームを使用して開発された。残念ながら、いくつかの場合に、これらのアプリケーションは、分散コンピューティング管理様式に適切に移行されていない。基礎になるプラットフォームは、単純に、無制限の数の相互接続されたコンピュータをサポートするという観念を用いて構成されていなかった。
【００１０】
インターネットによって導入された分散コンピューティング環境へのシフトに対処するために、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎは、「．ＮＥＴ」Ｆｒａｍｅｗｏｒｋ（「ドットネット」と読む）またはＭｉｃｒｏｓｏｆｔ（登録商標）．ＮＥＴと称するネットワークソフトウェアプラットフォームを開発した。Ｍｉｃｒｏｓｏｆｔ（登録商標）．ＮＥＴは、人、情報、システム、および装置を接続するソフトウェアである。このプラットフォームを用いると、開発者が、インターネットを介して実行されるウェブサービス（Ｗｅｂ  ｓｅｒｖｉｃｅ）を作成できるようになる。この動的なシフトは、Ｍｉｃｒｏｓｏｆｔの．ＮＥＴ（商標）ＦｒａｍｅｗｏｒｋのＡＰＩ関数のセットによって達成された。
【００１１】
．ＮＥＴ（商標）Ｆｒａｍｅｗｏｒｋの使用がますます一般的になるにつれて、このプラットフォームの効率および／または性能を高める方法が特定された。本発明人は、そのような高められた効率および／または性能を可能にするＡＰＩ関数の独自のセットを開発した。
【課題を解決するための手段】
【００１２】
プログラミングインターフェースが、アプリケーション、文書、媒体プレゼンテーション、および他の内容を生成する機能を提供する。これらの機能は、開発者が、オペレーティングシステム、オブジェクトモデルサービス、あるいは他のシステムまたはサービスからサービスを得られるようにする。一実施形態では、これらの機能は、開発者が、グラフィカルユーザインターフェースを生成できるようにする。
【００１３】
同一の符号は、複数の図面を通じて同一の特徴を指すのに使用される。
【発明を実施するための最良の形態】
【００１４】
この開示は、開発者がウェブアプリケーションおよびウェブサービスを構築できるネットワークプラットフォームのためのアプリケーションプログラムインターフェース（ＡＰＩ）を扱う。より詳細には、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって作成された．ＮＥＴ（商標）Ｆｒａｍｅｗｏｒｋなどのネットワークプラットフォームを利用するオペレーティングシステムの例示的ＡＰＩを説明する。．ＮＥＴ（商標）Ｆｒａｍｅｗｏｒｋは、分散コンピューティング環境で実施されるウェブサービスおよびウェブアプリケーションのソフトウェアプラットフォームである。．ＮＥＴ（商標）Ｆｒａｍｅｗｏｒｋは、特定のタスクを実行するために協力している疎結合ウェブサービスの間の通信にオープン通信標準規格を使用する、次世代のインターネットコンピューティングを表す。
【００１５】
説明する実施形態では、ネットワークプラットフォームは、ＸＭＬ（extensible markup language）すなわちデータを記述するオープン標準規格を使用する。ＸＭＬは、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ（Ｗ３Ｃ）によって管理される。ＸＭＬは、ウェブページおよび企業間文書のデータ要素を定義するのに使用される。ＸＭＬでは、ＨＴＭＬに類似するタグ構造が使用されるが、ＨＴＭＬは、要素をどのように表示するかを定義し、ＸＭＬは、それらの要素に何が含まれるかを定義する。ＨＴＭＬでは、事前に定義されたタグを使用するが、ＸＭＬでは、ページの開発者がタグを定義することができる。したがって、事実上任意のデータアイテムを識別することができ、ウェブページが、データベースレコードのように機能することができる。ＸＭＬおよびＳＯＡＰ（Simple Object Access Protocol）などの他のオープンプロトコルの使用を介して、ネットワークプラットフォームが、ユーザの必要に合わせて調整できる広範囲のサービスの統合を可能にする。本明細書に記載の実施形態を、ＸＭＬおよび他のオープン標準規格とともに説明するが、これは、請求される発明の動作に必須ではない。
【００１６】
本明細書で使用される句、フレーズアプリケーションプログラムインターフェースまたはＡＰＩには、メソッド呼出しまたは関数呼出しを使用する従来のインターフェースならびに、リモート呼出し（たとえばプロキシ、スタブ関係）およびＳＯＡＰ／ＸＭＬ呼出しが含まれる。
【００１７】
（例示的ネットワーク環境）
図１に、．ＮＥＴ（商標）Ｆｒａｍｅｗｏｒｋなどのネットワークプラットフォームを実装できるネットワーク環境１００を示す。ネットワーク環境１００には、ネットワーク１０４（たとえばインターネット）上でアクセスできるサービスを提供する、代表的なウェブサーバ１０２（１）、…、１０２（Ｎ）が含まれる。一般に符号１０２として参照されるウェブサービスは、リモートプロシージャコール（ＲＰＣ）またはオブジェクトブローカ型技術などの、ネットワークを介してウェブサービスと相互作用する他の手段も使用することができるが、通常は、ＸＭＬ、ＳＯＡＰ、ＷＡＰ（wireless  application  protocol）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、およびＳＭＴＰ（シンプルメール転送プロトコル）などの産業界標準ウェブプロトコルを介してネットワーク１０４上でプログラム的に相互作用する、再利用可能なプログラマブルアプリケーションコンポーネントである。ウェブサービスは、自己記述的とすることができ、しばしば、メッセージのフォーマットおよび順序に関して定義される。
【００１８】
ウェブサービス１０２は、他のサービス（通信リンク１０６によって表されるように）、またはウェブアプリケーション１１０などのソフトウェアアプリケーション（通信リンク１１２および１１４によって表されるように）によって直接にアクセス可能である。各ウェブサービス１０２は、特定のサービスに関する要求を処理するソフトウェアを実行する１つまたは複数のサーバを含むものとして示されている。そのようなサービスは、しばしば、要求元にサービスされる情報を保管するデータベースを維持する。ウェブサービスを構成して、さまざまな異なるサービスの任意の１つを実行することができる。ウェブサービスの例に、ログイン検証、通知、データベース保管、株式市況、ディレクトリの突き止め、地図作成、音楽、電子ウォレット、カレンダ／スケジューラ、電話リスティング、ニュースおよび情報、ゲーム、発券業務などが含まれる。ウェブサービスを、互いにおよび他のアプリケーションと組み合わせて、インテリジェント対話経験を構築することができる。
【００１９】
ネットワーク環境１００には、ウェブサービス１０２（通信リンク１２２によって表される）および／またはウェブアプリケーション１１０（通信リンク１２４、１２６、および１２８によって表される）を使用する代表的なクライアント装置１２０（１）、１２０（２）、１２０（３）、１２０（４）、…、１２０（Ｍ）も含まれる。クライアントは、クライアント１２０（３）と１２０（４）の間の例示的なＸＭＬリンク１２９によって表されるように、標準プロトコルを使用して互いに通信することもできる。
【００２０】
全般的に符号１２０として参照されるクライアント装置は、多数の異なる形で実施することができる。可能なクライアント実施形態の例に、制限なしに、ポータブルコンピュータ、ステーショナリコンピュータ、タブレットＰＣ、テレビジョン／セットトップボックス、無線通信装置、携帯情報端末、ゲーム機、プリンタ、コピー機、および他のスマート装置が含まれる。
【００２１】
ウェブアプリケーション１１０は、ネットワークプラットフォームで動作するように設計されたアプリケーションであり、クライアント１２０からの要求を処理し、サービスするときに、ウェブサービス１０２を使用することができる。ウェブアプリケーション１１０は、プログラミングフレームワーク１３２上で稼動する１つまたは複数のソフトウェアアプリケーション１３０からなり、ソフトウェアアプリケーション１３０は、１つまたは複数のサーバ１３４または他のコンピュータシステムで実行されている。ウェブアプリケーション１１０の一部が、実際には１つまたは複数のクライアント１２０に常駐する場合があることに留意されたい。その代わりに、ウェブアプリケーション１１０が、実際にタスクを達成するクライアント１２０上の他のソフトウェアを調整することができる。
【００２２】
プログラミングフレームワーク１３２は、アプリケーション開発者によって開発されるアプリケーションおよびサービスをサポートする構造である。プログラミングフレームワーク１３２は、複数の言語をサポートすることによって、マルチ言語開発およびシームレス統合を可能にする。プログラミングフレームワーク１３２は、ＳＯＡＰなどのオープンプロトコルをサポートし、基礎になるオペレーティングシステムサービスおよびオブジェクトモデルサービスをカプセル化する。このフレームワークは、複数のプログラミング言語の堅牢で保護された実行環境を提供し、保護され、統合されたクラスライブラリを提供する。
【００２３】
フレームワーク１３２は、アプリケーションプログラムインターフェース（ＡＰＩ）レイヤ１４２、共通言語ランタイム（ＣＬＲ）レイヤ１４４、およびオペレーティングシステム／サービスレイヤ１４６を含むマルチティアアーキテクチャである。この階層アーキテクチャを用いると、フレームワークの他の部分に影響せずに、さまざまなレイヤに対する更新および修正が可能になる。共通言語仕様（ＣＬＳ）１４０を用いると、さまざまな言語の設計者が、基礎になるライブラリ機能性にアクセスできるコードを記述できるようになる。共通言語仕様１４０は、言語設計者とライブラリ設計者の間の、言語インターオペラビリティを促進するのに使用できるコントラクトとして機能する。ＣＬＳを厳守することによって、ある言語で記述されたライブラリは、別の言語で記述されたコードモジュールから直接にアクセスでき、ある言語で記述されたコードモジュールと別の言語で記述されたコードモジュールの間のシームレスな統合を達成することができる。ＣＬＳの１つの例示的な詳細な実施形態が、ＥＣＭＡ  ＴＣ３９／ＴＧ３の参加者によって作成されたＥＣＭＡ標準規格である。非特許文献１を参照されたい。
【００２４】
ＡＰＩレイヤ１４２は、アプリケーション１３０が、レイヤ１４６によって提供されるリソースおよびサービスにアクセスするために呼び出す関数のグループを提供する。ネットワークプラットフォームに対するＡＰＩ関数を公開することによって、アプリケーション開発者は、ネットワークリソースが実際にどのように動作するかまたは使用可能にされるかの複雑な相互作用を理解する必要なしに、ネットワークリソースおよび他のウェブサービスを完全に利用する分散コンピューティングシステム用のウェブアプリケーションを作成することができる。さらに、ウェブアプリケーションを、任意の数のプログラミング言語で記述でき、共通言語ランタイムレイヤ１４４によってサポートされ、共通言語仕様１４０の一部として含まれる中間言語に変換することができる。この形で、ＡＰＩレイヤ１４２が、広範囲のさまざまなアプリケーションにメソッドを提供することができる。
【００２５】
さらに、フレームワーク１３２を、フレームワークをホスティングするサーバ１３４からリモートに実行されるリモートアプリケーションによって設定される、ＡＰＩ呼出しをサポートするように構成することができる。それぞれクライアント１２０（３）および１２０（Ｍ）に常駐する代表的なアプリケーション１４８（１）および１４８（２）は、直接的にまたは間接的に、ネットワーク１０４上でＡＰＩレイヤ１４２への呼出しを行うことによって、ＡＰＩ関数を使用することができる。
【００２６】
このフレームワークを、クライアントで実施することもできる。クライアント１２０（３）は、フレームワーク１５０がクライアントで実施される情況を表す。このフレームワークは、サーバベースのフレームワーク１３２と同一とするか、クライアント用に修正することができる。その代わりに、クライアントが、携帯電話、携帯情報端末、ハンドヘルドコンピュータ、または他の通信／コンピューティング装置などの制限付きまたは専用機能の装置である場合に、クライアントベースフレームワークを圧縮することができる。
【００２７】
（開発者のプログラミングフレームワーク）
図２に、プログラミングフレームワーク１３２を詳細に示す。共通言語仕様（ＣＬＳ）レイヤ１４０は、さまざまな言語１３０（１）、１３０（２）、１３０（３）、１３０（４）、…、１３０（Ｋ）で記述されたアプリケーションをサポートする。そのようなアプリケーション言語に、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｃ＋＋、Ｃ＃、ＣＯＢＯＬ、Ｊｓｃｒｉｐｔ、Ｐｅｒｌ、Ｅｉｆｆｅｌ、Ｐｙｔｈｏｎなどが含まれる。共通言語仕様１４０は、それに従う場合にさまざまな言語が通信できるようなる特徴のまたは特徴に関するルールのサブセットを指定する。たとえば、いくつかの言語は、共通言語ランタイム１４４によってサポートされる可能性がある所与の型（たとえば、「ｉｎｔ＊」型）をサポートしない。この場合に、共通言語仕様１４０に、その型が含まれない。その一方で、すべてまたはほとんどの言語によってサポートされる型（たとえば、「ｉｎｔ［］」型）は、共通言語仕様１４０に含まれ、したがって、ライブラリ開発者は、それを使用することができ、言語がそれを処理できることが保証される。この通信の能力は、ある言語で記述されたコードモジュールと別の言語で記述されたコードモジュールの間のシームレスな統合をもたらす。異なる言語が、特定のタスクに特によく適するので、言語の間のシームレスな統合によって、開発者が、特定のコードモジュールに対し特定の言語を選択でき、そのコードモジュールを異なる言語で記述されたモジュールと共に使用する能力が与えられる。共通言語ランタイム１４４を用いると、クロス言語継承と共にシームレスなマルチ言語開発が可能になり、複数プログラミング言語の堅牢で保護された実行環境が提供される。共通言語仕様１４０および共通言語ランタイム１４４に関するさらなる情報については、特許文献１、表題「Method and System for Compiling Multiple Languages」および特許文献２、表題「Unified Data Type System and Method」を参照されたい。
【００２８】
フレームワーク１３２によって、オペレーティングシステム１４６（１）（たとえば、Windows（登録商標）ブランドのオペレーティングシステム）およびオブジェクトモデルサービス１４６（２）（たとえば、コンポーネントオブジェクトモデル（ＣＯＭ）または分散ＣＯＭ）がカプセル化される。オペレーティングシステム１４６（１）は、ファイル管理、通知、イベント処理、ユーザインターフェース（たとえば、ウィンドウイング（windowing）、メニュー、ダイアログなど）、セキュリティ、認証、検証、プロセスおよびスレッド、メモリ管理などの従来の機能を提供する。オブジェクトモデルサービス１４６（２）は、さまざまなタスクを実行するために、他のオブジェクトとのインターフェースを提供する。ＡＰＩレイヤ１４２に対して行われる呼出しは、オペレーティングシステム１４６（１）および／またはオブジェクトモデルサービス１４６（２）によるローカル実行のために共通言語ランタイムレイヤ１４４に渡される。
【００２９】
ＡＰＩ１４２は、ＡＰＩ関数を複数の名前空間にグループ化する。名前空間によって、本質的に、セットとして「型」と呼ばれる、関連する機能性の特定のセットを提供する、クラス、インターフェース、委任（delegate）、列挙、および構造体のセットが定義される。クラスは、参照割り当てセマンティックス（semantics）を有する、管理されるヒープから割り当てられるデータを表す。委任は、オブジェクト指向関数ポインタである。列挙は、名前付き定数を表す特殊な種類の値型である。構造体は、値割り当てセマンティックスを有する、静的に割り当てられたデータを表す。インターフェースは、他の型を実施できるコントラクトを定義する。
【００３０】
名前空間を使用することによって、設計者が、型のセットを階層名前空間に編成することができる。設計者は、型のセットから複数のグループを作成することができ、各グループに、論理的に関連する機能性を公開する少なくとも１つの型が含まれる。例示的な実施形態では、ＡＰＩ１４２が、３つのルート名前空間を含むように編成される。図２には３つのルート名前空間だけが示されているが、追加のルート名前空間をＡＰＩ１４２に含めることもできることに留意されたい。ＡＰＩ１４２に示された３つのルート名前空間は、プレゼンテーションサブシステムの第１名前空間２００（ユーザインターフェースシェルの名前空間２０２を含む）、ウェブサービスの第２名前空間２０４、およびファイルシステムの第３名前空間２０６である。各グループに名前を割り当てることができる。たとえば、プレゼンテーションサブシステム名前空間２００に、名前「Windows(登録商標)」を割り当てることができ、ファイルシステム名前空間２０６の型に、名前「Ｓｔｏｒａｇｅ」を割り当てることができる。名前付きグループを、Ｓｙｓｔｅｍ名前空間全体などのシステムレベルＡＰＩの単一の「グローバルルート」名前空間の下で編成することができる。トップレベル識別子を選択し、プレフィックシングすることによって、各グループの型を、型を含むグループの名前の前に置かれた選択されたトップレベル識別子を含む階層名によって簡単に参照することができる。たとえば、ファイルシステム名前空間２０６の型を、階層名「Ｓｙｓｔｅｍ．Ｓｔｏｒａｇｅ」を使用して参照することができる。このようにして、個々の名前空間２００、２０４、および２０６が、Ｓｙｓｔｅｍ名前空間からの主要な分岐になり、および個々の名前空間が「Ｓｙｓｔｅｍ．」プレフィックスなどの指示子（designator）を前に付けられる指定を伝える。
【００３１】
プレゼンテーションサブシステム名前空間２００は、プログラミングおよびコンテンツ開発に関する。この名前空間は、アプリケーション、文書、媒体プレゼンテーション、および他のコンテンツの生成を可能にする型を供給する。たとえば、プレゼンテーションサブシステム名前空間２００は、開発者がオペレーティングシステム１４６（１）および／またはオブジェクトモデルサービス１４６（２）からサービスを得られるようにするプログラミングモデルを提供する。
【００３２】
シェル名前空間２０２は、ユーザインターフェース機能性に関する。この名前空間は、開発者が自分のアプリケーションにユーザインターフェース機能性を埋め込めるようにし、さらに、開発者がユーザインターフェース機能性を拡張できるようにする型を供給する。
【００３３】
ウェブサービス名前空間２０４は、たとえば、イントラネット上の２つのピアの間で動作するチャットアプリケーションのように単純なアプリケーションおよび／または数百万のユーザに関するスケーラブルウェブサービスなどの複雑なアプリケーションなど、さまざまなウェブアプリケーションの作成を可能にするインフラストラクチャに関する。本明細書で説明するインフラストラクチャは、有利なことに、特定のソリューションの複雑さに適当なパーツだけを使用する必要があるという点で、非常に可変である。このインフラストラクチャは、さまざまなスケールおよび複雑さのメッセージベースアプリケーションを構築する基礎を提供する。このインフラストラクチャまたはフレームワークは、基本的メッセージング、セキュアメッセージング、信頼されるメッセージング、およびトランザクション処理されるメッセージングのＡＰＩを提供する。下で説明する実施形態では、関連するＡＰＩが、有用性、使い易さ、拡張性、およびバージョナビリティ（versionability）のバランスをとるように注意深く作成された形で名前空間の階層に分解される。
【００３４】
ファイルシステム名前空間２０６は、ストレージに関する。この名前空間は、情報の保管および検索を可能にする型を供給する。
【００３５】
フレームワーク１３２のほかに、プログラミングツール２２０が、開発者がウェブサービスおよび／またはアプリケーションを構築するのを支援するために設けられている。プログラミングツール２２０の１つの例が、Ｍｉｃｒｏｓｏｆｔ社によって提供されるプログラミングツールのマルチ言語スイートであるＶｉｓｕａｌ  Ｓｔｕｄｉｏ（商標）である。
【００３６】
（ルートＡＰＩ名前空間）
図３に、プレゼンテーションサブシステム２００の一部を詳細に示す。一実施形態では、名前空間は、名前のストリングがピリオドによって連結される階層命名規約に従って識別される。たとえば、プレゼンテーションサブシステム２００は、ルート名「Ｓｙｓｔｅｍ．Windows」によって識別される。「Ｓｙｓｔｅｍ．Windows」名前空間内に、「Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ」として識別される、さまざまなコントロールのもう１つの名前空間があり、この名前空間は、さらに、「Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ｐｒｉｍｉｔｉｖｅｓ」と称する、プリミティブ（図示せず）のもう１つの名前空間を識別する。この命名規約を念頭において、以下では、ＡＰＩ１４２の選択された名前空間の一般的な概要を示すが、他の命名規約を使用して同等の効果を得ることができる。
【００３７】
図３からわかるように、プレゼンテーションサブシステム２００に、複数の名前空間が含まれる。図３に示された名前空間は、プレゼンテーションサブシステム２００の特定の実施形態を表す。プレゼンテーションサブシステム２００の他の実施形態に、１つまたは複数の追加の名前空間を含めることができ、あるいは、図３に示された名前空間の１つまたは複数を省略することができる。
【００３８】
プレゼンテーションサブシステム２００は、ＡＰＩ１４２のプレゼンテーション機能性の多くのルート名前空間である。Ｃｏｎｔｒｏｌｓ名前空間３１０に、ユーザインターフェースなどの情報のディスプレイを構築するのに使用されるコントロールと、ユーザがアプリケーションと対話できるようにするクラスが含まれる。コントロール例に、ディスプレイ上のボタンを作成する「Ｂｕｔｔｏｎ」、ディスプレイ上のラジオスタイルのボタンを生成する「ＲａｄｉｏＢｕｔｔｏｎ」、ディスプレイ上のメニューを作成する「Ｍｅｎｕ」、ディスプレイ上のツールバーを作成する「ＴｏｏｌＢａｒ」、ディスプレイ上のイメージを作成する「Ｉｍａｇｅ」、および情報の階層ビューを作成する「ＴｒｅｅＶｉｅｗ」が含まれる。
【００３９】
ある種のコントロールは、複数の要素をネストし、配置することによって作成される。これらのコントロールは、コントロールの作成に使用される要素を隠蔽する論理モデルを有し、これによって、プログラミングモデルが単純になる。コントロールは、開発者またはユーザが（たとえば、ユーザインターフェースボタンの外見および挙動をカスタマイズすることによって）スタイルおよびテーマを与えることができる。一部のコントロールは、個人が個々のコントロールのスタイルを調整できるようにするアドレス可能コンポーネントを有する。さらに、コントロールを、アプリケーション設計者およびコンポーネント開発者がサブクラス化し、拡張することができる。コントロールは、ベクトルグラフィックスを使用してレンダリングされ、特定のインターフェースまたは他のディスプレイの要件に合うようにサイズを変更することができる。コントロールは、たとえばユーザインターフェースの対話フィールを強化し、アクションおよびリアクションを示すためにアニメーションを使用することができる。
【００４０】
（Ｃｏｎｔｒｏｌｓ名前空間）
Ｃｏｎｔｒｏｌｓ名前空間３１０に、１つまたは複数のパネルが含まれ、このパネルは、その子（たとえばネストされた要素）を測定し、配置するコントロールである。たとえば、「ＤｏｃｋＰａｎｅｌ」パネルでは、各子をディスプレイの上辺、左辺、下辺、または右辺にドッキングすることによって子を配置し、残りのスペースに他のデータを充てんする。たとえば、特定のパネルが、ディスプレイ最上部のメニューおよびツールバー、ディスプレイ最下部のステータスバー、ディスプレイの左辺のフォルダリストにドッキングし、残りのスペースにメッセージのリストを充てんすることができる。
【００４１】
上で述べたように、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ｐｒｉｍｉｔｉｖｅｓは、通常はＳｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ名前空間内のコントロールの開発者および彼ら自身のコントロールを作成する開発者によって使用されるコンポーネントである複数のコントロールを含む名前空間である。このコントロールの例に、「ＴｈｕｍｂおよびＲｅｐｅａｔＢｕｔｔｏｎ」が含まれる。もう１つのコンポーネントである「ＳｃｒｏｌｌＢａｒ」は、４つのリピートボタン（「行上」の１つ、「行下」の１つ、「ページ上」の１つ、および「ページ下」の１つ）および現在のビューを文書内の別のロケーションにドラッグする「Ｔｈｕｍｂ」を使用して作成される。もう１つの例で、「ＳｃｒｏｌｌＶｉｅｗｅｒ」は、スクロール可能領域を提供するために２つの「ＳｃｒｏｌｌＢａｒｓ」および１つの「ＳｃｒｏｌｌＡｒｅａ」を使用して作成されるコントロールである。
【００４２】
下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ名前空間によって公開されるクラス例が含まれる。これらのクラスを用いると、ユーザが、たとえばさまざまな入出力機能ならびに追加のディスプレイ機能を介してアプリケーションと対話できるようになる。
・AccessKey  −  ＡｃｃｅｓｓＫｅｙは、文字をラップし、その文字をキーボードニーモニック（keybooard mnemonic）として表すキーボードキュー装飾を受け取ることを示す、ＦｒａｍｅｗｏｒｋＥｌｅｍｅｎｔ要素である。デフォルトで、キーボードキュー装飾は、下線である。
・Audio  −  Ａｕｄｉｏ要素。
・Border  −  ボーダー、バックグラウンド、またはその両方を、別の要素の回りに描く。
・Button  −  Ｃｌｉｃｋイベントに固有に反応する標準ボタンコンポーネントを表す。
・Canvas  −  Ｃａｎｖａｓ領域に対する相対的な座標によってユーザが子要素を明示的に位置決めできる領域を定義する。
・CheckBox  −  ユーザに、真／偽などのオプションを与えるにはＣｈｅｃｋＢｏｘを使用する。ＣｈｅｃｋＢｏｘを用いると、ユーザが、オプションのリストから選択できるようになる。ＣｈｅｃｋＢｏｘコントロールによって、ユーザが、オプションの組合せを選択できるようになる。
・CheckedChangedEventArgs  −  ＣｈｅｃｋｅｄＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓクラスには、ＣｈｅｃｋｅｄＣｈａｎｇｅｄＥｖｅｎｔイベントに関する追加情報が含まれる。
・CheckStateChangedEventArgs  −  ＣｈｅｃｋＳｔａｔｅＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓクラスには、 ＣｈｅｃｋＳｔａｔｅＣｈａｎｇｅｄＥｖｅｎｔイベントに関する追加情報が含まれる。
・ClickEventArgs  −  Ｃｌｉｃｋイベントに関する情報を含む。
・ColumnStyle  −  変更可能なＣｏｌｕｍｎＳｔｙｌｅオブジェクトを表す。
・ColumnStyles  −  Ｃｈａｎｇｅａｂｌｅ要素のコレクションである変更可能なパターンのＩＬｉｓｔオブジェクト。
・ComboBox  −  ＣｏｍｂｏＢｏｘコントロール。
・ComboBoxItem  −  ＣｏｍｂｏＢｏｘ内部で選択可能なアイテムを実装するコントロール。
・ContactPickerDialog  −  ユーザが１つまたは複数の連絡先を選択できるようにする。
・ContactPropertyRequest  −  アプリケーションが、ＣｏｎｔａｃｔＰｉｃｋｅｒＤｉａｌｏｇを介して連絡先プロパティに関する情報を要求できるようにする。このクラスを継承することはできない。
・ContactPropertyRequestCollection - ＣｏｎｔａｃｔＰｒｏｐｅｒｔｙＲｅｑｕｅｓｔオブジェクトのコレクションを表す。
・ContactSelection  −  Ｍｉｃｒｏｓｏｆｔ（登録商標）Windows(登録商標)Ｆｉｌｅ  Ｓｙｓｔｅｍ、コードネーム「ＷｉｎＦＳ」またはＭｉｃｒｏｓｏｆｔ  Ａｃｔｉｖｅ  Ｄｉｒｅｃｔｏｒｙ（登録商標）からの、選択された連絡先に関する情報。
・ContactSelectionCollection  −  ＣｏｎｔａｃｔＳｅｌｅｃｔｉｏｎオブジェクトのコレクションを表す。
・ContactTextBox  −  連絡先または連絡先のプロパティの選択をサポートするエディットコントロール。
・ContactTextBoxSelectionChangedEventArgs  − ＣｏｎｔａｃｔＴｅｘｔＢｏｘＳｅｌｅｃｔｉｏｎＣｈａｎｇｅｄイベントの引数。
・ContactTextBoxTextChangedEventArgs  −  ＣｏｎｔａｃｔＴｅｘｔＢｏｘＴｅｘｔＣｈａｎｇｅｄイベントの引数。
・ContactTextBoxTextResolvedEventArgs  −  ＴｅｘｔＲｅｓｏｌｖｅｄＴｏＣｏｎｔａｃｔイベントの引数。
【００４３】
・ContentChangedEventArgs  −  ＣｏｎｔｅｎｔＣｈａｎｇｅｄＥｖｅｎｔのイベント引数。
・ContentControl  −  単一の内容を有するすべてのコントロールの基本クラス。
・ContentPresenter  −  ＣｏｎｔｅｎｔＰｒｅｓｅｎｔｅｒは、コンテンツコントロールのスタイルで、コンテンツが追加されるコントロールのビジュアルツリー（ｃｈｒｏｍｅテンプレート）内の位置を表すのに使用される。
・ContextMenu  −  ユーザが呼び出す選択肢のメニューを定義するコントロール。
・ContextMenuEventArgs  −  ＣｏｎｔｅｘｔＭｅｎｕＥｖｅｎｔに送られるデータ。
・Control  −すべてのユーザ対話要素の基本クラスを表す。このクラスは、そのサブクラスのプロパティの基本セットを提供する。
・Decorator  −  Ｂｏｒｄｅｒなど、単一の子要素の上または周囲にエフェクトを適用する要素の基本クラス。
・DockPanel  −  互いに関して水平にまたは垂直にのいずれかで子要素を配置できる領域を定義する。
・DragDeltaEventArgs  −  ＤｒａｇＤｅｌｔａＥｖｅｎｔＡｒｇｓクラスには、ＤｒａｇＤｅｌｔａＥｖｅｎｔイベントに関する追加情報が含まれる。
・FixedPanel  −  ＦｉｘｅｄＰａｎｅｌは、自動ページ付け（ｐａｇｉｎａｔｉｏｎ）用の固定されたページを含む固定フォーマット文書で使用されるルート要素である。ＦｉｘｅｄＰａｎｅｌは、一時に１ページまたはページのスクロールが可能なスタックとして、自動ページ付けされるコンテンツを表示する。
・FlowPanel  −  ＦｌｏｗＰａｎｅｌは、単一行の長さを超えるコンテンツを、改行、ラップ、および位置合せするのに使用される。ＦｌｏｗＰａｎｅｌは、コンテナのコンテンツ、たとえばＴｅｘｔのフローが単一行の長さを超える可能性が高いときに使用できる、改行プロパティおよび位置合せプロパティを提供する。
・Frame  −  別のマークアップツリーのコンテンツをロードできる領域。
・Generator  −  Ｇｅｎｅｒａｔｏｒは、ＩｔｅｍｓＣｏｎｔｒｏｌの代わりにＵＩを生成し、ＧｅｎｅｒａｔｏｒＦａｃｔｏｒｙの監督下で働くオブジェクトである。
・GeneratorFactory  −  ＧｅｎｅｒａｔｏｒＦａｃｔｏｒｙは、ＩｔｅｍｓＣｏｎｔｒｏｌの代わりにＵＩを生成する責任を負う。ＧｅｎｅｒａｔｏｒＦａｃｔｏｒｙは、コントロールのＩｔｅｍｓＣｏｌｌｅｃｔｉｏｎ（フラット化されたビュー）のアイテムとそれに対応するＵＩＥｌｅｍｅｎｔの間の関連付けを維持する。コントロールのアイテムコンテナは、ファクトリにＧｅｎｅｒａｔｏｒを要求することができ、ファクトリは、実際のＵＩの生成を行う。
・GridPanel  −  行および列からなるグリッド領域を定義する。
・HeaderItemsControl  −  複数のアイテムを含み、ヘッダを有するすべてのコントロールの基本クラス。
・HorizontalScrollBar  −  水平スクロールバークラス。
・HorizontalSlider  −水平スライダクラス。 
・HyperLink  −  ＨｙｐｅｒＬｉｎｋクラスでは、ナビゲーションコントロールが実装される。デフォルトプレゼンタは、ＴｅｘｔＰｒｅｓｅｎｔｅｒである。
・Image  −  文書またはアプリケーションにイメージを含める簡単な手段を提供する。
・IncludeContactEventArgs  −  ＣｏｎｔａｃｔＰｉｃｋｅｒＤｉａｌｏｇ．ＩｎｃｌｕｄｅＣｏｎｔａｃｔイベントのハンドラに渡される引数。
・ItemCollection  −  コントロール内の個別のアイテムのコレクションを維持する。コレクションコンテンツの変更およびコンテンツに関するデータの入手を可能にするメソッドおよびプロパティを提供する。
・ItemsChangedEventArgs  −  ＩｔｅｍｓＣｈａｎｇｅｄイベントは、アイテムコレクションが変更したレイアウトを知らせるためにＧｅｎｅｒａｔｏｒＦａｃｔｏｒｙによって引き起こされる。
・ItemsControl  −  複数の子を有するすべてのコントロールの基本クラス。
・ItemsView  −  ＩｔｅｍｓＶｉｅｗはＩｔｅｍＣｏｌｌｅｃｔｉｏｎのフラット化されたビューを提供する。
・KeyboardNavigation  −  ＫｅｙｂｏａｒｄＮａｖｉｇａｔｉｏｎクラスは、フォーカス可能なコントロールの間の、論理（タブ）ナビゲーションおよび方向付き（矢印）ナビゲーションのメソッドを提供する。
・ListBox  −  選択可能なアイテムのリストを実装するコントロール。
・ListItem  −  ＬｉｓｔＢｏｘ内部の選択可能なアイテムを実装するコントロール。
・Menu  −  ユーザが呼び出す選択肢のメニューを定義するコントロール。
・MenuItem  −  メニューの子アイテム。ＭｅｎｕＩｔｅｍを選択することによって、コマンドを呼び出すことができる。ＭｅｎｕＩｔｅｍは、セパレータとすることができる。ＭｅｎｕＩｔｅｍは、サブメニューのヘッダとすることができる。ＭｅｎｕＩｔｅｍは、チェック付きまたはチェックなしにすることができる。
・PageViewer  −  自動ページ繰りコントロール、ツールバー、およびページバーコントロールを含む文書表示コンポジットコントロールを表す。
・PaginationCompleteEventArgs  −  ＰａｇｉｎａｔｉｏｎＣｏｍｐｌｅｔｅＥｖｅｎｔのイベント引数。
・PaginationProgressEventArgs  −  ＰａｇｉｎａｔｉｏｎＰｒｏｇｒｅｓｓＥｖｅｎｔのイベント引数。
・Pane  −  新しいウインドウを起動せずにマークアップ言語（たとえば「ＸＡＭＬ」）でウインドウプロパティを定義する手段を提供する。
・Panel  −  すべてのＰａｎｅｌ要素の基本クラスを提供する。Ｐａｎｅｌ要素をインスタンス化するためには、派生具象クラスを使用する。
・RadioButton  −  ＲａｄｉｏＢｕｔｔｏｎは、２つの状態すなわち真または偽を有するオプションボタンを実装する。
・RadioButtonList  −  このコントロールは、ＲａｄｉｏＢｕｔｔｏｎのグループ化コントロールとして働き、ＲａｄｉｏＢｕｔｔｏｎを相互排他的に処理する部分である。ＲａｄｉｏＢｕｔｔｏｎＬｉｓｔは、Ｓｅｌｅｃｔｏｒから継承する。ＲａｄｉｏＢｕｔｔｏｎＬｉｓｔは、本質的に単一のＳｅｌｅｃｔｉｏｎＭｏｄｅセレクタであり、選択（Ｓｅｌｅｃｔｏｒから）という概念は、これがグループ化するＲａｄｉｏＢｕｔｔｏｎのＣｈｅｃｋｅｄプロパティをキーオフとする。
・RowStyle  −  変更可能なパターンＣｈａｎｇｅａｂｌｅ要素。
・RowStyles  −  Ｃｈａｎｇｅａｂｌｅ要素のコレクションである変更可能なパターンのＩＬｉｓｔオブジェクト。
・ScrollChangeEventArgs  −  ＳｃｒｏｌｌＣｈａｎｇｅＥｖｅｎｔｓＡｒｇｓは、スクロール状態の変更を記述する。
・ScrollViewer  −
・SelectedItemsCollection  −  Ｓｅｌｅｃｔｏｒ内の選択されたアイテムのコンテナ。
・SelectionChangedEventArgs  −  選択変更イベントハンドラへの入力。
・SimpleText  −  ＳｉｍｐｌｅＴｅｘｔは、ユーザインターフェース（ＵＩ）シナリオでの使用を想定された軽量複数行単一フォーマットテキスト要素である。ＳｉｍｐｌｅＴｅｘｔは、複数の同一のフォーマッティングプロパティをＴｅｘｔとして公開し、しばしば、ある多用途性を犠牲にして性能を高めるのに使用することができる。
・StyleSelector  −  ＳｔｙｌｅＳｅｌｅｃｔｏｒを用いると、アプリケーション作成者がカスタムスタイル選択ロジックを提供できるようになる。たとえば、ＣｏｎｔｅｎｔとしてクラスＢｕｇを用いて、Ｐｒｉ１バッグに特定のスタイル、Ｐｒｉ２バッグに異なるスタイルを使用する。アプリケーション作成者は、派生セレクタクラスでＳｅｌｅｃｔＳｔｙｌｅメソッドをオーバーライドし、このクラスのインスタンスをＣｏｎｔｅｎｔＰｒｅｓｅｎｔｅｒクラスのＳｔｙｌｅＳｅｌｅｃｔｏｒプロパティに割り当てることができる。
・Text  −  Ｔｅｘｔの複数のフォーマットをレンダリングできるＴｅｘｔコントロールを表す。Ｔｅｘｔは、アプリケーションＵＩ内で最もよく使用される。より高度なテキストシナリオは、ＴｅｘｔＰａｎｅｌの追加の機能セットから利益を得る。比較的単純なテキストサポートが必要であるほとんどの場合において、Ｔｅｘｔは、その軽いという性質および特徴の範囲のゆえに、好ましい要素である。
・TextBox  −  テキスト入力を受け入れる編集可能な領域を提供するコントロールを表す。
・TextChangedEventArgs  −  ＴｅｘｔＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓクラスは、ＴｅｘｔＲａｎｇｅ．ＳｅｔＴｅｘｔ（）によって引き起こされたイベントに関連するタイプのＲｏｕｔｅｄＥｖｅｎｔＡｒｇｓを表す。
・TextPanel  −  テキストをフォーマットし、サイズを変更し、描画する。ＴｅｘｔＰａｎｅｌは、複数の行のテキストおよび複数のテキストフォーマットをサポートする。
・ToolTip  −  ユーザがコントロールの上でホバリングするときに情報を表示するコントロール。
・ToolTipEventArgs  −  ＴｏｏｌＴｉｐＥｖｅｎｔに送られるデータ。
・TransformDecorator  −  ＴｒａｎｓｆｏｒｍＤｅｃｏｒａｔｏｒは、子を含み、指定された変換をその子に適用する。ＴｒａｎｓｆｏｒｍＤｅｃｏｒａｔｏｒは、変換後に子がデコレータの空間にぴたりとおさまり、最大限の領域を使用するように、そのローカル（変換前）座標で子を測定し、配置するロジックを実装する。したがって、子は、それに適用される変換の知識を有する必要がない。
・UIElementCollection  −  ＵＩＥｌｅｍｅｎｔＣｏｌｌｅｃｔｉｏｎは、ＵＩＥｌｅｍｅｎｔの順序付きコレクションである。
・ValueChangedEventArgs  −  このＶａｌｕｅＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓクラスには、ＶａｌｕｅＣｈａｎｇｅｄＥｖｅｎｔイベントに関する追加情報が含まれる。
・VerticalScrollBar  −  垂直スクロールバークラス。
・VerticalSlider  −  垂直スライダクラス。
・Video  −  現在のユーザ座標系内の指定された長方形においてストリーミングビデオファイルまたはストリーミングオーディオファイルを再生する。
・VisibleChangedEventArgs  −  ＶｉｓｉｂｌｅＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓクラスは、ＶｉｓｉｂｌｅＣｈａｎｇｅｄＥｖｅｎｔイベントに関する追加情報を含む。
【００４４】
Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ名前空間には、さまざまな列挙も含まれる。下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ名前空間に関連する列挙例が含まれる。
・CharacterCase  −  テキストがタイプされるときにＴｅｘｔＢｏｘコントロール内の文字の大文字小文字を指定する。
・CheckState  −  チェックボックスなど、チェック付き、チェックなし、または中間状態とすることができるコントロールの状態を指定する。
・ClickMode  −  Ｃｌｉｃｋイベントを発生させなければならないときを指定する。
・ContactControlPropertyPosition  −  連絡先のプロパティの位置およびディスプレイを制御する。
・ContactPickerDialogLayout  −  ＣｏｎｔａｃｔＰｉｃｋｅｒＤｉａｌｏｇが選択されたプロパティをどのように表示するかを指定する。
・ContactPropertyCategory  −  プロパティが、ユーザが選択できる複数の値を有する場合に、どの値をデフォルトとして扱うかを指定する。たとえば、ＣｏｎｔａｃｔＰｉｃｋｅｒＤｉａｌｏｇから電話番号プロパティを要求するときに「Ｗｏｒｋ」が好ましいカテゴリとして指定され、ユーザが、仕事場と家庭の両方の電話番号を有する連絡先を選択する場合に、仕事場の電話番号がデフォルト選択として示される。ユーザは、ＵＩを使用して、その代わりに家庭の電話番号を選択することができる。
・ContactPropertyType  −  ＣｏｎｔａｃｔＰｉｃｋｅｒＤｉａｌｏｇがユーザに尋ねることができる連絡先のプロパティを指定する。
・ContactType  −  どの連絡先タイプをＣｏｎｔａｃｔＰｉｃｋｅｒＤｉａｌｏｇに表示するかを指定する。
・Direction  −  この列挙は、ジェネレータがＵＩを作る方向を指定するためにＧｅｎｅｒａｔｏｒＦａｃｔｏｒｙおよびＧｅｎｅｒａｔｏｒによって使用される。
・Dock  −  ＤｏｃｋＰａｎｅｌ内の子要素のＤｏｃｋ位置を指定する。
・GeneratorStatus  −  この列挙は、ＧｅｎｅｒａｔｏｒＦａｃｔｏｒｙによって、その状況を示すのに使用される。
・KeyNavigationMode  −  ＴａｂＮａｖｉｇａｔｉｏｎプロパティの型によって、Ｔａｂナビゲーションが行われるときにコンテナがフォーカスを移動する方法が指定される。
・MenuItemBehavior  −  ＭｅｎｕＩｔｅｍが有することができる異なる挙動を定義する。
・MenuItemType  −  ＭｅｎｕＩｔｅｍｓの異なる配置タイプを定義する。
・Orientation  −  スライダオリエンテーションタイプ。
・PageViewerFit  −  ページをＰａｇｅＶｉｅｗｅｒのクライアント領域にどのようにおさめるかを選択する。
・PageViewerMode  −  モードドロップダウンに反映される現在のＰａｇｅＶｉｅｗｅｒモードを選択する。
・ScrollerVisibility  −  ＳｃｒｏｌｌｅｒＶｉｓｉｂｉｌｔｙは、スクロールバーの可視性挙動を定義する。
・SelectionMode  −  ＬｉｓｔＢｏｘの選択挙動を指定する。
【００４５】
「Ｐｏｓｉｔｉｏｎ」が、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ名前空間に関連する構造体例である。Ｇｅｎｅｒａｔｏｒのユーザは、この構造体を使用して位置を記述する。たとえば、アイテムリストの先頭から前への生成を開始するには、位置（−１、０）および方向Ｆｏｒｗａｒｄを指定する。リストの末尾から後ろへの生成を開始するには、位置（−１、０）および方向Ｂａｃｋｗａｒｄを指定する。インデックスｋの要素の後のアイテムを生成するには、位置（ｋ、０）および方向Ｆｏｒｗａｒｄを指定する。
【００４６】
下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ名前空間に関連する委任例が含まれる。
・CheckedChangedEventHandler  −  この委任は、ＣｈｅｃｋｅｄＣｈａｎｇｅｄＥｖｅｎｔイベントのハンドラによって使用される。
・CheckStateChangedEventHandler  −  この委任は、ＣｈｅｃｋＳｔａｔｅＣｈａｎｇｅｄＥｖｅｎｔイベントのハンドラによって使用される。
・ClickEventHandler  −  Ｃｌｉｃｋイベントを処理するメソッドを表す。
・ContactTextBoxSelectionChangedEventHandler  −  ＣｏｎｔａｃｔＴｅｘｔＢｏｘＳｅｌｅｃｔｉｏｎＣｈａｎｇｅｄイベントの委任ハンドラ。
・ContactTextBoxTextChangedEventHandler  −  ＣｏｎｔａｃｔＴｅｘｔＢｏｘＴｅｘｔＣｈａｎｇｅｄイベントの委任ハンドラ。
・ContactTextBoxTextResolvedEventHandler  −  ＴｅｘｔＲｅｓｏｌｖｅｄＴｏＣｏｎｔａｃｔイベントの委任ハンドラ。
・ContentChangedDelegate  −  ＣｏｎｔｅｎｔＣｈａｎｇｅｄＥｖｅｎｔに関する委任。
・ContextMenuEventHandler  −  ＣｏｎｔｅｘｔＭｅｎｕＥｖｅｎｔを処理するコールバック型。
・DragDeltaEventHandler  −  この委任は、ＤｒａｇＤｅｌｔａＥｖｅｎｔイベントのハンドラによって使用される。
・IncludeContactEventHandler  −  ＣｏｎｔａｃｔＰｉｃｋｅｒＤｉａｌｏｇ．ＩｎｃｌｕｄｅＣｏｎｔａｃｔイベントのハンドラ。
・ItemsChangedEventHandler  −  ＩｔｅｍｓＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
・OpenedEventHandler  −  ＣｏｎｔａｃｔＰｉｃｋｅｒＤｉａｌｏｇ．Ｏｐｅｎｅｄイベントのハンドラ。
・PaginationCompleteDelegate  −  ＰａｇｉｎａｔｉｏｎＣｏｍｐｌｅｔｅＥｖｅｎｔに関する委任。
・PaginationProgressDelegate  −  ＰａｇｉｎａｔｉｏｎＰｒｏｇｒｅｓｓＥｖｅｎｔに関する委任。
・ScrollChangeEventHandler  −  この委任は、ＳｃｒｏｌｌＣｈａｎｇｅＥｖｅｎｔイベントのハンドラによって使用される。
・SelectionChangedEventHandler  −  選択変更イベントの処理に関する委任型。
・TextChangedEventHandler  −  ＴｅｘｔＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
・ToolTipEventHandler  −  ToolTipEventの処理に関するコールバック型。
・ValueChangedEventHandler  −  この委任は、ＶａｌｕｅＣｈａｎｇｅｄＥｖｅｎｔイベントのハンドラによって使用される。
・VisibleChangedEventHandler  −  この委任は、ＶｉｓｉｂｌｅＣｈａｎｇｅｄＥｖｅｎｔイベントのハンドラによって使用される。
【００４７】
もう１つの名前空間、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ａｔｏｍｓは、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ名前空間のサブ名前空間である。Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ａｔｏｍｓには、関連するコントロール、イベント引数、およびイベントハンドラが含まれる。下のリストに、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ａｔｏｍｓ名前空間に関連するクラス例が含まれる。
・PageBar  −  スクロール可能な自動ページ繰りコントロールを表す。
・PageElement  −  自動ページ繰りされるコンテンツの特定のページをレンダリングする。レンダリングされるページは、ＰａｇｅＳｏｕｒｃｅプロパティによって指定される。
・PageHoveredEventArgs  −  ＰａｇｅＨｏｖｅｒｅｄＥｖｅｎｔＡｒｇｓは、マウスポインタがホバリングしている場所に関する情報を提供する。
・PageScrolledEventArgs  −  ＰａｇｅＳｃｒｏｌｌｅｄＥｖｅｎｔＡｒｇｓには、ＰａｇｅＳｃｒｏｌｌｅｄイベントに関する情報が含まれる。
・PageSelectedEventArgs  −  ＰａｇｅＳｅｌｅｃｔｅｄＥｖｅｎｔは、新しい行／列範囲選択が行われるときに発せられる。
・PageSelector  −  ＰａｇｅＳｅｌｅｃｔｏｒ：ページのうちで表示される行／列の範囲をユーザが選択できるようにする。
・PageSource  −  自動ページ繰りされるコンテンツのソースを識別する。自動ページ繰りされるコンテンツをフォーマットするプロパティおよびメソッドも提供する。
【００４８】
下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ａｔｏｍｓ名前空間に関連する委任例が含まれる。
・PageHoveredEventHandler  −  この委任は、ＰａｇｅＨｏｖｅｒｅｄＥｖｅｎｔイベントのハンドラによって使用される。
・PageScrolledEventHandler  −  この委任は、ＰａｇｅＨｏｖｅｒｅｄイベントのハンドラによって使用される。
・PageSelectedEventHandler  −  この委任は、ＰａｇｅＳｅｌｅｃｔｅｄＥｖｅｎｔイベントのハンドラによって使用される。
【００４９】
Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ｐｒｉｍｉｔｉｖｅｓ名前空間は、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ名前空間のもう１つのサブ名前空間である。上で述べたように、Ｐｒｉｍｉｔｉｖｅｓサブ名前空間には、他のより複雑なコントロールによってプリミティブとして使用されることを意図されたコントロールが含まれる。下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ｐｒｉｍｉｔｉｖｅｓ名前空間に関連するクラス例が含まれる。
・ButtonBase  −  派生クラスでオーバーライドされるときに、関連するイベントおよびプロパティを定義し、関連する入力イベントのハンドラを提供する。
・Popup  −  コンテンツを含むフライアウトウインドウを作成するコントロール。
・RangeBase  −  指定された範囲を有する要素の基本クラスを表す。そのような要素の例が、スクロールバーおよびプログレスバーである。このクラスは、関連するイベントおよびプロパティを定義し、そのイベントのハンドラを提供する。
・RepeatButton  −  ＲｅｐｅａｔＢｕｔｔｏｎコントロールは、Ｃｌｉｃｋイベントが発生するときの反復セマンティックスを追加する。
・ScrollArea  −  ＳｃｒｏｌｌＡｒｅａは、スクロールに関する有効な要素である。これは、これがクリッピングするコンテンツを含み、そのコンテンツのオフセットおよび範囲を公開するプロパティを提供する。プログラムによって、あるいはキーボードまたはマウスホイールを介してスクロールを駆動できるように、デフォルト入力処理も提供する。
・ScrollBar  −  スクロールバークラス。
・Selector  −  子の間からアイテムを選択するコントロールの基本クラス。
・Slider  −  スライダクラス。
・Thumb  −  サムコントロールは、スクロールバーの基本的なドラッグ移動機能性およびウィジェットのウインドウサイズ変更を可能にする。
【００５０】
「ＩＥｎｓｕｒｅＶｉｓｉｂｌｅ」は、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ｐｒｉｍｉｔｉｖｅｓ名前空間に関連するインターフェース例である。ＩＥｎｓｕｒｅＶｉｓｉｂｌｅは、子ビジュアルをスクロール／ビューに移動するためにビジュアルに対して実施される。
【００５１】
下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｃｏｎｔｒｏｌｓ．Ｐｒｉｍｉｔｉｖｅｓ名前空間に関連する列挙例が含まれる。
・ArrowButtonStates  −
・CloseModeType  −  さまざまなマウスイベントに対してポップアップがどのように振る舞うかを記述する。
・Part  −  Ｐａｒｔ列挙は、スクロールバーを構成するコントロールのセマンティック使用を示すのに使用される。
・PartStates  −  スクロールバー部品状態。
・PlacementType  −  ポップアップがスクリーンに置かれる場所を記述する。
・SizeBoxStates  −
【００５２】
（Ｄｏｃｕｍｅｎｔｓ名前空間）
Ｄｏｃｕｍｅｎｔｓ名前空間３１２は、リッチフォーマットであり意味論的に豊富な文書の作成に使用されるセマンティック要素およびフォーマッティング要素のコレクションである。一実施形態では、「要素」は、主に要素の階層（「ツリー」と称する）と共に使用されるクラスである。これらの要素は、対話型（たとえば、キーボード、マウス、または他の入力デバイスを介するユーザ入力を受け取る）とすることができ、イメージまたはオブジェクトをレンダリングすることができ、他の要素の配置を支援することができる。要素例に、汎用ブロックを実装する「Ｂｌｏｃｋ」要素、テーブルのボディを含むコンテンツを表す「Ｂｏｄｙ」要素、テーブル内の表データを含む「Ｃｅｌｌ」要素、テーブルのヘッダに含まれるコンテンツを表す「Ｈｅａｄｅｒ」要素、およびコンテンツを複数のページにまたがって分割するのに使用される「ＰａｇｅＢｒｅａｋ」要素が含まれる。
【００５３】
下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｄｏｃｕｍｅｎｔｓ名前空間によって公開されるクラス例が含まれる。
・AdaptiveMetricsContext  −  ＡｄａｐｔｉｖｅＭｅｔｒｉｃｓＣｏｎｔｅｘｔは、適応フローフォーマット（adaptive-flow-format）文書のルート要素を提供する。子パネルが、ＡｄａｐｔｉｖｅＭｅｔｒｉｃｓＣｏｎｔｅｘｔ要素でカプセル化されたならば、親パネルのコンテンツが、ＲＭＥ（Reading Metrics Engine）によって処理される。子パネルのサイズが、列の数およびサイズならびに最適のフォントサイズおよび行高さを計算するのに使用される。
・Block  −  デフォルトレンダリング挙動を誘導しない汎用ブロック要素を実装する。
・BlockElement  −  すべてのＢｌｏｃｋ要素の基本クラスを実装する。
・Body  −  Ｔａｂｌｅ要素のボディを含むコンテンツを表す。
・Bold  −  Ｉｎｌｉｎｅから導出されるＢｏｌｄ要素を実装する。
・BreakRecord  −  改ページにまたがって自動ページ繰りされるコンテンツのフォーマッティングを継続するのに必要な情報を保管する。自動ページ繰りサポートを提供するためにこのクラスを継承する。これは、抽象クラスである。
・Cell  −  Ｃｅｌｌには、あるＴａｂｌｅ内の表データが含まれる。Ｃｅｌｌ要素は、Ｒｏｗに含まれる。
・CellCollection  −  テーブルセルの順序付きコレクション。
・Column  −  Ｃｏｌｕｍｎ要素は、ＧｒｉｄＰａｎｅｌまたはＴａｂｌｅのコンテンツを配分するのに使用される。
・ColumnCollection  −  ＣｏｌｕｍｎＣｏｌｌｅｃｔｉｏｎは、Ｃｏｌｕｍｎの順序付きコレクションである。
・ColumnResult  −  列のビュー関連情報を表す。
・ContainerParagraphResult  −  他のＰａｒａｇｒａｐｈオブジェクトだけを含むＰａｒａｇｒａｐｈオブジェクトの計算されたレイアウトパラメータへのアクセスを提供する。
・ContentPosition  −  段落内のコンテンツの位置を表す。関連するコンテンツの位置を記述するには、このクラスから継承する。これは、抽象クラスである。
・Document  −  Ｄｏｃｕｍｅｎｔクラスの目的は、文書のコンテンツを、それを囲むＵＩ「ｃｈｒｏｍｅ」から分離することである。「分離」は、そのＵＩについて考慮せずに（コミットもせずに）文書を作成できることを意味する。Ｄｏｃｕｍｅｎｔクラスは、文書コンテンツ、通常はＴｅｘｔＰａｎｅｌまたはＦｉｘｅｄＰａｎｅｌと、その子を保持する。ビジュアルツリー（デフォルトでＰａｇｅＶｉｅｗｅｒ）が、ＷＰＰコントロールスタイリング機構を介してこの要素に関連付けられる。
・DocumentPage  −  自動ページ付けの対象である文書のページに関連するコントロールのレイアウト情報を表す。これらのコントロールのレイアウト情報を記述するには、このクラスから継承する。これは、抽象クラスである。
・DocumentPageParagraphResult  −  自動ページ付けによって影響を受けるオブジェクトの計算されたレイアウトパラメータへのアクセスを提供する。
・FindEngine  −  検索アルゴリズムの基本クラス。
・FindEngineFactory  −  検索アルゴリズムファクトリ。
・FixedPage  −  固定フォーマットレイアウト文書内のコンテンツの単一ページへのアクセスを提供する。
・Footer  −  Ｔａｂｌｅ要素のフッタを含むコンテンツを表す。
・Header  −  Ｔａｂｌｅ要素のヘッダを含むコンテンツを表す。
・Heading  −  ヘディングとしてテキストをレンダリングするブロックレベル要素を実装する。
・HyphenationDictionary  −  ＨｙｐｈｅｎａｔｉｏｎＤｉｃｔｉｏｎａｒｙは、アプリケーション内のハイフネーションサポートを提供するための辞書を表す。これには、インライン辞書と外部辞書への参照との両方を含めることができる。インライン辞書は、より高い優先順位を有し、外部辞書のエントリの前に適用される。
・Hyphenator  −  Ｈｙｐｈｅｎａｔｏｒオブジェクトは、ＨｙｐｈｅｎａｔｉｏｎＤｉｃｔｉｏｎａｒｙ内のハイフネーションデータへの参照を維持し、ハイフネーションも実行する。
・Inline  −  デフォルトレンダリング挙動を全く誘導しない汎用Ｉｎｌｉｎｅ要素を実装する。
・InlineElement  −  すべてのインライン要素の基本クラスとして、汎用インライン要素を実装する。
・Italic  −  Ｉｎｌｉｎｅから導出されるＩｔａｌｉｃ要素を実装する。
・LineBreak  −  改行を課すマークアップ要素を表す。
・LineResult  −  テキストの行の計算された情報へのアクセスを提供する。
・List  −  Ｌｉｓｔ要素を実装する。Ｌｉｓｔは、中黒または番号付けなどのマーカーを用いてフォーマットされるように設計されたブロックレベル要素である。
・ListElementItem  −  中黒または番号付けなどのマーカーをサポートする、ＬｉｓｔＥｌｅｍｅｎｔＩｔｅｍを実装する。
・Note  −  ＨＴＭＬのｎｏｔｅ要素に類似する、Ｎｏｔｅ要素を実装する。
・PageBreak  −  さまざまなページにまたがってコンテンツを分割するのに使用されるマークアップ要素を表す。
・PageDescriptor  −  自動ページ付けされるレイアウトを作成するのに必要な情報を保管する、ＰａｇｅＤｅｓｃｒｉｐｔｏｒを実装する。
・Paragraph  −  段落のテキストをレンダリングするのに使用されるブロックレベル要素を実装する。レンダリング挙動は、ＨＴＭＬのｐａｒａｇｒａｐｈ要素のレンダリング挙動に類似する。
・ParagraphResult  −  Ｐａｒａｇｒａｐｈオブジェクトの計算されたレイアウトパラメータへのアクセスを提供する。
・Row  −  ＧｒｉｄＰａｎｅｌ要素またはＴａｂｌｅ要素内の行を定義する。
・RowCollection  −  ＲｏｗＣｏｌｌｅｃｔｉｏｎは、Ｒｏｗの順序付きコレクションを表す。
・RowGroup  −  ＴａｂｌｅまたはＧｒｉｄＰａｎｅｌ内の行のグループのプロパティデフォルトを指定する。
・Section  −  汎用コンテナ要素を実装する。レンダリング挙動は、ＨＴＭＬのｄｉｖ要素に類似する。
・SmallCaps  −  インラインＳｍａｌｌＣａｐｓ要素を実装する。ＳｍａｌｌＣａｐｓは、タイトルなどで、強調のために文字の小さい大文字版としてレンダリングされる、印刷形態である。
・Subscript  −  インラインＳｕｂｓｃｒｉｐｔ要素を表す。Ｓｕｂｓｃｒｉｐｔ文字は、他の文字の真下、左下、または右下に書き込まれる。
・Superscript  −  インラインＳｕｐｅｒｓｃｒｉｐｔ要素を表す。Ｓｕｐｅｒｓｃｒｉｐｔ文字は、通常は文字または数字であり、他の文字の真上、左上、または右上にレンダリングされる。
・Table  −  Ｔａｂｌｅは、マークアップ言語（たとえば「ＸＡＭＬ」）を使用して表形式で複雑なデータを表示するのに使用される。
・TextArray  −  テキストのアクセスおよび操作に関する基本ＡＰＩ。
・TextChangedEventArgs  −  ＴｅｘｔＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓは、ＴｅｘｔＡｒｒａｙが変更されるときに送られるイベント引数を定義する。
・TextElement −  ＴｅｘｔＥｌｅｍｅｎｔは、ＴｅｘｔＴｒｅｅのＴｅｘｔＲａｎｇｅ機能を提供する。これは、固定されたエンドポイントを有する不変の、連続的ＴｅｘｔＲａｎｇｅである。これは、ＣｏｎｔｅｎｔＥｌｅｍｅｎｔ、Ｉｎｐｕｔ、Ｆｏｃｕｓ、およびＥｖｅｎｔｉｎｇのサポートを提供する。ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔプロパティのサポートも提供する。
・TextNavigator  −  これによって、テキストコンテンツを列挙することができる。移動可能なＴｅｘｔＰｏｓｉｔｉｏｎを実装する。テキストランによって移動するか、テキスト内の既知のロケーションで位置決めすることができる。
・TextParagraphResult  −  フローテッドオブジェクトおよび図を含む、テキストに関する計算されたレイアウトパラメータへのアクセスを提供する。
・TextPosition  −  これは、ＴｅｘｔＡｒｒａｙ内のある位置を表すオブジェクトである。テキスト内の位置を表すコンパクトなオブジェクトによって、テキストが変更されるときに位置が自動的に維持される。比較動作は、同一のＴｅｘｔＡｒｒａｙ（同一のＣｏｎｔｅｘｔ）内の位置だけに適用可能である。ＴｅｘｔＰｏｓｉｔｉｏｎは、静的または移動可能とすることができる。ＩｓＣｈａｎｇｅａｂｌｅプロパティによって、位置の種類がわかる。
・TextRange  −  ＴｅｘｔＲａｎｇｅは、プロパティへの０または１以上のサブレンジの一般的関連付けを提供する抽象クラスである。サブレンジ操作は、派生クラスで定義される。
・TextRangeMovable  −  ＴｅｘｔＲａｎｇｅＭｏｖａｂｌｅは、移動可能なＴｅｘｔＲａｎｇｅの抽象クラスである。このクラスでは、ＴｅｘｔＵｎｉｔｓに基づく始点および終点への移動するための能力が追加される。
・TextTreeChangedEventArgs  −  ＴｅｘｔＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓでは、ＴｅｘｔＡｒｒａｙが変更されるときに送られるイベント引数が定義される。
・TextTreeDumper  −  ＴｒｅｅＤｕｍｐｅｒは、パッケージング問題のために公であるツリーテストクラスである。
・TextTreeNavigator  −  これは、ＴｅｘｔＴｒｅｅ内のある移動可能位置を表すオブジェクトである。これは、ＴｅｘｔＴｒｅｅ内のみでの使用されるＴｅｘｔＮａｖｉｇａｔｏｒの特定の実装である。
・TextTreePosition  −  これは、ＴｅｘｔＴｒｅｅ内のある不変の位置を表すオブジェクトである。これは、ＴｅｘｔＴｒｅｅ内でのみ使用されるＴｅｘｔＰｏｓｉｔｉｏｎの特定の実装である。
・TextTreeRange  −  ＴｅｘｔＴｒｅｅのＴｅｘｔＲａｎｇｅ機能を提供する。これは、移動可能なエンドポイントを有する、不変の、連続的なＴｅｘｔＲａｎｇｅである。
・TextTreeRangeContentEnumerator  −  ＴｅｘｔＴｒｅｅＲａｎｇｅの真下のオブジェクトの子に対する列挙子。
・TextUnit  −  テキストナビゲーションの拡張可能な単位。
・TextUnits  −  ＴｅｘｔＰｏｓｉｔｉｏｎおよびＴｅｘｔＲａｎｇｅに一般に使用されるテキスト単位。
・Typography  −  ＯｐｅｎＴｙｐｅタイポグラフィプロパティの豊富なセットへのアクセスを提供する。
・UIElementParagraphResult  −  完全にＵＩＥｌｅｍｅｎｔから構成される段落のＰａｒａｇｒａｐｈＲｅｓｕｌｔ。Ｆｌｏａｔｅｒｓ、Ｆｉｇｕｒｅｓ、および組み込みブロックレベルＵＩＥｌｅｍｅｎｔｓに使用される。
・Underline  −  ＩｎｌｉｎｅＥｌｅｍｅｎｔから派生したＵｎｄｅｒｌｉｎｅ要素を実装する。
【００５４】
下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｄｏｃｕｍｅｎｔｓ名前空間に関連するインターフェース例が含まれる。
・IDocumentContentHost  −  コンテンツホストの子が、コンテンツが変更されるときにホストに通知するようにするために、コンテンツホストでこのインターフェースを実装する。
・IDocumentFormatter  −  自動ページ繰りなどの文書機能のサポートを提供する要素上でこのインターフェースを実装する。
・ITextDocumentResult  −  文書の列情報を維持するためにこのインターフェースを実装する。
・ITextParagraphResult  −  テキスト段落に関するテキスト情報および位置情報を提供するために、このインターフェースを実装する。
【００５５】
下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｄｏｃｕｍｅｎｔｓ名前空間に関連する列挙例が含まれる。
・ElementEdge  −  これは、ＴｅｘｔＰｏｓｉｔｉｏｎが配置されるオブジェクトのエッジを識別する。
・FindAdvancedOptions  −  ＦｉｎｄＡｌｇｏｒｉｔｈｍ（検索初期化）クラスおよびＴｅｘｔＲａｎｇｅＭｏｖａｂｌｅ／ＴｅｘｔＳｅｌｅｃｔｉｏｎ（単純化された検索実行）クラスによって使用される高度な検索オプション。
・FindOptions  −  ＴｅｘｔＢｏｘ．Ｆｉｎｄメソッドによって使用される単純化された検索オプション。
・LogicalDirection  −  ＬｏｇｉｃａｌＤｉｒｅｃｔｉｏｎは、テキスト内の移動の論理方向を定義する。これは、コンテンツがＴｅｘｔＰｏｓｉｔｉｏｎに挿入されるときにＴｅｘｔＰｏｓｉｔｉｏｎを移動する先を決定するのに使用される。
・TextArrayRunType  −  これは、ＬｏｇｉｃａｌＤｉｒｅｔｉｏｎを考慮に入れて、ＴｅｘｔＰｏｓｉｔｉｏｎが配置される実行（run）を識別する。
・TextChangeOptions  −  ＣａｎＣｈａｎｇｅＴｅｘｔの可能なテキスト変更。
・TextMoveOptions  −  ナビゲーションを停止する条件を指定することによって、ＴｅｘｔＮａｖｉｇａｔｏｒの移動を制御する。
【００５６】
下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｄｏｃｕｍｅｎｔｓ名前空間に関連する委任例が含まれる。
・ObjectCloneDelegate  −  ＴｅｘｔＡｒｒａｙの一部がコピーまたは移動されるときにＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔのクローンまたはコピーを提供するコールバックメソッド。
・TextChangedEventHandler  −  ＴｅｘｔＣｈａｎｇｅｄＥｖｅｎｔＨａｎｄｌｅｒ委任は、コンテンツがＴｅｘｔＴｒｅｅに追加されるか除去されるたびに、ＴｅｘｔＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓを用いて呼び出される。
【００５７】
（Ｓｈａｐｅｓ名前空間）
Ｓｈａｐｅｓ名前空間３１４は、イメージおよびオブジェクトの作成に使用されるベクトルグラフィックス要素のコレクションである。ベクトルグラフィックス要素の使用によって、要素のサイズを簡単に変更して、特定のインターフェースまたはディスプレイ装置の要件に合わせることができるようになる。要素例に、楕円を描画する「Ｅｌｌｉｐｓｅ」要素、２つの点の間に直線を描く「Ｌｉｎｅ」要素、長方形を描く「Ｒｅｃｔａｎｇｌｅ」要素、および閉じた形状を形成する接続された一連の直線として多角形を描く「Ｐｏｌｙｇｏｎ」要素が含まれる。
【００５８】
下記のリストに、Ｓｙｓｔｅｍ．Windows．Ｓｈａｐｅｓ名前空間によって公開されるクラス例が含まれる。
・Ellipse  −  楕円を描く。
・Glyphs  −  「ＸＡＭＬ」などのマークアップ言語のグリフ形状を表す。グリフは、フォントを表すのに使用される。
・Line  −  ２つの点の間に直線を描く。
・Path  −  一連の接続された直線および曲線を描く。
・Polygon  −  多角形（閉じた形状を形成する接続された一連の線）を描く。
・Polyline  −  一連の接続された直線を描く。
・Rectangle  −  長方形を描く。
・Shape  −  楕円、多角形、および長方形などの形状要素の基本的機能性を提供する抽象クラス。
【００５９】
（Ｄａｔａ名前空間）
Ｄａｔａ名前空間３１６には、要素のプロパティをデータソース、データソースクラス、ならびにデータコレクションおよびビューのデータ固有実施形態にバインドするのに使用されるクラスおよびインターフェースが含まれる。これらのクラスおよびインターフェースは、データ入力の例外を処理するのにも使用され、さまざまなデータソース内の情報に基づいてユーザインターフェースのランタイム作成を可能にする。データは、テキスト形式で表示することができ、あるいは、金額がマイナスである場合にその金額を赤で表示するなど、ディスプレイのフォーマッティングを変更するのに使用することができる。クラス例に、ダイナミックプロパティユーザインターフェースとソースデータの間のバインディングを管理するバインディング宣言オブジェクトを表す「Ｂｉｎｄ」クラスと、ＸＭＬコンテンツノードへのデータバインディングのデータソースとして働く「ＸｍｌＤａｔａＳｏｕｒｃｅ」クラスが含まれる。
【００６０】
オブジェクト指向アプリケーションは、通常、クラスによってデータを表し、そのクラスは、１つのデータの値およびそのデータに対して実行できる動作の両方を定義する。用語「データアイテム」は、１つのそのようなオブジェクトを指す。アプリケーションは、個々のデータアイテムまたはデータアイテムのコレクションを扱うことができる。アプリケーションは、３つの手段すなわち（ａ）ファイルシステム、リモートサーバ、データベースなどの外部ソースからのデータを対応するインメモリデータアイテムに変換し、修正されたデータアイテムをこれらのソースによって期待される形に変換する手段と、（ｂ）データ中心ロジックおよびアプリケーション中心ロジックの組合せを使用してデータアイテムに作用する手段と、（ｃ）データアイテムによって実施されるデータをユーザインターフェースを介してユーザに提示する手段とにおいてデータアイテムを使用することができる。Ｄａｔａ名前空間３１６は、この第１および第３のタスクに関するサポートを提供する。
【００６１】
第１のタスクすなわち外部ソースからのデータの入手は、「データソース」オブジェクトによってサポートされる。データソースオブジェクトは、通常は、ページ規模またはアプリケーション規模のリソースとして定義され、データに対するゲートウェイとして働く。データソースによって、ＩＤａｔａＳｏｕｒｃｅインターフェースが実装され、このインターフェースでは、Ｄａｔａ名前空間内のクラスがデータを利用できる標準的な機構が定義される。特定のデータソースオブジェクトは、特定のソースに適当な機構を使用することによって、実際のデータを検索するロジックを実装する。一実施形態では、Ｄａｔａ名前空間に、下記の４つのデータソースクラスが含まれる。
【００６２】
１．ＸＭＬとして表されるデータを検索するＸｍｌＤａｔａＳｏｕｒｃｅ
２．Ｍｉｃｒｏｓｏｆｔ（登録商標）  ＳＱＬＳｅｒｖｅｒなどのＳＱＬデータベースからデータを検索するＳｑｌＤａｔａＳｏｕｒｃｅ
３．ＷｉｎＦＳ（登録商標）サービスからデータを検索するＷｉｎＦＳＤａｔａＳｏｕｒｃｅ
４．アプリケーションによって定義される任意のオブジェクトからデータを検索するＯｂｊｅｃｔＤａｔａＳｏｕｒｃｅ
アプリケーションは、専用ソースに合わせて調整されたそれ自体のデータソースクラスも定義することができる。
【００６３】
データソースクラスは、外部ソースからデータを検索し、バインディングクラスによる使用に適する１つまたは複数のデータアイテムに変換する責任を負う。データアイテムのコレクションが必要な場合には、アプリケーションは、Ａｒｒａｙ、ＡｒｒａｙＬｉｓｔ、Ｈａｓｈｔａｂｌｅなど．Ｎｅｔ  Ｆｒａｍｅｗｏｒｋからの標準コレクションクラスのいずれか、ＤａｔａｓｅｔなどＳｙｓｔｅｍ．Ｄａｔａ名前空間からのデータ中心コレクションクラスのいずれか、またはＡｒｒａｙＬｉｓｔＤａｔａＣｏｌｌｅｃｔｉｏｎなどＤａｔａ名前空間からのデータ中心コレクションクラスを使用することができる。後者のクラスは、変更通知をサポートする、すなわち、アプリケーションが、アイテムを追加すること、アイテムを除去すること、コレクションをソートすることなどによってコレクションを変更するときに、そのコレクションが、通知を送る。バインディングクラスは、これらの通知をｌｉｓｔｅｎし、ユーザインターフェースを自動的に更新して、変更を反映する。
【００６４】
データが、インメモリデータアイテムに変換されたならば、アプリケーションは、そのアイテムを使用して計算を実行することができ、計算の結果としてアイテムを修正することができる。これらのアクションは、データ中心動作（データアイテムクラスによって定義される）と、アプリケーション中心動作（アプリケーション自体によって定義される）との組合せを使用して実行される。アクションを、アプリケーションによって自動的にまたはユーザのアクションに応答して開始することができる。Ｄａｔａ名前空間からの特殊サポートまたは協力は不要であり、これによって、アプリケーション内の論理とプレゼンテーションの明確な分離がもたらされる。
【００６５】
第３のデータ関連タスクであるユーザインターフェースを介するデータの提示は、Ｄａｔａ名前空間の「バインディング」クラスによってサポートされる。これらのクラスによって、アプリケーションが、データアイテムプロパティ（ソース）とユーザインターフェースプロパティ（ターゲット）の間の対応（バインディング）を記述できるようになる。用語データバインディング（または単にバインディング）は、そのような対応の確立を指す。たとえば、アプリケーションは、ＴｅｘｔｂｏｘコントロールのＴｅｘｔプロパティをデータアイテムのＣｕｓｔｏｍｅｒＮａｍｅプロパティにデータバインドすることを選択することができる。それを行ったならば、コントロールが、カスタマの名前を自動的に表示し、アプリケーションがそのデータアイテムを変更するときに必ずディスプレイを更新し、ユーザがコントロールに新しい名前をタイプするときに必ずデータアイテムを更新する。
【００６６】
この種類の対応は、Ｂｉｎｄクラスを使用して記述され、Ｂｉｎｄｉｎｇクラスを使用して実装される。任意の数のＵＩプロパティが、同一の記述（Ｂｉｎｄ）を共有することができるが、各プロパティは、その特定のインスタンスの状態を保持するそれ自体の独自のＢｉｎｄｉｎｇを有する。この記述には、所望の対応に関する下記の情報が含まれる。
・Path  −  バインディングのソースとして使用されるデータアイテムプロパティの名前。これは、単純なプロパティ名、または「ＳｈｉｐｐｉｎｇＡｄｄｒｅｓｓ．Ｌｉｎｅ［２］」などのサブオブジェクトおよびインデクサを伴うより複雑な式（たとえば、ソースプロパティが複合型の値を有するとき）とすることができる。データソースがＸＭＬであるときには、パスは、ＸＰａｔｈ式になる。
・BindType  −  対応が、一方向、二方向、または１回であるかどうか。一方向バインディングでは、データアイテムに対する変更が、ユーザインターフェースプロパティの更新を引き起こし、データは、一方向すなわちソースからターゲットに流れる。二方向バインディングでは、データが両方向に流れ、一方向の挙動に加えて、ユーザインターフェースプロパティに対する変更が、データアイテムプロパティの更新を引き起こす。１度のバインディングでは、データアイテムプロパティが、ユーザインターフェースプロパティの初期化に使用されるが、変更は、どの方向にも伝搬されない。
・Source  −  ソースデータアイテムをどこで入手するかの記述。これは、データソースオブジェクトから、ある他のユーザインターフェース要素から、またはターゲット要素のＤａｔａＣｏｎｔｅｘｔプロパティの値からとすることができる。
・UpdateType  −  二方向バインディングでいつソースプロパティを更新するか：Ｉｍｍｅｄｉａｔｅ、ＯｎＬｏｓｔＦｏｃｕｓ、またはＥｘｐｌｉｃｉｔのいずれか。Ｉｍｍｅｄｉａｔｅ更新は、ユーザインターフェースプロパティが変更されるや否や行われる。ＯｎＬｏｓｔＦｏｃｕｓ更新は、ターゲット要素がキーボードフォーカスを失うまで遅延され、これは、すべてのキーストロークの後の更新という出費を避けるために、ＴｅｘｔＢｏｘコントロールに適当である。Ｅｘｐｌｉｃｉｔ更新は、アプリケーションがこれを明示的に呼び出すときに行われる。
・Transformer  −  ＩＤａｔａＴｒａｎｓｆｏｒｍｅｒインターフェースを実装するオブジェクト。これは、アプリケーションに、ユーザインターフェースで使用する前にデータアイテムの値を修正する手段を与える。修正は、単純な型変換（たとえば、ＢａｃｋｇｒｏｕｎｄプロパティのＢａｌａｎｃｅＯｗｅｄデータプロパティに対するバインディングで、アプリケーションが、マイナスの残高を赤の背景に、プラスの残高を緑の背景に変換することができる）、またはアプリケーション固有の変換（たとえば、ＴｅｘｔプロパティのＮｅｔＷｏｒｔｈデータプロパティに対するバインディングにおいて、アプリケーションが、ＮｅｔＷｏｒｔｈが１００万ドルを超える場合に「Ｒｉｃｈ」、ＮｅｔＷｏｒｔｈが１０万ドルと１００万ドルの間の場合に「Ｂｏｕｒｇｅｏｉｓ」、ＮｅｔＷｏｒｔｈが１０万ドル未満の場合に「Ｐｏｏｒ」を表示することができる）とすることができる。Ｔｒａｎｓｆｏｒｍｅｒは、データからの個別のプレゼンテーションを助ける、単純だが強力なツールである。
【００６７】
１度だけのバインディングを除く、すべてのバインディングは、対応する変更をユーザインターフェースに対して行えるようにするために、データプロパティが変化するときに通知されることに頼る。バインディングクラスは、要求された通知を実装する１つの手段として、ＩＰｒｏｐｅｒｔｙＣｈａｎｇｅインターフェース（Ｓｙｓｔｅｍ．ＣｏｍｐｏｎｅｎｔＭｏｄｅｌ名前空間から）を認識する。
【００６８】
以下に、Ｓｙｓｔｅｍ．Windows．Ｄａｔａ名前空間によって公開されるメンバを示す。
【００６９】
＜クラス＞
ArrayListCollectionView  −  ＡｒｒａｙＬｉｓｔＤａｔａＣｏｌｌｅｃｔｉｏｎコレクションクラスのコレクションビューサポートをカプセル化する。このクラスを継承することはできない。
ArrayListDataCollection  −  基礎になるコレクション−ビューインターフェースを有するアレイリストデータコレクションの組込み実装を提供する。アイテムが追加されるとき、アイテムが除去されるとき、またはコレクション全体がリフレッシュされるときに通知を提供するＩＣｏｌｌｅｃｔｉｏｎＣｈａｎｇｅも実装する。
Bind  −  ダイナミックプロパティユーザインターフェース（ＵＩ）とソースデータの間のバインディングを管理するのに使用される、バインド宣言オブジェクトを表す。
Binding  −  バインディングの単一のランタイムインスタンスへのアクセスを提供する。このクラスを継承することはできない。
BindingListCollectionView  −  Ｍｉｃｒｏｓｏｆｔ（登録商標）ＡｃｔｉｖｅＸ（登録商標）Ｄａｔａ  Ｏｂｊｅｃｔｓ（ＡＤＯ）データビューに使用されるコレクションビュークラス。
CollectionContainer  −  このクラスのオブジェクトは、既存のコレクション構造体、たとえばＡｒｒａｙＬｉｓｔＤａｔａＣｏｌｌｅｃｔｉｏｎまたは他のＤａｔａＳｅｔをＩｔｅｍＣｏｌｌｅｃｔｉｏｎ内に保持する。
ContextAffinityCollectionView  −  コンテキストアフィニティに関する検査を含むコレクションビューを実装する。
DataContextObjectRef  −  バインディング用のデータコンテキストとして使用されるオブジェクトに対するオブジェクト参照をサポートする。このクラスを継承することはできない。
DataSourceObjectRef  −  データソースに対するオブジェクト参照をサポートする。このクラスを継承することはできない。
DataTransferEventArgs  −  データ転送イベントの引数をカプセル化する。イベントは、特に、ＤａｔａＴｒａｎｓｆｅｒＥｖｅｎｔＨａｎｄｌｅｒ委任に基づいて指定されたハンドラによって処理されるルーティングされるイベントである。
ElementObjectRef  −  要素に対するオブジェクト参照を表し、このオブジェクトは、その要素ＩＤによって指定される。このクラスを継承することはできない。
ExplicitObjectRef  −  要素に対する明示的なオブジェクト参照を表す。このクラスを継承することはできない。
ListCollectionView  −  ＩＬｉｓｔに基づくコレクションのコレクションビューを実装する。
ObjectDataSource  −  データバインディング用のデータソースとして働く。バインド可能なデータアイテムを、共通言語ランタイム型として指定することができる。
ObjectRef  −  ＥｌｅｍｅｎｔＯｂｊｅｃｔＲｅｆ、ＥｘｐｌｉｃｉｔＯｂｊｅｃｔＲｅｆ、およびＴｙｐｅＯｂｊｅｃｔＲｅｆの親クラスとして使用される抽象クラス。
ParameterCollection  −  このクラスのオブジェクトは、ＳｑｌＤａｔａＳｏｕｒｃｅに対する名前付きパラメータのコレクション（それに対応する値を伴う）を保持する。
QueryCommand  −  このクラスは、データベースにサブミットされる単一のｓｅｌｅｃｔステートメントを表す。
RefreshCompletedEventArgs  −  ＯｂｊｅｃｔＤａｔａＳｏｕｒｃｅのＲｅｆｒｅｓｈＣｏｍｐｌｅｔｅｄイベントまたはＸｍｌＤａｔａＳｏｕｒｃｅのＲｅｆｒｅｓｈＣｏｍｐｌｅｔｅｄイベントのいずれかで渡される引数をカプセル化する。
SqlCommandList  −  ＳＱＬコマンドと、書込に使用されなければならない表の名前のリスト。
SqlDataSource  −  ＳｑｌＤａｔａＳｏｕｒｃｅは、データバインディングに使用されるＭｉｃｒｏｓｏｆｔ（登録商標）  ＳＱＬ  Ｓｅｒｖｅｒからデータを得る。
TransformerSource  −  現在のアプリケーションの分離コード（code-behind）として定義されるトランスフォーマクラスへのリソース参照を可能にする。
TypeObjectRef  −  型によるオブジェクト参照をサポートする。このクラスを継承することはできない。
WinFSDataSource  −  ＷｉｎＦＳＤａｔａＳｏｕｒｃｅは、ＷｉｎＦＳ（登録商標）に保管されるデータのＡｖａｌｏｎ（登録商標）アプリケーションへのデータバインディングを容易にする。
XmlDataNamespaceManager  −  ＸＰａｔｈ照会をバインドするＸＭＬデータにおいて使用される名前空間を宣言するのに使用されるＸｍｌＤａｔａＮａｍｅｓｐａｃｅＭａｎａｇｅｒクラス。
XmlDataSource  −  拡張マークアップ言語（ＸＭＬ）コンテンツノードへのデータバインディングのデータソースとして働く。
XmlNamespace  −  ＸＭＬデータソース内の個々の名前空間を宣言する。
【００７０】
＜インターフェース＞
IContains  −  コレクションビューのフィルタリング基準を宣言するクラスを作成するのに使用される。
IDataSource  −  データソースオブジェクトの作成をサポートする。データソースオブジェクトは、データバインディング用のデータの共通の表現に使用される。
IDataTransformer  −  束縛データのクライアント側変換を可能にするメソッドを提供する。
【００７１】
＜列挙＞
BindFlags  −  バインディングの特殊プロパティを記述する。「Ｌｏｎｇｈｏｒｎ」マークアップ言語（コードネーム「ＸＡＭＬ」）使用法のＵｓｉｎｇ  Ｂｉｎｄ  Ｄｅｃｌａｒａｔｉｏｎｓを参照されたい。バインディングタイプ（一方向、二方向など）の指定に使用される列挙については、ＢｉｎｄＴｙｐｅを参照されたい。
BindStatus  −  バインディングの状況。
BindType  −  データ値の変化が、バインディングのソースプロパティおよびターゲットプロパティの間でどのように転送されるかを記述する。
SqlDataSourceMode  −  ＳｑｌＤａｔａＳｏｕｒｃｅが有することができる可能なモードの列挙。このモードによって、アプリケーションがＤａｔａプロパティから値を検索するときに返されるデータの種類が決定される。
UpdateType  −  データソースに対する更新（ターゲットからソースへのデータ転送）がバインディングにおいて行わなければならないときを指定する。この値を設定することは、バインディングのＢｉｎｄＴｙｐｅにＴｗｏＷａｙが設定されている（またはデフォルトのままにされている）場合に限って適切である。
【００７２】
＜委任＞
DataChangedEventHandler  −  ＩＤａｔａＳｏｕｒｃｅを実装するデータソースによって引き起こされるＤａｔａＣｈａｎｇｅｄイベントを処理するメソッドを表す。
DataTransferEventHandler  −  Ｂｉｎｄｉｎｇによって引き起こされるデータ転送イベントを処理するメソッドを表す。
RefreshCompletedEventHandler  −  ＯｂｊｅｃｔＤａｔａＳｏｕｒｃｅ．ＲｅｆｒｅｓｈＣｏｍｐｌｅｔｅｄイベントおよびＸｍｌＤａｔａＳｏｕｒｃｅ．ＲｅｆｒｅｓｈＣｏｍｐｌｅｔｅｄイベントを処理するメソッドを表す。
【００７３】
（Ｍｅｄｉａ名前空間）
Ｍｅｄｉａ名前空間３１８は、さまざまな媒体クラスを提供する。アプリケーション設計者ならびにコンポーネント開発者は、このクラスを使用して、さまざまなプレゼンテーション機能性を開発することができる。Ｍｅｄｉａ名前空間３１８のクラス例に、あるイメージングエフェクト（たとえば、ブラーおよびグレイスケール）を可能にする「ＩｍａｇｅＥｆｆｅｃｔ」クラス、および単色、グラディエント、イメージ、ビデオ、および類似物を使用する領域の塗潰しの機構を提供する「Ｂｒｕｓｈ」クラスが含まれる。
【００７４】
Ｍｅｄｉａ名前空間３１８には、開発者がプロパティをアニメーションにし、アニメーションのセットをタイムラインのセットと調整することを可能にするサービスを含むサブ名前空間Ｓｙｓｔｅｍ．Windows．Ｍｅｄｉａ．Ａｎｉｍａｔｉｏｎが含まれる。アニメーションは、期間にわたって値を変更するオブジェクトである。アニメーションエフェクトに、ディスプレイ上のオブジェクトの移動、およびオブジェクトのサイズ、形状、または色の変更が含まれる。複数のアニメーションクラスが、さまざまなアニメーションエフェクトを実装するために提供される。エフェクトは、アニメーションを要素のプロパティ値に関連付けることによって達成される。たとえば、ビューにフェードインし、フェードアウトする長方形を作成するために、１つまたは複数のアニメーションが、長方形の不透明度プロパティに関連付けられる。
【００７５】
Ｍｅｄｉａ名前空間３１８には、さまざまなテキストサービスを提供するサブ名前空間Ｓｙｓｔｅｍ．Windows．Ｍｅｄｉａ．ＴｅｘｔＦｏｒｍａｔｔｉｎｇも含まれる。たとえば、「ＴｅｘｔＦｏｒｍａｔｔｅｒ」テキストエンジンは、テキスト行を改行し、ディスプレイに提示されるテキストをフォーマットするサービスを提供する。「ＴｅｘｔＦｏｒｍａｔｔｅｒ」は、異なるテキスト文字フォーマットおよび段落スタイルを処理でき、国際テキストレイアウトを処理することができる。
【００７６】
以下に、Ｓｙｓｔｅｍ．Windows．Ｍｅｄｉａ名前空間によって公開されるメンバ例をリストする。
【００７７】
＜クラス＞
ArcSegment  −  ２つの点の間の楕円の弧を表す。
AudioData  −  時間ノードの状態に従ってオーディオファイルを再生できるようにする。
AudioDataConverter  −  ＡｕｄｉｏＤａｔａＣｏｎｖｅｒｔｅｒ。
BezierSegment  −  ２つの点の間に描かれる３次ベジエ曲線を表す。
Brush  −  単色（ＳｏｌｉｄＣｏｌｏｒＢｒｕｓｈ）、グラディエント（ＬｉｎｅａｒＧｒａｄｉｅｎｔＢｒｕｓｈ、ＲａｄｉａｌＧｒａｄｉｅｎｔＢｒｕｓｈ）、イメージ（ＩｍａｇｅＢｒｕｓｈ）、ビデオなどを使用して領域を塗り潰す一般的な手段を提供する。
BrushConverter  −  Ｂｒｕｓｈオブジェクトと別のオブジェクト型の間の変換に使用される。
Brushes  −  事前定義の単色のセットを実装する。
CloseSegment  −  ＰａｔｈＦｉｇｕｒｅオブジェクトの最後の点をその開始点に接続する線を表す。
CodecFilter  −  コーデックを列挙するフィルタ。プロパティに一致するコーデックだけを列挙する。
CodecInfo  −  特定のコーデックおよびそのコーデックを作成するファクトリに関する情報。これは、コーデック列挙子から返される。
ColorCollection  −
ColorCollectionConverter  −  ＣｏｌｏｒＣｏｌｌｅｃｔｉｏｎＣｏｎｖｅｒｔｅｒ  −  ＣｏｌｏｒＣｏｌｌｅｃｔｉｏｎインスタンスに対する、およびＣｏｌｏｒＣｏｌｌｅｃｔｉｏｎインスタンスからのインスタンス変換のコンバータクラス。
ColorContext  −
ColorConverter  −  Ｃｏｌｏｒオブジェクトへの変換と、別のオブジェクト型からの変換とに使用される。
Colors  −  事前に定義された色のセットを実装する。
ContainerVisual  −  Ｖｉｓｕａｌオブジェクトのコレクションを管理する。
DashArrays  −  ＤａｓｈＡｒｒａｙｓ  −  ＤａｓｈＡｒｒａｙｓクラスは、静的であり、周知のダッシュスタイルのためのプロパティが含まれる。
DoubleCollection  −
DoubleCollectionConverter  −  ＤｏｕｂｌｅＣｏｌｌｅｃｔｉｏｎＣｏｎｖｅｒｔｅｒ  −  ＤｏｕｂｌｅＣｏｌｌｅｃｔｉｏｎインスタンスに対する、およびＤｏｕｂｌｅＣｏｌｌｅｃｔｉｏｎインスタンスからのインスタンス変換のコンバータクラス。
Drawing  −  Ｄｒａｗｉｎｇは、２次元ドローイングプリミティブのリストである。
DrawingBrush  −  ＤｒａｗｉｎｇＢｒｕｓｈ  −  このＴｉｌｅＢｒｕｓｈは、その内容をＤｒａｗｉｎｇとして定義する。
DrawingContext  −  ドローイングコンテキスト。
DrawingVisual  −  描画されるグラフィカルコンテンツを含むビジュアル。
EllipseGeometry  −  円または楕円の幾何形状を表す。
FontFamily  −  フォントファミリ。
FormattedText  −  ＦｏｒｍａｔｔｅｄＴｅｘｔクラスは、Ａｖａｌｏｎ（登録商標）  ＭＩＬイージーテキストＡＰＩの一部であり、ある単純なテキストをＭＩＬビジュアルに追加することを必要とするプログラマをターゲットとする。
Geometry  −  ＥｌｌｉｐｓｅＧｅｏｍｅｔｒｙ、ＲｅｃｔａｎｇｌｅＧｅｏｍｅｔｒｙ、およびＰａｔｈＧｅｏｍｅｔｒｙなどのすべてのＧｅｏｍｅｔｒｙクラスの基本的な機能性を提供する抽象クラス。オブジェクトのＧｅｏｍｅｔｒｙクラスは、２次元グラフィックデータのクリッピング、ヒットテスト、およびレンダリングに使用することができる。
GeometryCollection  −  Ｇｅｏｍｅｔｒｙオブジェクトのコレクションを表す。
GetPageEventArgs  −  ＧｅｔＰａｇｅＥｖｅｎｔＡｒｇｓクラス。
GlyphRun  −  グリフランクラス。
GlyphTypeface  −  物理フォントフェースは、ディスク上のフォントファイルに対応する。
GradientBrush  −  グラディエント塗潰しを記述する抽象クラス。ＧｒａｄｉｅｎｔＢｒｕｓｈから派生したクラスは、グラディエントストップを解釈する異なる手段を記述する。
GradientStop  −  グラディエントの推移ポイントのロケーションおよび色を記述する。
GradientStopCollection  −  ＧｒａｄｉｅｎｔＳｔｏｐグラディエントストップのコレクションを表す。
HitTestParameters  −  これは、ヒットテストパスのパラメータを共にパックする基本クラスである。
HitTestResult  −  この基本クラスは、ヒットテストパス中にヒットしたビジュアルを返す。
HwndInterop  −  ＨｗｎｄＩｎｔｅｒｏｐ。
HwndVisual  −
HyphenationCandidate  −  １つのＨｙｐｈｅｎａｔｉｏｎ候補を記述する。
ICCProfile  −
ImageBrush  −  イメージによって領域を塗り潰す。このクラスは、他のオブジェクトの塗潰し、または背景としてイメージを指定するのに使用することができる。
ImageCodecCollection  −  システムのコーデック（実際にはＣｏｄｅｃＩｎｆｏｓ）のコレクション。
ImageCodecEnumerator  −  イメージフレームの列挙子。
ImageColorTransform  −  ＩｍａｇｅＣｏｌｏｒＴｒａｎｓｆｏｒｍは、イメージングパイプラインでのカラー管理を実行する。
ImageData  −  イメージおよび関連データを含む。
ImageDataBuilder  −  このオブジェクトは、ＩｍａｇｅＤａｔａオブジェクトの構築に使用される。
ImageDecoder  −  ＩｍａｇｅＤｅｃｏｄｅｒは、イメージフレームのコンテナである。各イメージフレームは、ＩｍａｇｅＳｏｕｒｃｅである。ＩｍａｇｅＳｏｕｒｃｅと異なって、ＩｍａｇｅＤｅｃｏｄｅｒは、不変オブジェクトでは「なく」、異なるイメージストリームに再初期化することができる。しかし、ＩｍａｇｅＤｅｃｏｄｅｒが返すＩｍａｇｅＳｏｕｒｃｅｓ（フレーム）は、不変でなければならない。
ImageDecoderBmp  −  組込みＭｉｃｒｏｓｏｆｔ（登録商標）  Ｂｍｐ（Ｂｉｔｍａｐ）デコーダ。
ImageDecoderGif  −  組込みＭｉｃｒｏｓｏｆｔ（登録商標）  ＧＩＦデコーダ。
ImageDecoderIcon  −  組込みＭｉｃｒｏｓｏｆｔ（登録商標）アイコンデコーダ。
ImageDecoderInternal  −  内部使用専用。
ImageDecoderJpeg  −  組込みＭｉｃｒｏｓｏｆｔ（登録商標）  Ｊｐｅｇデコーダ。
ImageDecoderPng  −  組込みＭｉｃｒｏｓｏｆｔ（登録商標）  ＰＮＧデコーダ。
ImageDecoderTiff  −  組込みＭｉｃｒｏｓｏｆｔ（登録商標）  Ｔｉｆｆデコーダ。
ImageEffect  −  ＩｍａｇｅＥｆｆｅｃｔクラスは、すべてのイメージングエフェクト（ブラー、グレイスケールなど）の基本クラスである。エフェクトが入力を有しないことが可能であるが、エフェクトは、少なくとも１つの出力を有しなければならない。デフォルト実装の状況は、これを前提とする。派生エフェクトが、出力だけで動作する場合には、必ず少なくとも１つの出力があるようにすること。
ImageEffectBlur  −  ガウシアンブラーエフェクト。これは、単一入力単一出力のエフェクトである。警告：このエフェクトがスケーリングされ（すなわち、Ｉｎｐｕｔ．ＳｃａｌｅＸまたはＩｎｐｕｔ．ＳｃａｌｅＹが１でない）、Ｅｘｐａｎｄが真である場合に、出力寸法が、ＰｉｘｅｌＷｉｄｔｈおよびＰｉｘｅｌＨｅｉｇｈｔより大きいか小さくなる可能性がある。問題を避けるために、コピーに供給されるピクセルバッファを調整すること。
ImageEffectFlipRotate  −  このエフェクトは、ＸまたはＹでイメージを反転し、９０°の倍数だけ回転することができる。
ImageEffectGammaCorrect  −  このエフェクトは、イメージのガンマを変更する。
ImageEffectGlow  −  グローエフェクトを実行する。これは、単一入力単一出力のエフェクトである。
ImageEffectGrayscale  −  イメージをグレイスケールに変換する。これは、単一入力単一出力のエフェクトである。
ImageEffectNegate  −  イメージをネゲートする。これは、単一入力単一出力のエフェクトである。
ImageEffectSharpen  −  アンシャープマスク。これは、単一入力単一出力のエフェクトである。
ImageEffectSource  −  ＩｍａｇｅＥｆｆｅｃｔＳｏｕｒｃｅクラス実装。
ImageEffectSourceCollection  −  イメージエフェクト出力のコレクション。
ImageEffectTint  −  明度コンストラクタ。これは、単一入力単一出力のエフェクトである。
ImageEncoder  −  ＩｍａｇｅＥｎｃｏｄｅｒは、関連するサムネイルおよびメタデータと共にフレーム（ＩｍａｇｅＳｏｕｒｃｅの）のセットを集め、これらを指定されたストリームに保管する。コーデックがサポートする場合、フレーム固有のサムネイルおよびメタデータのほかに、イメージ全体の（グローバル）サムネイルおよびメタデータを設けることができる。
ImageEncoderBmp  −  Ｂｍｐファイル用の組込みエンコーダ。
ImageEncoderGif  −  Ｇｉｆファイル用の組込みエンコーダ。
ImageEncoderInternal  −  ＩｍａｇｅＥｎｃｏｄｅｒＩｎｔｅｒｎａｌは、関連するサムネイルおよびメタデータと共にフレーム（ＩｍａｇｅＳｏｕｒｃｅの）のセットを集め、これらを指定されたストリームに保管する。コーデックがサポートする場合、フレーム固有のサムネイルおよびメタデータのほかに、イメージ全体の（グローバル）サムネイルおよびメタデータを設けることができる。
ImageEncoderJpeg  −  Ｊｐｅｇファイル用の組込みエンコーダ。
ImageEncoderPng  −  Ｐｎｇファイル用の組込みエンコーダ。
ImageEncoderTiff  −  Ｔｉｆｆファイル用の組込みエンコーダ。
ImageExchangeMetaData  −  ＩｍａｇｅＥｘｃｈａｎｇｅＭｅｔａＤａｔａ。このクラスは、Ｅｘｉｆスタイルメタデータを有するＩｍａｇｅＦｉｌｅｓのメタデータのアクセスおよび設定に使用される。ＭｅｔａＤａｔａは、Ｋｅｙ／Ｖａｌｕｅ対として保管され、Ｋｅｙｓは、必ずしも一意でない。このクラスは、イメージ内のすべてのメタデータへの一般的アクセスを提供し、ある周知のプロパティのＣＬＲプロパティを公開する。
ImageExchangeProperty  −  ＩｍａｇｅＥｘｃｈａｎｇｅＰｒｏｐｅｒｔｙ  −  ＩｍａｇｅＥｘｃｈａｎｇｅＩＤとそのプロパティの値であるオブジェクトとのタプル。
ImageMetaData  −  ＩｍａｇｅＭｅｔａＤａｔａ。このクラスは、Ｉｍａｇｅのメタデータのアクセスおよび設定に使用される。このクラスは、ＣｏｄｅｃＭｅｔａＤａｔａプロパティも公開し、ＣｏｄｅｃＭｅｔａＤａｔａプロパティは、このイメージのメタデータにアクセスするコーデック固有の手段を公開する。
ImagePalette  −  ＩｍａｇｅＰａｌｅｔｔｅクラス。
ImageSizeOptions  −  イメージのサイズ設定オプション。結果のイメージは、これらのオプションに基づいてスケーリングされる。
ImageSource  −  デコーダおよびエフェクトを含む、イメージングパイプラインのメソッド、プロパティ、およびイベントを定義する。
ImageSourceCollection  −  システムのコーデック（実際にはＩｍａｇｅＳｏｕｒｃｅの）のコレクション。
ImageSourceConverter  −  ＩｍａｇｅＳｏｕｒｃｅＣｏｎｖｅｒｔｅｒ。
IntegerCollection  −
IntegerCollectionConverter  −  ＩｎｔｅｇｅｒＣｏｌｌｅｃｔｉｏｎＣｏｎｖｅｒｔｅｒ  −  ＩｎｔｅｇｅｒＣｏｌｌｅｃｔｉｏｎインスタンスに対する、およびＩｎｔｅｇｅｒＣｏｌｌｅｃｔｉｏｎインスタンスからの他の型のインスタンス変換のコンバータクラス。
LinearGradientBrush  −  領域の塗潰しに使用されるリニアグラディエントを定義する。
LineGeometry  −  線のジオメトリを表す。
LineSegment  −  ２つの点の間の線を表す。ＬｉｎｅＧｅｏｍｅｔｒｙオブジェクトと異なって、ＬｉｎｅＳｅｇｍｅｎｔは、ＰａｔｈＦｉｇｕｒｅに含まれなければならない。
MatrixTransform  −  ２次元平面内のオブジェクトまたは座標系を操作するのに使用される任意のアフィン行列変換を作成する。
MediaData  −  ＭｅｄｉａＤａｔａ。オーディオ／ビデオコンテンツの再生に使用される。
MediaSystem  −  ＭｅｄｉａＳｙｓｔｅｍクラスは、媒体プレイヤを制御する。
NineGridBrush  −  領域全体をイメージで塗り潰す。イメージの諸部分を、定義されたマージン内におさまるように引き延ばす。
PathFigure  −  ジオメトリのサブセクションすなわち、単一の接続された一連の２次元ジオメトリセグメントを表す。
PathFigureCollection  −
PathFigureConverter  −  ＰａｔｈＦｉｇｕｒｅＣｏｎｖｅｒｔｅｒ。
PathGeometry  −  円弧、曲線、楕円、直線、および長方形からなるものとすることができる複雑な形状を表す。
PathGeometryConverter  −  ＰａｔｈＧｅｏｍｅｔｒｙＣｏｎｖｅｒｔｅｒ。
PathSegment  −  ＰａｔｈＦｉｇｕｒｅオブジェクトのセグメントを表す抽象クラス。ＡｒｃＳｅｇｍｅｎｔ、ＢｅｚｉｅｒＳｅｇｍｅｎｔ、およびＬｉｎｅＳｅｇｍｅｎｔなどのＰａｔｈＳｅｇｍｅｎｔから派生するクラスは、特定の型のジオメトリセグメントを表す。
PathSegmentCollection  −  ＰａｔｈＳｅｇｍｅｎｔオブジェクトのリストを表す。
PathSegmentConverter  −  ＰａｔｈＳｅｇｍｅｎｔＣｏｎｖｅｒｔｅｒ。
Pen  −  形状の輪郭を描く方法を記述する。
PixelFormats  −  ＰｉｘｅｌＦｏｒｍａｔｓ  −  サポートされるピクセルフォーマットのコレクション。
PointCollection  −
PointCollectionConverter  −  ＰｏｉｎｔＣｏｌｌｅｃｔｉｏｎＣｏｎｖｅｒｔｅｒ  −  ＰｏｉｎｔＣｏｌｌｅｃｔｉｏｎインスタンスに対する、およびＰｏｉｎｔＣｏｌｌｅｃｔｉｏｎインスタンスからの他の型のインスタンス変換のコンバータクラス。
PointHitTestParameters  −  これは、点とのヒットテストのパラメータを指定するクラスである。
PointHitTestResult  −  このクラスは、点と、ヒットテストパス中のビジュアルヒントを返す。
PolyBezierSegment  −  ＰｏｌｙＢｅｚｉｅｒＳｅｇｍｅｎｔ。
PolyLineSegment  −  ＰｏｌｙＬｉｎｅＳｅｇｍｅｎｔ。
PolyQuadraticBezierSegment  −  ＰｏｌｙＱｕａｄｒａｔｉｃＢｅｚｉｅｒＳｅｇｍｅｎｔ。
PrintContext  −  ＰｒｉｎｔＣｏｎｔｅｘｔは、プリンタ相互作用の状態およびコンテキストを保持する。
QuadraticBezierSegment  −  ＱｕａｄｒａｔｉｃＢｅｚｉｅｒＳｅｇｍｅｎｔ。
RadialGradientBrush  −  オブジェクトを塗り潰すのに使用されるラジアルグラディエントを定義する。焦点が、グラディエントの開始を定義し、円が、グラディエントのエンドポイントを定義する。
RectangleGeometry  −  長方形のジオメトリを表す。
RetainedVisual  −  ＲｅｔａｉｎｅｄＶｉｓｕａｌ。
RotateTransform  −  ２次元ｘ−ｙ平面内の指定された点の回りでオブジェクトを回転するのに使用される。
ScaleTransform  −  定義された中心点から始めて、２次元ｘ−ｙ平面内でオブジェクトをスケーリングする。スケールファクタは、この中心点からｘ方向およびｙ方向で定義される。
SkewTransform  −  ２次元スキューを表す。
SolidColorBrush  −  単色の均一な塗潰しを表す。
StartSegment  −  ＳｔａｒｔＳｅｇｍｅｎｔ。
SubLineCollection  −  サブラインのコレクション。サブラインは、型ＧｌｙｐｈＲｕｎ、ＬｉｎｅＯｖｅｒ、Ｉｎｌｉｎｅオブジェクトのうちの１つのオブジェクトとすることができる。
TileBrush  −  １つまたは複数の「タイル」で領域を塗り潰す方法を記述する抽象クラス。派生クラスでは、使用できる異なる型のタイルが定義される。たとえば、ＩｍａｇｅＢｒｕｓｈでは、領域をイメージで塗り潰すことができる。
Transform  −  回転（ＲｏｔａｔｅＴｒａｎｓｆｏｒｍ）、スケーリング（ＳｃａｌｅＴｒａｎｓｆｏｒｍ）、スキュー（ＳｋｅｗＴｒａｎｓｆｏｒｍ）、および並進（ＴｒａｎｓｌａｔｅＴｒａｎｓｆｏｒｍ）を含む、２次元平面内のすべての型の変換の親クラスとして使用される抽象クラス。これがクラスであり、アニメーションセマンティックスおよび列挙セマンティックスの両方をサポートするので、このクラス階層は、Ｍａｔｒｉｘ構造体とは異なる。
TransformCollection  −  Ｔｒａｎｓｆｏｒｍオブジェクトのリストを作成し、操作するのに使用される。
TransformConverter  −  別のオブジェクト型への、および別のオブジェクト型からのＴｒａｎｓｆｏｒｍオブジェクトの変換に使用される。
TranslateTransform  −  オブジェクトを２次元ｘ−ｙ平面内で並進させる。
Typeface  −  Ｔｙｐｅｆａｃｅは、ファミリ、ウェイト、スタイル、およびストレッチの組合せである。
VectorCollection  −
VectorCollectionConverter  −  ＶｅｃｔｏｒＣｏｌｌｅｃｔｉｏｎＣｏｎｖｅｒｔｅｒ  −  ＶｅｃｔｏｒＣｏｌｌｅｃｔｉｏｎインスタンスに対する、およびＶｅｃｔｏｒＣｏｌｌｅｃｔｉｏｎインスタンスからの他の型のインスタンス変換のコンバータクラス。
VideoData  −  時間ノードの状態に従ってビデオファイルを再生できるようにする。
VideoDataConverter  −  ＶｉｄｅｏＤａｔａＣｏｎｖｅｒｔｅｒ。
Visual  −  すべてのＶｉｓｕａｌ型の基本クラス。ヒットテスト、座標変換、および境界ボックス計算を含むすべてのＶｉｓｕａｌに共通するサービスおよびプロパティを提供する。
VisualCollection  −  Ｖｉｓｕａｌオブジェクトの順序付きコレクション。
VisualManager  −  ビジュアルオブジェクトのツリーを、レンダリングターゲット（通常はウインドウ）にレンダリングする。
【００７８】
＜インターフェース＞
IHyphenate  −  ＩＨｙｐｈｅｎａｔｅは、ハイフネーションサービスプロバイダのインターフェースである。
IRetainedRender  −  このインターフェースが、ＲｅｔａｉｎｅｄＶｉｓｕａｌから派生したクラスにおいて実装される場合には、ＲｅｔａｉｎｅｄＶｉｓｕａｌが、検証モードで動作する、すなわち、グラフィックスサブシステムが、レイジーな仕方でＯｎＲｅｎｄｅｒを呼び出す（たとえば、Ｖｉｓｕａｌがスクリーンに初めて表示される場合）。システムがいつでもＯｎＲｅｎｄｅｒを呼び出せることに留意されたい。
IVisual  −  このインターフェースでは、Ｖｉｓｕａｌオブジェクトから使用可能な共通のメソッドおよびサービスが定義される。
【００７９】
＜列挙＞
BrushMappingMode  −  ＢｒｕｓｈＭａｐｐｉｎｇＭｏｄｅ  −  ある値を絶対値ローカル座標と考えなければならないか、境界ボックスのサイズの倍数と考えなければならないかを記述する列挙。
ChannelDescription  −  ピクセルデータの各チャネルの順序を記述する。
ColorInterpolationMode  −  ＣｏｌｏｒＩｎｔｅｒｐｏｌａｔｉｏｎＭｏｄｅ  −  グラディエント内の色を保管する方法を決定する。
CombineMode  −  ２つの幾何学的領域を組み合わせるために使用されるメソッドを指定する。
FillRule  −
GradientSpreadMethod  −  指定されたグラディエントベクトルまたは空間の外でグラディエントを描画する方法を指定する。
HitTestFilterBehavior  −  ヒットテスト中のビジュアルのフィルタリングの挙動。
HitTestResultBehavior  −  列挙が、肯定のヒットがヒットテスト中に発生するときの挙動を制御する。
HorizontalAlignment  −  ＨｏｒｉｚｏｎｔａｌＡｌｉｇｎｍｅｎｔ列挙型は、コンテナ内でコンテンツを水平に位置決めする方法を記述するのに使用される。
HyphenationRule  −  サポートされるハイフネーションルール。
ImagePaletteType  −  事前定義のパレット型。
MediaState  −  媒体の現在の状態を保持する。
PenDashCap  −  ＰｅｎＤａｓｈＣａｐ  −  破線の線の終端の描画を記述する列挙。
PenLineCap  −  線またはセグメントの終端の形状を記述する。
PenLineJoin  −  ＰｅｎＬｉｎｅＪｏｉｎ  −  線の角の描画を記述する列挙。
Rotation  −  適用される回転。９０°の倍数だけがサポートされる。
StandardColorSpace  −
Stretch  −  Ｓｔｒｅｔｃｈ  −  宛先長方形におさまるようにソース長方形を引き延ばす方法を記述する列挙。
StyleSimulations  −  フォントスタイルシミュレーション。
TiffCompressOptions  −  ＴＩＦＦイメージの保存に関する圧縮オプション。
TileMode  −  ＴｉｌｅＭｏｄｅ  −  線の終端の描画を記述する列挙。
VerticalAlignment  −  ＶｅｒｔｉｃａｌＡｌｉｇｎｍｅｎｔ列挙は、コンテナ内でコンテンツを垂直に位置決めする方法を記述するのに使用される。
【００８０】
＜構造体＞
CharacterIndexer  −  このクラスは、文字の名前付きインデックスを実装するヘルパである。
Color  −  アルファ、赤、緑、および青のチャネルに関して色を表す。
GlyphIndexer  −  このクラスは、グリフメトリックスの名前付きインデックスを実装するヘルパである。
ImageExchangeID  −  ＩｍａｇｅＥｘｃｈａｎｇｅＩＤ  −  このクラスは、ＩｍａｇｅＭｅｔａＤａｔａインスタンス内のプロパティのキーとして使用できる型である。これは、整数またはストリングのいずれかとすることができる。
ImageExchangeMetaDataEnumerator  −  ＩｍａｇｅＥｘｃｈａｎｇｅＭｅｔａＤａｔａＥｎｕｍｅｒａｔｏｒ。ＩｍａｇｅＥｘｃｈａｎｇｅＭｅｔａＤａｔａの列挙子。ＩＥｎｕｍｅｒａｔｏｒインターフェースならびにＡＰＩの強く型付けされたバージョンを含む。
ImageFrameEnumerator  −  イメージフレームの列挙子。
ImageMetaDataRational  −  ＩｍａｇｅＭｅｔａＤａｔａＲａｔｉｏｎａｌクラスは、符号付き分子および符号付き分母として表される。有理数の有効な値は、分子／分母である。
ImageMetaDataUnsignedRational  −  有理数クラスは、符号なしの分子および符号なしの分母として表される。有理数の有効な値は、分子／分母である。
ImagePaletteColor  −  ＩｍａｇｅＰａｌｅｔｔｅＣｏｌｏｒ構造体。
IntegerRect  −  整数値から構成される長方形。通常は、イメージから、関心を持たれているソース長方形（ピクセル単位）を指定するのに使用される。
Matrix  −  ２次元空間内の変換に使用される３×３行列を表す。「Ａｖａｌｏｎ」は、アフィン変換だけを許容するので、Ｍａｔｒｉｘ構造体は、９つではなく６つのエントリを有する。
NamedStringIndexer  −  このクラスは、複数の文化でローカライズされるストリングの名前付きインデックスを実装するヘルパである。
PixelFormat  −  イメージおよびピクセルベースの表面のピクセルフォーマット定義。
【００８１】
＜委任＞
GetPageEventHandler  −  ＧｅｔＰａｇｅＥｖｅｎｔＨａｎｄｌｅｒを委任する。
HitTestFilterDelegate  −  ビジュアルの子に対してテストするかどうかを制御するための、ヒットテスタに関する委任。
HitTestResultDelegate  −  ビジュアルに関するヒット情報の戻りを制御するための、ヒットテスタに関する委任。
【００８２】
以下に、Ｓｙｓｔｅｍ．Windows．Ｍｅｄｉａ．Ａｎｉｍａｔｉｏｎ名前空間によって公開されるメンバ例をリストする。
【００８３】
＜クラス＞
Animatable  −  ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔから派生したのではないが、アニメーションにすることができるプロパティを有するクラスのすべては、このクラスから派生されなければならない。
AnimationCollection  −  この抽象クラスは、ＣｏｌｏｒＡｎｉｍａｔｉｏｎＣｏｌｌｅｃｔｉｏｎ、ＤｏｕｂｌｅＡｎｉｍａｔｉｏｎＣｏｌｌｅｃｔｉｏｎ、およびＳｉｚｅＡｎｉｍａｔｉｏｎＣｏｌｌｅｃｔｉｏｎなどのアニメーションコレクションの基礎の機能性を提供する。
AnimationEffect  −  レンダリング時に複数の要素のアニメーションをインスタンス化するためにレンダリングプロセスに参加することができる要素レベルアニメーションを実装するには、このクラスをオーバーライドする。
AnimationEffectCollection  −  ＡｎｉｍａｔｉｏｎＥｆｆｅｃｔｓのコレクションを保持する。
BoolAnimationCollection  −  ＢｏｏｌＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
BoolModifier  −
BoolTimedModifier  −
ByteAnimationCollection  −  ＢｏｏｌＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
ByteModifier  −
ByteTimedModifier  −
CharAnimationCollection  −  ＣｈａｒＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
CharModifier  −
CharTimedModifier  −
ColorAnimation  −  プロパティのカラー値をアニメーション表示にする。
ColorAnimationCollection  −  ＣｏｌｏｒＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
ColorKeyFrameCollection  −
ColorModifier  −
ColorTimedModifier  −
DecimalAnimationCollection  −  ＤｅｃｉｍａｌＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
DecimalModifier  −
DecimalTimedModifier  −
DoubleAnimation  −  Ｄｏｕｂｌｅ値を受け入れるプロパティのアニメーション表示に使用される。
DoubleAnimationCollection  −  ＤｏｕｂｌｅＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
DoubleKeyFrameCollection  −
DoubleModifier  −
DoubleTimedModifier  −
FloatAnimation  −  Ｓｉｎｇｌｅ値を受け入れるプロパティのアニメーション表示に使用される。
FloatAnimationCollection  −  ＦｌｏａｔＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
FloatKeyFrameCollection  −
FloatModifier  −
FloatTimedModifier  −
IntAnimationCollection  −  ＩｎｔＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
IntModifier  −
IntTimedModifier  −
LengthAnimation  −  Ｌｅｎｇｔｈ値を受け入れるプロパティのアニメーション表示に使用される。
LengthAnimationCollection  −  ＬｅｎｇｔｈＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
LengthKeyFrameCollection  −
LengthModifier  −
LengthTimedModifier  −
LongAnimationCollection  −  ＬｏｎｇＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
LongModifier  −
LongTimedModifier  −
MatrixAnimationCollection  −  ＭａｔｒｉｘＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
MatrixModifier  −
MatrixTimedModifier  −
Modifier  −
ObjectAnimationCollection  −  ＯｂｊｅｃｔＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
ObjectModifier  −
ObjectTimedModifier  −
PathAnimation  −  このアニメーションは、パスに沿ってビジュアルオブジェクトを移動するために、ＭａｔｒｉｘＡｎｉｍａｔｉｏｎＣｏｌｌｅｃｔｉｏｎの内部で使用することができる。
PointAnimation  −  Ｐｏｉｎｔ値を受け入れるプロパティのアニメーション表示に使用される。
PointAnimationCollection  −  ＰｏｉｎｔＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
PointKeyFrameCollection  −
PointModifier  −
PointTimedModifier  −
RectAnimation  −  Ｒｅｃｔ値を受け入れるプロパティのアニメーション表示に使用される。
RectAnimationCollection  −  ＲｅｃｔＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
RectKeyFrameCollection  −
RectModifier  −
RectTimedModifier  −
ShortAnimationCollection  −  ＳｈｏｒｔＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
ShortModifier  −
ShortTimedModifier  −
SizeAnimation  −  オブジェクトのＳｉｚｅに基づくアニメーションを定義する。Ｓｉｚｅ情報を提供することによって、オブジェクトを、ある期間にわたって縮小または拡大されて見えるようにすることができる。
SizeAnimationCollection  −  ＳｉｚｅＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
SizeKeyFrameCollection  −
SizeModifier  −
SizeTimedModifier  −
StringAnimationCollection  −  ＳｔｒｉｎｇＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
StringModifier  −
StringTimedModifier  −
Timeline  −  タイムド（ｔｉｍｅｄ）オブジェクトのランタイムタイミング状態を維持する。
TimelineBuilder  −  Ｔｉｍｅｌｉｎｅオブジェクトを作成するのに使用されるオブジェクト。
TimeManager  −  タイミングツリー全体を制御するオブジェクト。
TimeSyncValueTypeConverter  −  ＴｉｍｅＳｙｎｃＶａｌｕｅ値を伴う型変換を実行するオブジェクト。
TimeTypeConverter  −  Ｔｉｍｅ値を伴う型変換を実行するオブジェクト。
VectorAnimation  −  Ｖｅｃｔｏｒ値を受け入れるプロパティのアニメーション表示に使用される。
VectorAnimationCollection  −  ＶｅｃｔｏｒＭｏｄｉｆｉｅｒアニメーションのコレクションを表す。
VectorKeyFrameCollection  −
VectorModifier  −
VectorTimedModifier  −
【００８４】
＜インターフェース＞
IClock  −  線形時間値を提供できるオブジェクトを表す。
IModifier  −  モディファイヤオブジェクトの基本的な挙動を定義する。モディファイヤは、ベース値と呼ばれる、ある型のオブジェクトをとり、出力として、同一の型の別のオブジェクトを返すオブジェクトである。
ITimingControl  −  タイムラインオブジェクトおよびタイムドオブジェクトの挙動を定義する。
ITimingControlBuilder  −  タイムラインテンプレートを作成できるオブジェクトを表す。
【００８５】
＜列挙＞
AnimationType  −  アニメーションの挙動を記述する。
CloneType  −  ＣｌｏｎｅＣｏｒｅが要求できるクローンの型。
InterpolationMethod  −  アニメーションがその出力値を計算する方法を記述する。
KeyTimeType  −  ＫｅｙＴｉｍｅｓの異なる型。
TimeEndSync  −  コンテナが子の持続時間に基づいてその単純持続時間を計算する方法を指定する、ｅｎｄＳｙｎｃ属性の値。
TimeFill  −  タイムラインが、アクティブでなくなった後にどのように振る舞うかを指定する。
TimeRestart  −  Ｔｉｍｅｌｉｎｅ．Ｒｅｓｔａｒｔ属性の値。
TimeSeekOrigin  −  タイムライン位置を示す。オフセットが適用される位置を定義することによって、ＩＴｉｍｉｎｇＣｏｎｔｒｏｌインターフェースのＳｅｅｋメソッドの挙動を指定するのに使用される。
TimeSyncBase  −  開始値または終了値が同期化されるイベント。
【００８６】
＜構造体＞
ColorKeyFrame  −
DoubleKeyFrame  −
FloatKeyFrame  −
KeySpline  −  このクラスは、アニメーションフラグメントのＫｅｙＳｐｌｉｎｅｓプロパティにキースプラインの配列を渡すのに使用される。
KeyTime  −  ＫｅｙＴｉｍｅは、ＫｅｙＦｒａｍｅが行われるアニメーションの時刻に関する時間を指定するのに使用される。
LengthKeyFrame  −
PointKeyFrame  −
RectKeyFrame  −
SizeKeyFrame  −
Time  −  時間の算術演算に関連する時間を表す値。
TimelineEnumerator  −  ＴｉｍｅｌｉｎｅＬｉｓｔコレクションのアイテムを列挙する。
TimeSyncValue  −  タイムラインの開始時刻または終了時刻の絶対値または相対値を表す値。
VectorKeyFrame  −
以下に、Ｓｙｓｔｅｍ．Windows．Ｍｅｄｉａ．ＴｅｘｔＦｏｒｍａｔｔｉｎｇ名前空間によって公開されるメンバ例をリストする。
【００８７】
＜クラス＞
InlineObjectInfo  −  インラインテキストオブジェクトの測定詳細を提供する。フォーマットするクライアントは、このオブジェクトをパラメータとしてＧｅｔＩｎｌｉｎｅＯｂｊｅｃｔＩｎｆｏメソッドに渡す。
TextFormatter  −  ＴｅｘｔＦｏｒｍａｔｔｅｒは、「Ａｖａｌｏｎ」テキストエンジンであり、テキストをフォーマットし、テキスト行を分割するサービスを提供する。ＴｅｘｔＦｏｒｍａｔｔｅｒは、異なるテキスト文字フォーマットおよび段落スタイルを処理することができ、ＴｅｘｔＦｏｒｍａｔｔｅｒには、国際テキストレイアウトのサポートが含まれる。
TextHighlightBounds  −  テキスト範囲の境界。
TextInfo  −  クライアントのテキストソースの文字ストア内のテキストのブロックに関する情報を表す。
TextLine  −  テキストの行に対するサービスを提供する。テキストの行を操作し、フォーマットするサービスを実施するには、このクラスを継承する。これは、抽象クラスである。
TextMarkerGeneratedContent  −  行リストマーカー出力を生成する。
TextMarkerInfo  −  段落のリストマーカーのスタイルおよび型を定義する。フォーマットするクライアントは、このクラスをパラメータとして使用して、マーカー詳細をＧｅｔＴｅｘｔＭａｒｋｅｒＩｎｆｏメソッドに供給する。
TextParagraphProperties  −  フロー方向、位置合わせ、インデントなど、段落の間で段落に変更できるプロパティを表す。
TextRun  −  単一のプロパティセットを共有する文字のシーケンスを定義する。フォーマットするクライアントは、ＴｅｘｔＦｏｒｍａｔｔｅｒがＴｅｘｔＲｕｎ詳細をパラメータとしてＧｅｔＴｅｘｔＲｕｎに渡すときに、このクラスにＴｅｘｔＲｕｎ詳細を供給する。
TextRunBounds  −  テキストランの境界。
TextRunCache  −  性能を高めるために、ＴｅｘｔＦｏｒｍａｔｔｅｒオブジェクトにキャッシングサービスを提供する。
TextRunClientData  −  ＴｅｘｔＲｕｎに関連するクライアント情報データを表す。
TextRunProperties  −  あるＴｅｘｔＲｕｎからタイプフェースまたはフォアグラウンドブラシなどの別のものへ変更できるプロパティを提供する。これは、抽象クラスである。
TextRunTypographyProperties  −  ＴｅｘｔＲｕｎのタイポグラフィプロパティを提供する。プロパティのこのクライアントセットによって、ＯｐｅｎＴｙｐｅレイアウトエンジンによって処理される特徴のセットが生成される。
TextSource  −  文字データおよびフォーマッティングプロパティをＴｅｘｔＦｏｒｍａｔｔｅｒに供給する。ＴｅｘｔＳｏｕｒｃｅ内のテキストへのアクセスのすべてが、ＧｅｔＴｅｘｔＲｕｎメソッドを介して達成され、ＧｅｔＴｅｘｔＲｕｎメソッドは、クライアントが、クライアントが選択する任意の形でテキストを仮想化できるようにするように設計されている。これは、抽象クラスである。
TextTrimmingInfo  −  テキストトリミング特性の記述を提供する。フォーマットするクライアントは、ＴｅｘｔＦｏｒｍａｔｔｅｒがＧｅｔＴｅｘｔＴｒｉｍｍｉｎｇＩｎｆｏメソッドのパラメータとしてトリミング詳細を渡すときに、このクラスにトリミング詳細を書き込む。
【００８８】
＜列挙＞
TextParagraphFlags  −  段落の特性を記述するフラグ。
TextRunCacheFlags  −  テキストランキャッシュ内のコンテンツの種類。
TextRunType  −  ＴｅｘｔＲｕｎの型を示す。
【００８９】
＜構造体＞
TextSourceCharacterIndex  −  ＴｅｘｔＳｏｕｒｃｅＣｈａｒａｃｔｅｒＩｎｄｅｘは、テキスト内のキャレット位置または文字位置を表す。
【００９０】
（媒体統合レイヤ ）
媒体統合レイヤ（ＭＩＬ）は、開発者およびプログラマが、単純な方法でアプリケーション内においておそらくは複雑な合成エフェクトを達成すると同時に、普通のアプリケーション性能に悪影響を及ぼさない方法でグラフィック処理ユニットを活用するＡＰＩを提供する。ＭＩＬの一態様は、異なる媒体型（２次元、３次元、ビデオ、オーディオ、テキスト、イメージングなど）を組み合わせ、共にスムーズにシームレスにアニメーション表示する能力を提供する。
【００９１】
ＭＩＬは、プログラム的インターフェースおよびスクリプト化されたインターフェースでの機能パリティを可能にするマルチステージ合成のグラフィックスアーキテクチャおよびプログラミングモデルを提供する。ＡＰＩおよびスクリプトは、レンダリングされるときに合成されるが、より即時モードの性質を有する領域を含む、保持される構造またはシーンの記述を作成できるようにする。
【００９２】
このインターフェースを介して、ＭＩＬは、ビジュアル情報を保管するデータ構造へのアクセスを提供し、その結果、アプリケーションが、コンピュータハードウェアによって提供されるグラフィックス機能を利用できるようになる。インターフェースは、要素オブジェクトモデルと、プログラムコード開発者がグラフィックスを作るためにシーングラフデータ構造と一貫してインターフェースできる方法で要素オブジェクトモデルを使用するためのベクトルグラフィックスマークアップ言語とに基づく。データ構造は、直接レンダリングのために、またはビジュアル情報を「コンパイル」し、その結果、高速な合成およびアニメーションのために低水準グラフィックスシステムに供給できるようにするために、使用することもできる。
【００９３】
ベクトルグラフィックス要素オブジェクトモデルは、一般に、形状要素および、シーングラフのシーングラフオブジェクトモデルに相関するイメージ要素およびビデオ要素を含む他の要素に対応する。マークアップは、要素ツリー内の要素を含むデータに解析することができ、この要素ツリーは、シーングラフデータ構造のオブジェクトに変換される。他のマークアップは、データおよびシーングラフオブジェクトを作成する呼出しに直接に変換することができる。マークアップ言語は、単純なストリングフォーマットまたは複雑なプロパティ構文を含む要素を記述する個別の方法を提供し、この要素は、名前を付けることができ、マークアップ内の他のロケーションでの再利用が可能になる。
【００９４】
ＭＩＬの一態様は、固有の基礎レベル概念としてのアニメーションを提供する、ＡＰＩセットにまたがるアニメーションおよびタイミングの統合である。スムーズなアニメーションを容易にするために、ＭＩＬは、複数レベルのグラフィックス処理のシステムおよび方法（たとえばオペレーティングシステムの）を提供する。そのような複数レベルグラフィックス処理システムの１つに、ティックオンデマンドまたは低速ティック高水準コンポーネントと高速ティック（たとえば、グラフィックスハードウェアフレームリフレッシュレートでの）低水準コンポーネントとを含む、２つのコンポーネントが含まれる。一般に、高水準低頻度コンポーネントは、単純化されたデータ構造を低水準コンポーネントに渡すために、アニメーションパラメータの更新およびシーンデータ構造のトラバースという計算集中型の態様を実行する。低水準コンポーネントは、グラフィックスサブシステムのフレームリフレッシュレートなどの高い周波数で動作して、データ構造をグラフィックスサブシステムの一定の出力データに処理する。低水準処理には、アニメーションの各フレームのシーンをレンダリングするために瞬時値を入手するのに必要な、パラメータ間隔の補間が含まれる。
【００９５】
トップレベルＭＩＬオブジェクトには、ビジュアルツリーが含まれ、このビジュアルツリーは、描画されるメインコンテンツを含むオブジェクトである。コントロールは、このツリーのビジュアルから直接に導出される。ビジュアルは、装置および親コンテキストに依存しない。レンダターゲット（render target）は、ビジュアルが描かれる装置である。このオブジェクト（たとえば画面）は、それ自体のダーティ機構または無効化機構を有する。さまざまなレンダターゲットに、ウインドウ、Ｐｒｉｎｔｅｒ、Ｍｅｔａｆｉｌｅ、Ｓｕｒｆａｃｅ、および「サブウインドウ」が含まれ、このサブウインドウは、シーンのうちで、シーンの残りとは別に描画される部分である。他のドローイング関連オブジェクトに、ビジュアルツリーをレンダターゲットに描くように構成されたオブジェクトを含むＶｉｓｕａｌ  Ｒｅｎｄｅｒｅｒと、ビジュアルツリーをレンダターゲットに描くべきときを知っているＤｉｓｐｌａｙ  Ｓｃｈｅｄｕｌｅｒオブジェクトが含まれる。Ｔｉｍｅ  Ｍａｎａｇｅｒは、タイミングノードのセットに関するコンテンツオブジェクトであり、スケジューラがティックを呼び出すオブジェクトである。
【００９６】
ビジュアルＡＰＩが設けられ、これは、本質的に、媒体統合レイヤを介する描画の開始点であり、Ｖｉｓｕａｌ  Ｔｒｅｅを媒体に接続するＶｉｓｕａｌＭａｎａｇｅｒオブジェクトを含むオブジェクトの複数の型が含まれる。ＶｉｓｕａｌＭａｎａｇｅｒｓ（たとえば、Ｓｃｒｅｅｎ、Ｐｒｉｎｔｅｒ、およびＳｕｒｆａｃｅ）の異なる型は、その特定の媒体へのＶｉｓｕａｌ  Ｔｒｅｅのレンダリングの責任を負う。ビジュアルは、プログラマが描画を行う場所であり、ビジュアルツリー内のノードであり、プログラムが描画する場所を提供する。
【００９７】
ＤｒａｗｉｎｇＣｏｎｔｅｘｔ  ＡＰＩは、Ｖｉｓｕａｌを移植する、またはＩｍａｇｅＤａｔａにレンダリングされるビジュアルコンテンツを構成する方法に関するコンテキストベースのプログラミングモデルを提供する。ＤｒａｗｉｎｇＣｏｎｔｅｘｔクラスが提供され、ＤｒａｗｉｎｇＣｏｎｔｅｘｔを獲得し、ＲｅｔａｉｎｅｄＶｉｓｕａｌ／ＤｒａｗｉｎｇＶｉｓｕａｌでビジュアルコンテンツを列挙するのに必要なクラスおよびエントリポイントも提供される。
【００９８】
ミュータビリティを有効にするために、共通のＣｈａｎｇｅａｂｌｅ基本型から派生する、単一のセットの型が設けられる。ミュータビリティが所望の変化である任意の型は、Ｃｈａｎｇｅａｂｌｅクラスから導出することができる。たとえば、グラフィックスプログラミングで、オブジェクトモデルに、Ｂｒｕｓｈ、Ｐｅｎ、Ｇｅｏｍｅｔｒｙ、ＦｌｏａｔＡｎｉｍａｔｉｏｎ、ＧｒａｄｉｅｎｔＳｔｏｐ、Ｓｅｇｍｅｎｔなどが含まれる。ＩｓＣｈａｎｇｅａｂｌｅプロパティによって、状態を定義する、その現在の値に応じて、Ｃｈａｎｇｅａｂｌｅオブジェクトを修正できるか否かが指定される。
【００９９】
ブラシは、平面を塗り潰す方法を表すオブジェクトである。絶対的な方法で平面を塗り潰すことができるほかに、媒体統合レイヤのブラシは、平面を塗り潰す方法を、塗り潰されるオブジェクトのサイズに対して相対的に適合させることもできる。ブラシの型の例に、ＳｏｌｉｄＣｏｌｏｒＢｒｕｓｈ、ＶｉｓｕａｌＢｒｕｓｈ（ベクトルグラフィックスリソース／Ｖｉｓｕａｌを参照することができる）、ＤｒａｗｉｎｇＢｒｕｓｈ、ＬｉｎｅａｒＧｒａｄｉｅｎｔ、ＲａｄｉａｌＧｒａｄｉｅｎｔ、ＩｍａｇｅＢｒｕｓｈ、およびＮｉｎｅＧｒｉｄＢｒｕｓｈが含まれる。あるブラシオブジェクトは、使用されるときに座標系にそれを関連させる方法のアイデアと、それと共に使用されるジオメトリの境界ボックスにそれを関連させる方法のアイデアを有する。このサイズは、ブラシが塗り潰しているオブジェクトに基づく。Ｂｒｕｓｈ基本クラスは、Ｔｒａｎｓｆｏｒｍ、一般的な透明度、およびブレンドモードを有する。Ｂｒｕｓｈ（ならびに、ベクトルグラフィックスＡＰＩおよびＭＩＬ  ＡＰＩの他のオブジェクトリソース）オブジェクトは、Ｃｈａｎｇｅａｂｌｅであり、作成後に書き込み可能であり、修飾された使用で使用された後にどのように振る舞うかに関して一般的なＣｈａｎｇｅａｂｌｅのパターンに従う。
【０１００】
オブジェクトのＧｅｏｍｅｔｒｙクラスは、ＰｅｎおよびＢｒｕｓｈを用いる２次元ベクトルベースデータのクリッピング、ヒットテスト、およびレンダリングに使用することができる。導出されたＧｅｏｍｅｔｒｙクラスは、より具体的な構築セマンティックスおよび列挙セマンティックスを有する。複数の形状固有Ｇｅｏｍｅｔｒｙ型ならびにより複雑な形状Ｇｅｏｍｅｔｒｙの明示的定義を可能にする一般化されたＰａｔｈＧｅｏｍｅｔｒｙが提供される。Ｇｅｏｍｅｔｒｙは、抽象基本クラスである。ＧｅｏｍｅｔｒｙＣｏｌｌｅｃｔｉｏｎは、定義された領域での特定のＣｏｍｂｉｎｅＭｏｄｅ動作を使用して組み合わされた複数のＧｅｏｍｅｔｒｙオブジェクトのコレクションである。このオブジェクトを用いると、ＰａｔｈＧｅｏｍｅｔｒｙ内の厳密なＰａｔｈＦｉｇｕｒｅオブジェクトを使用する可能性があることより容易に、Ｇｅｏｍｅｔｒｙオブジェクトのビジュアル組合せを構築できるようになる。
【０１０１】
ＩｍａｇｅＳｏｕｒｃｅは、イメージングの基本構成要素を含む抽象クラスである。ＩｍａｇｅＳｏｕｒｃｅは、概念的に、あるサイズと解像度の、ピクセルの単一、一定のセットを表す。たとえば、ＩｍａｇｅＳｏｕｒｃｅは、Ｄｅｃｏｄｅｒが提供できるイメージファイル内の単一フレームとすることができ、あるいは、それ自体のあるＩｍａｇｅＳｏｕｒｃｅに対して動作する変換の結果とすることができる。ＩｍａｇｅＳｏｕｒｃｅは、変更可能であるが、これは、それ自体のプロパティを変更することができるからではなく、そのサブクラスのプロパティが潜在的に変更される可能性があるからである。
【０１０２】
オブジェクトのＴｒａｎｓｆｏｒｍクラスは、ベクトルグラフィックスおよびラスタグラフィックスのスケーリング、回転、並進、およびスキューのために提供される。派生されたＴｒａｎｓｆｏｒｍクラスは、フレンドリな使用法および列挙セマンティックスを有する。
【０１０３】
Ｅｆｆｅｃｔｓは、レンダリング中心の方法でシーンのビジュアルコンテンツを変更する手段を提供する。たとえば、ＶｉｓｕａｌＥｆｆｅｃｔｓ（ラスタベースビットマップエフェクト）は、イメージベースの、シーンの一部の完全に合成された表現を操作する。Ｅｆｆｅｃｔｓは、ＶｉｓｕａｌＥｆｆｅｃｔｓ、ＢｌｅｎｄＭｏｄｅｓ、およびＶｅｃｔｏｒＥｆｆｅｃｔｓを含むさまざまな型に分解される。ＶｉｓｕａｌＥｆｆｅｃｔｓは、サブグラフまたはＥｌｅｍｅｎｔに適用することによって保持モードシーンで使用することができ、あるいは、独立のイメージパイプラインで使用することができる。ＢｌｅｎｄＭｏｄｅｓは、イメージベースエフェクトの特定の形であり、おおむねＶｉｓｕａｌＥｆｆｅｃｔｓと同一の形で保持モードシーンに適用することができる。ブレンドモードでは、ソースが合成される際にソースカラーとデスティネーションカラーの組合せ、たとえば乗算または加算を実行する。
【０１０４】
ヒットテストは、シーン内のビジュアルを選択するのに使用され、制御ツリーの最上部から開始し、点またはジオメトリによってコントロールまたはコントロールのセットを返すことによって動作する。コントロールは、レンダリングされたジオメトリ、境界ボックス、帯域外ジオメトリ（ヒット領域）、イメージ不透明度またはマスク、およびそれ自体のロジックを含むサポートサービスを用いて、ヒットするか否かを定義することができる。コントロールは、ヒットに関する特定のヒット関連データを返すことができる。ヒットテスト機構は、効率的な形でヒットテスト結果をフィルタリングすることができる。ヒットテストウォークは、ビジュアルツリーの深い右から左へのウォークであり、ヒットは、ｚ順で上から下の形でコールバックを介して報告される。降りるときに、ヒットテスタは、要素レベル関係、たとえば、形状を有するキャンバス、内側キャンバスを有するドックパネルなどに関して、フィルタリングを見る。ヒットが発生するときに、ヒットテスタは、さらなるヒット（ある場合に）の処理を継続するか、停止することができる。
【０１０５】
タイミング制御エンジンおよび１セットのアニメーションオブジェクトからなるアニメーションシステムを提供する。タイミングエンジンは、たとえばアニメーションオブジェクト、オーディオ媒体オブジェクト、またはビデオ媒体オブジェクトなど、時間変動挙動を示すすべてのオブジェクトによって使用できるサービスである。アニメーションオブジェクトは、タイムスパンを他のデータ型にマッピングする関数のセットを実装し、これらのデータ型は、他の上位オブジェクトへの入力として使用される。グラフィカルアニメーションは、アニメーションコレクションをレンダリング動作に関連付けることによって達成される。レンダリング動作で使用される各アニメーションは、「タイムライン」と称する別々のクロックで動作することができる。アニメーションにされたプリミティブが、描画され、アニメーションパラメータが指定されたならば、低水準レンダリングシステムが、一定の間隔でシーンの再レンダリングを処理する。フレームがレンダリングされるたびに、シーンに含まれるアニメーションの現在の値が、経過時間（ほとんどの場合にシステムクロックによって測定される）に基づいて計算され、その後、アニメーションにされたプリミティブが再描画される。
【０１０６】
さまざまなプリミティブ型、色特性、および媒体サポートも、ＭＩＬを介して提供される。ＭｅｄｉａＤａｔａを使用して、オーディオ／ビデオコンテンツを再生することができる。
【０１０７】
（Ｄｅｓｉｇｎ名前空間）
Ｄｅｓｉｇｎ名前空間３２０は、フォームおよびテキストの編集、データのフォーマット、およびクロスプロセスデータ共有を可能にするクラスを提供する。これらのクラスは、文書、アプリケーション、および他のコンテンツの編集に関する拡張可能なフレームワークを提供する。Ｄｅｓｉｇｎ名前空間３２０には、２つのレベルの機能性すなわち、異なる型の情報に関する事前にパッケージ化された使い易いエディタを求めるアプリケーション設計者のための高水準機能性と、それ自体のデータの型を導入する高度なアプリケーションのための低水準機能性が含まれる。事前にパッケージ化された使い易いエディタ例は、プレーンテキスト編集、リッチテキスト編集、フォーム（要素レイアウト）編集、およびパスワード入力を提供する。
【０１０８】
Ｄｅｓｉｇｎ名前空間３２０は、さまざまな機能性の編成への柔軟で拡張可能な手法を提供する。共通の固定機能のエディタを提供するのではなく、Ｄｅｓｉｇｎ名前空間３２０は、特化した、および簡単にカスタマイズ可能な情報編集ソリューションを開発者が作成できるようにするサービス、挙動、および抽象化の組合せを提供する。Ｄｅｓｉｇｎ名前空間３２０には、スコープ付きサービス、スタック可能な挙動、エディタ−デザイナパターン、要素編集用の抽象デザイナ、抽象テキストオブジェクトモデル、アドーナ（ａｄｏｒｎｅｒ）レイヤ、デザインサーフェス、一般化されたデータ転送プロトコル、および拡張可能なアンドゥ機構を含む複数のカスタマイズ可能な編集機能が含まれる。
【０１０９】
スコープ付きサービスを用いると、アプリケーションデータの特定の部分および下位部分への特定のサービスの関連付けが可能になる。この機構を用いると、異なるスコープでサービスをオンまたはオフに切り替えられるようになる。サービスに関するサポートを提供するメインクラスは、ＳｅｒｖｉｃｅＭａｎａｇｅｒであり、個々のサービスは、ＩＳｅｒｖｉｃｅインターフェースおよびＩＳｃｏｐｅｄＳｅｒｖｉｃｅインターフェースを使用して実装される。
【０１１０】
「スタック可能な挙動」という概念を用いると、適当な期間に異なる挙動をアクティブ化できるようになる。一実施形態では、時間ベースの挙動アクティブ化がネストされ、より汎用のプロセスが一時的に中断され、正しく復元される間に、サブプロセスを開始し、終了できるようになる。ソリューションをハードコーディングするのではなく、スタック可能な挙動の手法では、お互いに関する事前に定義された知識を有しないプロセスの統合を可能にすることによって、この問題を解決する。この機構のサポートを提供するメインクラスは、ＥｄｉｔＲｏｕｔｅｒであり、個々の挙動は、ＥｄｉｔｏｒクラスおよびＥｄｉｔＢｅｈａｖｉｏｒクラスのサブクラスである。編集可能なデータの組込み型は、ＴｅｘｔＥｄｉｔｏｒ、ＥｌｅｍｅｎｔＥｄｉｔｏｒ、およびＭｏｖｅＢｅｈａｖｉｏｒなどのＥｄｉｔＢｅｈａｖｉｏｒの対応するサブクラスによってサポートされる。
【０１１１】
「エディタ−デザイナパターン」という概念を用いると、汎用編集機能性と、より具体的な編集可能な情報のサブタイプ化との間の分離が可能になる。エディタは、それが操作する特定のデータ構造を期待しない。そうではなく、エディタは、データコンテンツが、ある抽象インターフェースを介して公開され、実装の詳細が隠蔽されるが、編集対話の対応するアクションに十分であると仮定する。このパターンは、（フォーム編集での）要素および（リッチテキスト編集での）テキストに特に有用である。
【０１１２】
「要素編集用の抽象デザイナ」は、要素編集のある領域（たとえばフォーム編集）用の「エディタ−デザイナパターン」のアプリケーションである。さまざまな要素が、異なる内部構造、外見、および挙動を有する可能性があるが、それらの要素が、移動、回転、またはサイズ変更に関するある標準「デザイナ」を公開する場合に、それらの要素は、要素エディタによって編集可能になる。
【０１１３】
抽象テキストモデルは、リッチテキスト編集での使用に関する「エディタ−デザイナパターン」の別のアプリケーションである。この抽象化を用いると、異なるバッキングストアが、ＲＴＦ、ＸＨＴＭＬ、プレーンテキスト、ＸＡＭＬマークアップ、構文的に強調されたソースコードなどのリッチテキスト編集に参加できるようになる。これらの型のテキストのセマンティックな性質および内部構造は、異なる可能性があるが、抽象テキストモデルを介してそれ自体を公開することによって、汎用編集機構の適用が可能になる。さらに、この手法では、テキストおよびデータの統合が可能になり、異なるバッキングストアからのテキストに、お互いの一部を含めることができると同時に、シームレスな編集経験がもたらされる。
【０１１４】
アドーナレイヤは、編集中に豊富なビジュアルフィードバックを提供する統合ツールである。アドーナレイヤは、多数の型に対するフィードバックの統一されたサポートを提供する。強力なビジュアルを要素およびデータの他の部分に動的にアタッチし、デタッチして、それらにアクティブに適用可能な潜在的なユーザを示すことができる。デザインサーフェスは、アドーナレイヤおよび編集ルータなどの編集リソースを事前にパッケージ化するＸＡＭＬコントロールである。これによって、中間レベルの編集開発が単純化される。
【０１１５】
切り取り／コピー／貼付けおよびドラッグ／ドロップなどの編集機能は、統合情報環境で重要であるが、異なるデータ型の複雑さおよび非互換性に起因してサポートが困難になる可能性がある。一般化されたデータ転送プロトコルは、データ抽出、データ挿入、データドラッグ、およびデータ変換に使用される抽象の組合せを提供することによって、この問題に対処する。この一般化されたデータ転送プロトコルは、アプリケーション−データ統合の強力で柔軟な機構を提供する。
【０１１６】
拡張可能なアンドゥ機構は、さまざまな型のデータを収集することによってアンドゥスタックを管理する。アンドゥマネージャに、異なるデータ型を伴うアンドゥ動作を処理するプロトコルが含まれる。
【０１１７】
以下に、Ｓｙｓｔｅｍ．Windows．Ｄｅｓｉｇｎ名前空間によって公開されるメンバ例をリストする。
【０１１８】
＜クラス＞
ActivationEventFilter  −  ＥｖｅｎｔＦｉｌｔｅｒ。
ActivationRectangleAdornerInfo  −  これは、ＤｅｓｉｇｎＡｃｔｉｖｅ要素上の境界を示すフィードバックである。
AdornerInfo  −  アドーナセット（adornerset）の特定のアドーナに関する情報を提供する。
AdornerLayer  −  Ｚ順を超える必要がある要素（常に一番手前にある必要がある要素）の装飾を表示するサーフェスを提供する。
CanvasDesigner  −  デフォルトＣａｎｖａｓデザイナ。
ComponentChangeService  −  コンポーネントに影響するデザインタイムアクションのアンドゥおよびリドゥ機能性を提供する。
Designer  −  ライブコンテントを編集する手段を提供する。
DesignerFilterService  −  アプリケーションおよびコントロールが、ＤｅｓｉｇｎｅｒＬｏｏｋｕｐＳｅｒｖｉｃｅによって提供される要素とデザイナとの間のデフォルトマッピングをオーバーライドするために実装することができるオプションのサービスを定義する。
DesignerLookupService  −  要素をデザイナにマッピングする編集挙動を可能にする。
DesignSurface  −  編集可能コンテンツの推奨ルート要素。アドーナ、サービス、およびイベントを集約する。
EditBehavior  −  すべての編集挙動の実装を定義する。
Editor  −  テキスト、要素、またはテーブルなどの特定の選択型に関するユーザ入力を処理する。通常、各選択型の特定のエディタがある。
EditorTypeAttribute  −  選択型を選択モードに関連付ける。このクラスを継承することはできない。
EditRouter  −  現在アクティブなＥｄｉｔＢｅｈａｖｉｏｒｓのセットを管理する。
EditRouterChangedEventArgs  −  Ｃｈａｎｇｅｄイベントの引数。
ElementEditor  要素エディタ。
EventFilter  −  イベントフィルタリングおよび割り当てを可能にする。
FrameworkElementDesigner  −  ＦｒａｍｅｗｏｒｋＥｌｅｍｅｎｔから派生するすべてのコントロールのデフォルトＤｅｓｉｇｎｅｒ。
MoveBehavior  −  移動挙動。
ObjectSelection  −  サイト選択。
ParentUndoUnit  −  ＰａｒｅｎｔＵｎｄｏＵｎｉｔ。
RichTextDesigner  −  ＴｅｘｔＰａｎｅｌと、ＩＴｅｘｔＤｏｃｕｍｅｎｔＲｅｓｕｌｔをサポートする他のコントロールとに関するＩＴｅｘｔＤｅｓｉｇｎｅｒ実装。
RoutedEventAdapter  −  ＲｏｕｔｅｄＥｖｅｎｔＡｄａｐｔｅｒは、１つのハンドラがイベントの異なる型を処理できるようにするために、特定のｅｖｅｎｔＨａｎｄｌｅｒをＲｏｕｔｅｄＥｖｅｎｔＨａｎｄｌｅｒにサンクする。ＥｄｉｔＲｏｕｔｅｒによって使用される。
SelectionRouter  −  ＳｅｌｅｃｔｉｏｎＲｏｕｔｅｒは、複数の選択モードを用いる混合選択を制御する。これは、ＥｄｉｔＲｏｕｔｅｒから派生して、イベントを（Ｅｄｉｔｏｒから派生する）モジュラエディタにルーティングする。
SelectionService  −  ＵＩアイテムの選択肢へのプログラムによるアクセスを提供する。選択されたアイテムに関するフィードバックを得ることができ、選択されたアイテムおよびそのプロパティを変更することもできる。
ServiceConverter  −  ＳｅｒｖｉｃｅＣｏｎｖｅｒｔｅｒ  −  ストリングとＩＳｅｒｖｉｃｅのインスタンスの間の変換のコンバータクラス。
SimpleTextDesigner  −  Ｔｅｘｔと、ＩＴｅｘｔＰａｒａｇｒａｐｈＲｅｓｕｌｔをサポートする他のコントロールとに関するＩＴｅｘｔＤｅｓｉｇｎｅｒ実装。
TextDecorator  −  ＴｅｘｔＤｅｃｏｒａｔｏｒは、競合するサービスからのテキスト装飾を管理するオブジェクトを定義する。プロパティ値をプライベートに書き込むのではなくＴｅｘｔＤｅｃｏｒａｔｏｒを使用することによって、同一優先順位の場合であっても、競合する装飾が絶対にオーバーラップしないことが保証される。
TextEditor  −  テキスト選択サービスを提供する。
TextSelection  −  ＴｅｘｔＳｅｌｅｃｔｉｏｎクラスは、ＴｅｘｔＥｄｉｔｏｒクラスの選択状態をカプセル化する。パブリックコンストラクタはないが、ＴｅｘｔＥｄｉｔｏｒのパブリックプロパティを介して公開される。
UndoService  −  ＩＵｎｄｏＳｅｒｖｉｃｅのフレームワーク実装。
UndoStackChangedEventArgs  −  ＵｎｄｏＳｔａｃｋＣｈａｎｇｅｄイベントおよびＲｅｄｏＳｔａｃｋＣｈａｎｇｅｄイベントのデータを提供する。
【０１１９】
＜インターフェース＞
IAddRemoveChildDesigner  −  ＩＡｄｄＲｅｍｏｖｅＣｈｉｌｄＤｅｓｉｇｎｅｒインターフェースは、子の追加／除去に使用される。
IAdornerDesigner  −  ＦｒａｍｅｗｏｒｋＥｌｅｍｅｎｔにアドーナを描画するのに必要なオブジェクトを検索できるようにするメソッドへのアクセスを提供する。
IDesignActivationContainer  −  ＤｅｓｉｇｎＡｃｔｉｖｅになることができるＤｅｓｉｇｎＡｃｔｉｖａｔｉｏｎの内側要素。要素がＤｅｓｉｇｎＡｃｔｉｖｅである場合に、ある子要素を編集している可能性が最も高いと仮定されるので、名前コンテナを有する。
IDesignActivationContainerParent  −  ＩＤｅｓｉｇｎＡｃｔｉｖａｔｉｏｎＣｏｎｔａｉｎｅｒＰａｒｅｎｔは、Ｄｅｓｉｇｎ環境でＩＤｅｓｉｇｎＡｃｔｉｖａｔｉｏｎＣｏｎｔａｉｎｅｒをホスティングすることができる。
IDesignSurface  −  編集に参加することを望むいかなる要素も実装するインターフェース。
IMoveDesigner  −  移動デザイナインターフェース。
IParentUndoUnit  −  ＩＰａｒｅｎｔＵｎｄｏＵｎｉｔインターフェース。
IScopedService  −  ＩＳｃｏｐｅｄＳｅｒｖｉｃｅ。
ISelection  −  選択モードの基本インターフェース。
ISelectionDesigner  −  ＳｅｌｅｃｔｉｏｎＢｅｈａｖｉｏｒ（ＳｅｌｅｃｔｉｏｎＲｏｕｔｅｒ）に関連するデザイナインターフェース。これを実装するクラスは、要素型のＤｅｓｉｇｎｅｒＡｔｔｒｉｂｕｔｅで指定される。
IService  −  編集サービスのＴｙｐｅＣｏｎｖｅｒｔｅｒのプレースホルダ。
ITextDesigner  −  ＴｅｘｔＥｄｉｔｏｒサービスにレイアウト固有の情報およびアクションを供給するために実装されるインターフェースコンポーネント。
IUndoService  −  ＩＵｎｄｏＳｅｒｖｉｃｅインターフェース。
IUndoUnit  −  ＩＵｎｄｏＵｎｉｔインターフェース。
【０１２０】
＜列挙＞
AdornerInfoZOrder  −  Ｚ順フラグ。
AdornerRenderTriggers  −  アドーナの再レンダリングを引き起こす条件を示すフラグ。
EditRouterChange  −  可能なルータ変更アクションの列挙。
TextDecorationPriority  −  ＴｅｘｔＤｅｃｏｒａｔｉｏｎＰｒｉｏｒｉｔｙは、さまざまなテキストマークアップの相対的な重要性をランキングする。これは、ＴｅｘｔＤｅｃｏｒａｔｏｒクラスでのｚ順装飾実行に使用される。
UndoState  −  アンドゥマネージャの状態に関する列挙。
【０１２１】
＜委任＞
UndoStackChangedEventHandler  −  ＵｎｄｏＳｔａｃｋＣｈａｎｇｅｄイベントまたはＲｅｄｏＳｔａｃｋＣｈａｎｇｅｄイベントを処理するメソッドを表す。
【０１２２】
（Ｉｎｐｕｔ名前空間）
Ｉｎｐｕｔ名前空間３２２には、システムによって受け取られる入力を調整する入力マネージャが含まれる。Ｉｎｐｕｔ名前空間３２２には、キーボードまたはマウスなどの異なる入力デバイスを管理し、その制御を提供することを助けるクラスも含まれる。入力システムを用いると、アプリケーションが、マウス、キーボード、およびスタイラス（ペン）などの入力デバイスから情報を得られるようになる。ほとんどの入力機能性は、Ｓｙｓｔｅｍ．Windows名前空間のＵＩＥｌｅｍｅｎｔクラス、ＦｒａｍｅｗｏｒｋＥｌｅｍｅｎｔクラス、ＣｏｎｔｅｎｔＥｌｅｍｅｎｔクラス、およびＣｏｎｔｅｎｔＦｒａｍｅｗｏｒｋＥｌｅｍｅｎｔクラスにおけるプロパティ、メソッド、およびイベントの形である。ＵＩＥｌｅｍｅｎｔおよびＣｏｎｔｅｎｔＥｌｅｍｅｎｔは、類似する入力機能性を有し、これは、ＩＩｎｐｕｔＥｌｅｍｅｎｔインターフェースによってキャプチャされる。同様に、それぞれＵＩＥｌｅｍｅｎｔおよびＣｏｎｔｅｎｔＥｌｅｍｅｎｔから派生するＦｒａｍｅｗｏｒｋＥｌｅｍｅｎｔおよびＣｏｎｔｅｎｔＦｒａｍｅｗｏｒｋＥｌｅｍｅｎｔは、多くの入力ＡＰＩを共有し、両方がＩＦｒａｍｅｗｏｒｋＩｎｐｕｔＥｌｅｍｅｎｔを実装する。
【０１２３】
入力システムは、キーボード、マウス、およびスタイラスの完全なサポートを提供する。キーボード機能性には、キーダウン／アップイベント、フォーカスの管理および通知、現在のキー状態へのアクセス、入力ストリングへのキーストロークの変換が含まれる。マウス機能性には、マウス位置、クリック、移動、要素境界での出入りのイベント、マウスキャプチャ、ホバー、およびマウスホイールが含まれる。スタイラス機能性には、位置および移動（ペンがサーフェスに触れているときと「空中」にあるときの両方）、タップ／クリック、キャプチャ、およびジェスチャ認識が含まれる。
【０１２４】
Ｉｎｐｕｔ名前空間には、列挙、イベント引数、委任シグネチャなど、上記の機能性に必要なヘルパクラスも含まれる。さらに、Ｉｎｐｕｔ名前空間には、Ｋｅｙｂｏａｒｄクラス、Ｍｏｕｓｅクラス、およびＳｔｙｌｕｓクラスが含まれ、これらのクラスは、これらのデバイスの現在の状況に関する情報を提供する。入力システムは、特定の要素上およびアプリケーション全体に関してマウスカーソルを指定する方法を提供する。
【０１２５】
入力システムは、ＴＳＦ（Ｔｅｘｔ  Ｓｅｒｖｉｃｅｓ  Ｆｒａｍｅｗｏｒｋ）と統合され、ＴＳＦは、新しいテキストが入力されつつあるテキストコンテキストを他の入力ソフトウェアが理解できるようにする。これは、ＩＭＥ（ｉｎｐｕｔ  ｍｅｔｈｏｄ  ｅｄｉｔｏｒ）によって使用され、ＩＭＥは、東アジア言語のユーザが、複数のキーストロークを単一の文字にすることを可能にする。ＩＭＥソフトウェアは、ＴＳＦと通信して、文脈に基づいてキーストロークの最適の解釈を識別し、ＴＳＦを使用して、そのテキストを文書に挿入する。同様に、音声認識は、ＴＳＦを使用して、最良の認識を選び、文書に挿入する。
【０１２６】
入力システムは、ＴｅｘｔＩｎｐｕｔイベントの形で、ＴＳＦとの自動的統合を提供する。Ｉｎｐｕｔ名前空間は、テキストコンテキストを記述するＡＰＩ、および生のキーボード入力からテキスト入力への変換を制御するＡＰＩも提供する。ＩｎｐｕｔＭａｎａｇｅｒクラスは、フィルタおよびモニタを提供し、これらを用いると、サードパーティが、入力ストリームを監視し、元の入力イベントが発せられる前に新しい入力イベントを作成できるようになる。ＩｎｐｕｔＭａｎａｇｅｒは、ＩＩｎｐｕｔＰｒｏｖｉｄｅｒおよびＩｎｐｕｔＲｅｐｏｒｔを使用して、新しい装置を入力システムに接続できるようにするＡＰＩも提供する。
【０１２７】
下のテーブルにＳｙｓｔｅｍ．Windows．Ｉｎｐｕｔ名前空間によって公開されるメンバ例をリストする。
【０１２８】
＜クラス＞
AccessKeyManager  −  ＡｃｃｅｓｓＫｅｙＭａｎａｇｅｒは、ニーモニック（mnemonics）とも称する、アクセスキー機能性を公開する。典型的な例が、Ｏｋボタンであり、ａｌｔ−Ｏがニーモニックになる。すなわち、ａｌｔ−Ｏの押下げが、ボタンのクリックと同一になる。
Cursor  −  使用されるマウスカーソルを表す。
CursorTypeConverter  −  マウスカーソルとストリングの間の変換を行う。
FocusChangedEventArgs  −  ＦｏｃｕｓＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓクラスには、フォーカス変更に関する情報が含まれる。
InputDevice  −  すべての入力デバイスの基本クラスを提供する。
InputEventArgs  −  ＩｎｐｕｔＥｖｅｎｔＡｒｇｓクラスは、すべての入力イベントに関連するＲｏｕｔｅｄＥｖｅｎｔＡｒｇｓの型を表す。
InputLanguageChangedEventArgs  −  ＩｎｐｕｔＬａｎｇｕａｇｅＥｖｅｎｔＡｒｇｓクラスは、（人間の）入力言語の変更を示すために引き起こされるイベントに関連するＲｏｕｔｅｄＥｖｅｎｔＡｒｇｓの型を表す。
InputLanguageChangingEventArgs  −  ＩｎｐｕｔＬａｎｇｕａｇｅＥｖｅｎｔＡｒｇｓクラスは、（人間の）入力言語の変更を示すために引き起こされるイベントに関連するＲｏｕｔｅｄＥｖｅｎｔＡｒｇｓの型を表す。
InputLanguageEventArgs  −  ＩｎｐｕｔＬａｎｇｕａｇｅＥｖｅｎｔＡｒｇｓクラスは、（人間の）入力言語の変更を示すために引き起こされるイベントに関連するＲｏｕｔｅｄＥｖｅｎｔＡｒｇｓの型を表す。
InputLanguageManager  −  ＩｎｐｕｔＬａｎｇｕａｇｅＭａｎａｇｅｒクラスは、Ａｖａｌｏｎで入力言語を管理する責任を負う。
InputManager  −  ＩｎｐｕｔＭａｎａｇｅｒクラスは、Ａｖａｌｏｎのすべての入力システムを調整する責任を負う。
InputMethod  −  ＩｎｐｕｔＭｅｔｈｏｄクラスは、ＴＩＰのプロパティと通信しているかこれにアクセスしているＴＳＦ関連ＡＰＩを公開する。
InputMethodStateChangedEventArgs  −  このＩｎｐｕｔＭｅｔｈｏｄＳｔａｔｅＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓクラスは、ＩＭＥ（ｉｎｐｕｔ  ｍｅｔｈｏｄ  ｅｄｉｔｏｒ）がその状態を変化させるときに使用される。
InputProviderSite  −  入力マネージャに入力を報告するのに入力プロバイダが使用するオブジェクト。
InputReport  −  ＩｎｐｕｔＲｅｐｏｒｔは、ＩｎｐｕｔＭａｎａｇｅｒに伝えられるすべての入力に関する抽象基本クラスである。
InputReportEventArgs  −  ＩｎｐｕｔＲｅｐｏｒｔが処理されているときに引き起こされるイベントのデータを提供する。
Keyboard  −  Ｋｅｙｂｏａｒｄクラスは、キーボードに関連するＡＰＩを公開する。
KeyboardDevice  −  ＫｅｙｂｏａｒｄＤｅｖｉｃｅクラスは、コンテキストのメンバに対してキーボードデバイスを表す。
KeyboardEventArgs  −  ＫｅｙｂｏａｒｄＥｖｅｎｔＡｒｇｓクラスは、すべての派生イベント引数の論理ポインタデバイスへのアクセスを提供する。
KeyEventArgs  −  ＫｅｙＥｖｅｎｔＡｒｇｓクラスには、キー状態に関する情報が含まれる。
KeyInterop  −  Ｗｉｎ３２  ＶｉｒｔｕａｌＫｅｙと「Ａｖａｌｏｎ」Ｋｅｙ列挙との間の変換の静的メソッドを提供する。
Mouse  −  Ｍｏｕｓｅクラスは、マウスに関連するＡＰＩを公開する。
MouseButtonEventArgs  −  ＭｏｕｓｅＢｕｔｔｏｎＥｖｅｎｔＡｒｇｓは、マウスボタンの状態を記述する。
MouseDevice  −  ＭｏｕｓｅＤｅｖｉｃｅクラスは、コンテキストのメンバに対してマウスデバイスを表す。
MouseDoubleClickEventArgs  −  マウスがダブルクリックされたときに引き起こされるイベントのデータを提供する。
MouseEventArgs  −  ＭｏｕｓｅＥｖｅｎｔＡｒｇｓクラスは、すべての派生イベント引数に関する論理マウスデバイスへのアクセスを提供する。
MouseWheelEventArgs  −  ＭｏｕｓｅＷｈｅｅｌＥｖｅｎｔＡｒｇｓは、マウスホイールの状態を記述する。
NotifyInputEventArgs  −  入力マネージャによって処理されている入力イベントに関する情報を提供する。
PreProcessInputEventArgs  −  ハンドラが入力イベントの処理を取り消せるようにする。
ProcessInputEventArgs  −  入力マネージャのステージング領域へのアクセスを提供する。
RawKeyboardInputReport  −  ＲａｗＫｅｙｂｏａｒｄＩｎｐｕｔＲｅｐｏｒｔクラスは、キーボードから供給される生入力をカプセル化する。
RawMouseInputReport  −  ＲａｗＭｏｕｓｅＩｎｐｕｔＲｅｐｏｒｔクラスは、マウスから供給される生入力をカプセル化する。
StagingAreaInputItem  −  このクラスは、入力マネージャによって処理されている間の入力イベントをカプセル化する。
TextInputEventArgs  −  ＴｅｘｔＩｎｐｕｔＥｖｅｎｔＡｒｇｓクラスには、入力のテキスト表現が含まれる。
TextManager  −  ＴｅｘｔＭａｎａｇｅｒクラスは、入力からテキストへのイベント昇格を提供する。
TextServicesContext  −  このクラスは、東アジアＩＭＥ入力を可能にするネイティブＣＯＭ  ＡＰＩであるＴｅｘｔ  Ｓｅｒｖｉｃｅｓ  ＦｒａｍｅｗｏｒｋとＵＩＤｉｓｐａｔｃｈｅｒとの間の相互接続を管理する。
TextStoreInfo  −  これは、内部の、リンクデマンドのプロテクトクラスである。
【０１２９】
＜インターフェース＞
IInputLanguageSource  −  入力言語ソースを制御するインターフェース。
IInputProvider  −  すべての入力プロバイダによって実装されるインターフェース。
IKeyboardInputProvider  −  キーボード入力プロバイダを制御するインターフェース。
IMouseInputProvider  −  マウス入力プロバイダを制御するインターフェース。
【０１３０】
＜列挙＞
CursorType  −  サポートされるカーソルタイプの列挙。
ImeConversionMode  −  ＩｍｅＣｏｎｖｅｒｓｉｏｎＭｏｄｅ。
ImeSentenceMode  −  ＩｍｅＳｅｎｔｅｎｃｅＭｏｄｅ。
InputMethodState  −  Ｉｍｅの状態。
InputMode  −  入力が供給されたときの入力処理のモード。
InputType  −  報告されている入力のタイプ。
Key  −  キーボードのすべての可能なキー値の列挙。
KeyState  −  ＫｅｙＳｔａｔｅ列挙は、キーボードキーが入ることのできる状態を記述する。
ModifierKeys  −  ＭｏｄｉｆｉｅｒＫｅｙｓ列挙は、他の入力動作を修正するのに使用される共通キーのセットを記述する。
MouseButton  −  ＭｏｕｓｅＢｕｔｔｏｎ列挙は、マウスデバイスで使用可能なボタンを記述する。
MouseButtonState  −  ＭｏｕｓｅＢｕｔｔｏｎＳｔａｔｅ列挙は、マウス入力デバイスで使用可能なボタンの可能な状態を記述する。
RawKeyboardActions  −  キーボードから伝えられる生のアクション。
RawMouseActions  −  マウスから伝えられる生のアクション。
SpeechMode  −  音声のモード
【０１３１】
＜構造体＞
TextServicesMSG  −  Ｗｉｎ３２  ＭＳＧ構造体の管理されるバージョン。
【０１３２】
＜委任＞
FocusChangedEventHandler  −  ＦｏｃｕｓＣｈａｎｇｅｄＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
InputEventHandler  −  ＩｎｐｕｔＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
InputLanguageEventHandler  −  これは、ＩｎｐｕｔＬａｎｇｕａｇｅＣｈａｎｇｅｄイベントおよびＩｎｐｕｔＬａｎｇｕａｇｅＣｈａｎｇｉｎｇイベントに関する委任である。
InputMethodStateChangedEventHandler  −  インプットメソッド状態変化イベントを受け取るハンドラに使用される委任。
InputReportEventHandler  −  ＰｏｉｎｔｅｒＭｏｖｅＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
KeyboardEventHandler  −  ＫｅｙｂｏａｒｄＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
KeyEventHandler  −  ＫｅｙＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
MouseButtonEventHandler  −  ＭｏｕｓｅＢｕｔｔｏｎＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
MouseDoubleClickEventHandler  −  ＭｏｕｓｅＤｏｕｂｌｅＣｌｉｃｋＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
MouseEventHandler  −  ＭｏｕｓｅＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
MouseWheelEventHandler  −  ＭｏｕｓｅＷｈｅｅｌＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
NotifyInputEventHandler  −  ＮｏｔｉｆｙＩｎｐｕｔＥｖｅｎｔＡｒｇｓを使用するイベントのハンドルの委任型。
PreProcessInputEventHandler  −  ＰｒｅＰｒｏｃｅｓｓＩｎｐｕｔＥｖｅｎｔＡｒｇｓを使用するイベントのハンドルの委任型。
ProcessInputEventHandler  −  ＰｒｏｃｅｓｓＩｎｐｕｔＥｖｅｎｔＡｒｇｓを使用するイベントのハンドルの委任型。
TextInputEventHandler  −  ＴｅｘｔＩｎｐｕｔＥｖｅｎｔＡｒｇｓを受け取るハンドラに使用される委任。
【０１３３】
（Ｎａｖｉｇａｔｉｏｎ名前空間）
Ｎａｖｉｇａｔｉｏｎ名前空間３２４は、ブラウザアプリケーションなど、ナビゲーションパラダイムを有するアプリケーションの作成を可能にするクラスおよびサービスのセットを提供する。これらのクラスおよびサービスによって、カスタマイズされたナビゲーション経験を有するアプリケーションの開発が可能になる。たとえば、オンライン商人から製品またはサービスを購入するときに、「戻る」ボタンをクリックすることにより、アプリケーションがユーザに注文を取り消す、または変更することを望むか否かを尋ねる異なるページを表示させる。もう１つの例で、「再読み込み」ボタンによって、アプリケーションが、まずアプリケーションを再ロードした後に新しいデータを検索するのではなく、新しいデータを検索するようになる。Ｎａｖｉｇａｔｉｏｎ名前空間３２４には、ユーザに提示される質問の階層を生成する機構を提供するページ機能も含まれる。
【０１３４】
下のテーブルに、Ｓｙｓｔｅｍ．Windows．Ｎａｖｉｇａｔｉｏｎ名前空間によって公開されるメンバ例をリストする。
【０１３５】
＜クラス＞
BoolWrapper  −  Ｂｏｏｌｅａｎ値のラッパー。
BoolWrapperPageFunction  −  前のページにＢｏｏｌｅａｎ値を返す型付きページ関数。
BoolWrapperReturnEventArgs  −
IntWrapper  −  Ｉｎｔ３２値のラッパー。
IntWrapperPageFunction  −  前のページにＩｎｔ３２値を返す型付きページ関数。
IntWrapperReturnEventArgs  −
Journal  −  アプリケーションのナビゲーションヒストリを含む。
JournalEntry  ジャーナルエントリを表す。
LoaderService  −  所与のアプリケーションドメイン内の現在のローダを設定するのに使用される。
NavigateEventArgs  −  旧式。
NavigatingCancelEventArgs  −  ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎ．ＮａｖｉｇａｔｉｎｇイベントおよびＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗ．Ｎａｖｉｇａｔｉｎｇイベントのイベント引数。
NavigatingNewWindowCancelEventArgs  −  ＮａｖｉｇａｔｉｎｇＮｅｗＷｉｎｄｏｗ取消可能イベントのイベント引数。ＮａｖｉｇａｔｉｎｇＮｅｗＷｉｎｄｏｗＣａｎｃｅｌＥｖｅｎｔＡｒｇｓは、渡されるＵｒｉまたは要素を用いてナビゲーションが行われるターゲットＮａｖｉｇａｔｉｏｎＣｏｎｔａｉｎｅｒを指定する。デフォルトで、Ｃａｎｃｅｌプロパティに偽が設定される。Ｃａｎｃｅｌに真を設定することによって、新しいウインドウが開かれなくなり、ナビゲーションが行われなくなる。
NavigationApplication  −  システムに対して「Ｌｏｎｇｈｏｒｎ」ナビゲーションアプリケーションを表す。
NavigationContainer  −  「Ａｖａｌｏｎ」マークアップツリーを含めることができるナビゲーション可能な領域。通常、このクラスは、直接に使用されるのではなく、カスタム実装の親クラスとして使用することができる。
NavigationErrorCancelEventArgs  −  ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎ．ＮａｖｉｇａｔｉｏｎＥｒｒｏｒイベントおよびＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗ．ＮａｖｉｇａｔｉｏｎＥｒｒｏｒイベントの引数を含む。
NavigationEventArgs  −  ＬｏａｄＣｏｍｐｌｅｔｅｄ、ＬｏａｄＳｔａｒｔｅｄ、Ｎａｖｉｇａｔｅｄ、およびＮａｖｉｇａｔｉｏｎＳｔｏｐｐｅｄを含む、取消不能ナビゲーションイベントのイベント引数。
NavigationProgressEventArgs  −  ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎ．ＮａｖｉｇａｔｉｏｎＰｒｏｃｅｓｓイベントおよびＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗ．ＮａｖｉｇａｔｉｏｎＰｒｏｃｅｓｓイベントの引数を含む。
NavigationService  −  ナビゲーションイベントによって使用される委任と、ＩＮａｖｉｇａｔｏｒインターフェースを含むダイナミックプロパティを含む。
NavigationWindow  −  ナビゲーションウインドウを表す。
ObjectPageFunction  −  前のページにＯｂｊｅｃｔ値を返す型付きページ関数。
ObjectReturnEventArgs  −
PageFunction  −  このクラスは、直接にはサポートされない。その代わりに、型付けされたクラスであるＢｏｏｌＷｒａｐｐｅｒＰａｇｅＦｕｎｃｔｉｏｎ、ＩｎｔＷｒａｐｐｅｒＰａｇｅＦｕｎｃｔｉｏｎ、ＯｂｊｅｃｔＰａｇｅＦｕｎｃｔｉｏｎ、またはＳｔｒｉｎｇＰａｇｅＦｕｎｃｔｉｏｎの１つを使用する。
ReturnArgs  −  Ｒｅｔｕｒｎイベントのイベント引数オブジェクト。このクラスは、直接にはサポートされない。その代わりに、型付けされたクラスであるＢｏｏｌＷｒａｐｐｅｒＲｅｔｕｒｎＥｖｅｎｔＡｒｇｓ、ＩｎｔＷｒａｐｐｅｒＲｅｔｕｒｎＥｖｅｎｔＡｒｇｓ、ＯｂｊｅｃｔＲｅｔｕｒｎＥｖｅｎｔＡｒｇｓ、またはＳｔｒｉｎｇＲｅｔｕｒｎＥｖｅｎｔＡｒｇｓの戻り引数を使用する。
StringPageFunction  −  前のページにＳｔｒｉｎｇ値を返す型付けされたページ関数。
StringReturnEventArgs  −
WindowNavigationContainer  −  ナビゲーションウインドウ内のナビゲーション可能領域を表す。
【０１３６】
＜インターフェース＞
IJournalData  −  ＩＪｏｕｒｎａｌＤａｔａインターフェース  −  ジャーナル内で状態を永続させ、ページに再訪問したときにその状態を復元する必要があるＣｏｎｔｒｏｌによって実装されなければならない。
ILoader  −  Ｕｒｉをストリーム群に分解するために使用されるインターフェース。ファイル、ｈｔｔｐ、コンテナ、管理されるリソース、および管理されないリソースからコンテンツをロードするのに使用することができる。
INavigator  −  ナビゲーションをサポートするプロパティ、メソッド、およびイベントへのアクセスを提供するために、ナビゲーションコンテナによって実装される。
INavigatorService  −  ＩＮａｖｉｇａｔｏｒＳｅｒｖｉｃｅインターフェース。このインターフェースは、ＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗで使用可能であり、ＩＮａｖｉｇａｔｏｒの任意のインプリメンタがハＨｙｐｅｒｌｉｎｋターゲティングに参加するためにそれ自体を登録することを可能にする。
【０１３７】
＜列挙＞
NavigationMode  −  ナビゲーションモードを指定するのに使用される。
【０１３８】
＜委任＞
BoolWrapperReturnEventHandler  −
IntWrapperReturnEventHandler  −
LoadCompletedEventHandler  −  ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎ．ＬｏａｄＣｏｍｐｌｅｔｅｄイベントおよびＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗ．ＬｏａｄＣｏｍｐｌｅｔｅｄイベントを処理するメソッドを表す。
LoadStartedEventHandler  −  ＬｏａｄＳｔａｒｔｅｄイベントを処理するメソッドを表す。
NavigatedEventHandler  −  ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎ．ＮａｖｉｇａｔｅｄイベントおよびＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗ．Ｎａｖｉｇａｔｅｄイベントを処理するメソッドを表す。
NavigateEventHandler  −  旧式。
NavigatingCancelEventHandler  −  ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎ．ＮａｖｉｇａｔｉｎｇイベントおよびＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗ．Ｎａｖｉｇａｔｉｎｇイベントを処理するメソッドを表す。
NavigatingNewWindowCancelEventHandler  −  ＮａｖｉｇａｔｉｎｇＮｅｗＷｉｎｄｏｗイベントを処理するメソッドを表す。
NavigationErrorCancelEventHandler  −  この委任は、ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎ．ＮａｖｉｇａｔｉｏｎＥｒｒｏｒイベントおよびＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗ．ＮａｖｉｇａｔｉｏｎＥｒｒｏｒイベントと共に使用される。
NavigationProgressEventHandler  −  この委任は、ＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗ．ＮａｖｉｇａｔｉｏｎＰｒｏｇｒｅｓｓイベントおよびＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎ．ＮａｖｉｇａｔｉｏｎＰｒｏｇｒｅイベントと共に使用される。
NavigationStoppedEventHandler  −  ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎ．ＮａｖｉｇａｔｉｏｎＳｔｏｐｐｅｄイベントおよびＮａｖｉｇａｔｉｏｎＷｉｎｄｏｗ．ＮａｖｉｇａｔｉｏｎＳｔｏｐｐｅｄイベントを処理するメソッドを表す。
ObjectReturnEventHandler  −
ReturnEventHandler  −  Ｒｅｔｕｒｎイベントを処理するメソッドを表す。このクラスは、直接にはサポートされない。その代わりに、適当な型付きクラスであるＢｏｏｌＷｒａｐｐｅｒＲｅｔｕｒｎＥｖｅｎｔＨａｎｄｌｅｒ、ＩｎｔＷｒａｐｐｅｒＲｅｔｕｒｎＥｖｅｎｔＨａｎｄｌｅｒ、ＯｂｊｅｃｔＲｅｔｕｒｎＥｖｅｎｔＨａｎｄｌｅｒ、またはＳｔｒｉｎｇＲｅｔｕｒｎＥｖｅｎｔＨａｎｄｌｅｒの戻りイベントハンドラを使用する。
StringReturnEventHandler  −
（Ａｕｔｏｍａｔｉｏｎ名前空間）
Ａｕｔｏｍａｔｉｏｎ名前空間３２６には、アクセシビリティおよびユーザインターフェースオートメーションをサポートするために使用されるメンバが含まれる。アクセシビリティシステムに、クライアントサイドとプロバイダサイドが含まれる。ツールのシステムに、ユーザインターフェース情報を探すクライアントオートメーションクラスを含むクライアントサイドオートメーションツールが含まれる。クライアントオートメーションクラスに、イベント登録ツールおよび論理要素ディスカバリツールが含まれる。ツールのセットに、さらに、クライアントにユーザインターフェース情報を与えるプロバイダサイドオートメーションツールが含まれる。プロバイダサイドオートメーションツールに、クライアントにイベント情報を与えるツールを有するオートメーションプロバイダクラスが含まれる。
【０１３９】
クライアントオートメーションクラスは、１つまたは複数のクライアントに関するＵＩオートメーションメソッドを提供する。クライアントオートメーションクラスに、どのＵＩ要素にも固有でないメソッドが含まれる。クライアントオートメーションクラスは、点、ウインドウハンドル、またはデスクトップルート要素から論理要素または生要素を得るメソッドを提供することができる。クライアントオートメーションクラスは、さらに、論理要素ベースの入力基準を見つけるメソッドを提供することができる。クライアントオートメーションクラスに、イベント通知について登録し、登録解除するメソッドも含まれることが好ましい。オートメーションクラスは、プロキシＤＬＬのロード、プロパティおよびコントロールパターンのローカライズされた名前の検索、および要素比較の実行に関するヘルパ関数も提供することが好ましい。クライアントオートメーションクラスに、クライアントがイベントをリスンするメソッドも含まれる。下のテーブルに、Ｓｙｓｔｅｍ．Windows．Ａｕｔｏｍａｔｉｏｎ名前空間によって公開されるメンバ例をリストする。
【０１４０】
＜クラス＞
ApplicationWindowPattern  −  通常はトップレベルアプリケーションウインドウに関連付けられる挙動および情報を公開する。クライアントは、このクラスを使用して、アプリケーションのＭＤＩ（ｍｕｌｔｉｐｌｅ  ｄｏｃｕｍｅｎｔ  ｉｎｔｅｒｆａｃｅ）子を並べて表示または重ねて表示し、タスクバー上のボタンを検索し、ツールバーおよびメニューなどのユーザインターフェースの周知のセクションを突き止めることができる。
AssociatedInformationPattern  −  他のオブジェクトを表すＵＩ要素のセマンティックおよびメタデータを公開する。
Automation  −  クライアントのユーザインターフェース（ＵＩ）オートメーションメソッド（支援技術または自動化テストスクリプト）を含む。これらのメソッドは、特定の要素に固有ではない。
AutomationEvent  −  使用してはならない。このクラスは、将来のバージョンで除去される。
AutomationEventArgs  −  パターンまたはカスタムイベント引数クラス。
AutomationFocusChangedEventArgs  −  フォーカスイベント引数クラス。
AutomationIdentifier  −  オブジェクト識別ベース識別子の基本クラス。このクラスは、効果的に抽象クラスであり、派生クラスだけがインスタンス化される。
AutomationIdentifierProxy  −  ＡｕｔｏｍａｔｉｏｎＩｄｅｎｔｉｆｉｅｒをデシリアライズするのに使用される内部クラス。直接に使用してはならない。
AutomationPattern  −  使用してはならない。このクラスは、将来のバージョンで除去される。
AutomationPermission  −  ＵＩ要素へのアクセスに関するアクセス権のセットを提供する。このクラスを継承することはできない。
AutomationPermissionAttribute  −  ＡｕｔｏｍａｔｉｏｎＰｅｒｍｉｓｓｉｏｎＡｔｔｒｉｂｕｔｅのメソッドおよびプロパティを提供する。このクラスを継承することはできない。
AutomationProperty  −  使用してはならない。このクラスは、将来のバージョンで除去される。
AutomationPropertyChangedEventArgs  −  ＰｒｏｐｅｒｔｙＣｈａｎｇｅｄイベント引数クラス。
AutomationTextAttribute  −  オートメーションテキスト属性の識別子。
AutomationTextPointer  −  テキスト内の文字の位置を表す。ＡｕｔｏｍａｔｉｏｎＴｅｘｔＰｏｉｎｔｅｒは、アクセステキスト（accessing text）およびテキストナビゲーションに関するメソッドおよびプロパティを提供する。
AutomationTextRange  −  選択肢の取得、設定、追加、および削除に使用される。
AutomationTextSelection  −  目的：ＡｕｔｏｍａｔｉｏｎＴｅｘｔＳｅｌｅｃｔｉｏｎオブジェクトは、すべてのテキスト選択管理を処理する。挿入ポインタがその上にある選択物は、アクティブ選択物である。使用例：クライアントが、選択物の追加、除去、修正、または設定を求めるときに使用される。クライアントは、ＡｕｔｏｍａｔｉｏｎＴｅｘｔＳｅｌｅｃｔｉｏｎを介して、現在何が選択されているかを見つけることもできる。
AutomationTextUnit  −  オートメーションＴｅｘｔＵｎｉｔの識別子。
BasePattern  −  内部クラス。
DockPattern  −  ランタイムにドック状態を変更する、要素の能力を公開する。
ElementNotEnabledException  −  この例外は、クライアントコードが、現在イネーブルでない要素またはコントロールの操作を試みたときにスローされる。
ElementPath  −  ＥｌｅｍｅｎｔＰａｔｈは、アプリケーションプロバイダによって前に記録され、修正され、または全体を作成された論理要素に後でリターンするのに必要な基準を提供する。
ExpandCollapsePattern  −  展開してより多くのコンテンツを表示するための、または縮小してコンテンツを隠す、コントロールの能力を公開する。例に、メニューボタン、スタートボタン、Windows(登録商標)  Ｅｘｐｌｏｒｅｒのツリービューアイテム、およびコンボボックスが含まれる。
GridItemPattern  −  グリッドの要素を公開する。クライアントが、グリッドアイテムの座標をすばやく判定できるようにする。
GridPattern  −  基本的なグリッド機能性、サイズ、および指定されたセルへのナビゲーションを公開する。
HierarchyItemPattern  −  コントロールのユーザインターフェース要素の論理ツリーでの関係と独立な、それらの間の階層関係を公開する。
Input  −  マウス入力およびキーボード入力を送るメソッドを提供する。
InvokePattern  −  単一の曖昧でないアクションを実行するオブジェクト（コントロール）によって実装される。これらのコントロールのほとんどが、状態を維持しない。これらを呼び出しは、アプリケーションでのアクションを開始する。このインターフェースを実装するコントロールの例に、プッシュボタン、ツールバーボタン、メニューアイテム、ハイパーリンク、チェックボックス、ラジオボタン、ツリービューコントロールの＋記号、およびWindows(登録商標)  Ｅｘｐｌｏｒｅｒのリストビューアイテムが含まれる。
LogicalElement  −  実装（「Ａｖａｌｏｎ」、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎ３２（登録商標））に関わりなく、論理ツリー内のＵＩ要素を表す。
LogicalStructureChangedEventArgs  −  論理構造変更イベント引数クラス。
MultipleViewPattern  −  情報、データ、または子の同一のセットの複数の表現の間で切り替える、要素の能力を公開する。例に、ＬｉｓｔＶｉｅｗ（サムネイル、タイル、アイコン、リスト、詳細）、Ｅｘｃｅｌチャート（パイ、直線、バー、式を有するセル値）、およびＯｕｔｌｏｏｋ  Ｃａｌｅｎｄａｒ（年、月、週、日）が含まれる。
NoClickablePointException  −  引数の値が、ＧｅｔＣｌｉｃｋａｂｌｅＰｏｉｎｔによって定義されるその値の許容範囲外であるときにスローされる例外。たとえば、境界長方形が空であるか、幅または高さを有しないか、その時点でＬｏｇｉｃａｌＥｌｅｍｅｎｔが呼び出されたものと同一でないとき。
ProxyAssemblyNotLoadedException  −  この例外は、プロキシアセンブリのロードに問題があるときにスローされる。これは、Ａｕｔｏｍａｔｉｏｎ．ＲｅｇｉｓｔｅｒＰｒｏｘｙＡｓｓｅｍｂｌｙに応答して、または最初のｈｗｎｄベースＬｏｇｉｃａｌＥｌｅｍｅｎｔに出会うときのデフォルトプロキシのロードのときに発生する可能性がある。
RangeValuePattern  −  有限の範囲内に値を管理する、コントロールの能力を公開する。これは、コントロールの有効な最小値および最大値ならびに現在の値を伝える。
RawElement  −  生要素ツリー内の要素を表す。
ScrollPattern  −  値を表しているＵＩ要素を表す。
SelectionItemPattern  −  選択物を管理するコンテナ内の個々のアイテムを表す。ＵＩＡｕｔｏｍａｔｉｏｎクライアントは、このクラスを使用して、ＳｅｌｅｃｔｉｏｎＩｔｅｍＰａｔｔｅｒｎコントロールパターンをサポートするＵＩ要素に関する情報を得るか、そのような要素を操作する。例に、リストボックスまたはツリービュー内のアイテムなど、ＳｅｌｅｃｔｉｏｎＰａｔｔｅｒｎコントロールパターンをサポートするコントロール内で選択できるいかなるアイテムも含まれる。
SelectionPattern  −  選択物を管理するコンテナを表す。ＳｅｌｅｃｔｉｏｎＰａｔｔｅｒｎコントロールパターンをサポートするユーザインターフェース要素に関する情報を得るか、そのような要素を操作するのに、ＵＩオートメーションクライアントによって使用される。
SortPattern  −  コンテナの現在のソート順序を公開し、クライアントがプログラムによって要素を再ソートできるようにする。
SplitPattern  −  隣接ウインドウを作成することによってそれ自体のクローンを作成できるウインドウを表す。
TableItemPattern  −  ヘッダ情報を有するグリッドアイテムを表す。
TablePattern  −  ヘッダ情報を有するグリッドを表す。
TextPattern  −  エディットコントロールなどのテキストを表す。
TopLevelWindowEventArgs  −  ＴｏｐＬｅｖｅｌＷｉｎｄｏｗＥｖｅｎｔＡｒｇｓイベント引数クラス。
TreeLoadEventArgs  −  ＴｒｅｅＬｏａｄＥｖｅｎｔＡｒｇｓイベント引数クラス。
ValuePattern  −  ラジオボタン、トグルボタン、チェックボックス、エディットボックス、ＲＧＢカラー値、およびチェックマークを付けられるメニューアイテムなどの範囲に及ばないコントロールの値を表す。
VisualInformationPattern  −  ダウンロード中の文書を表すＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒのなびく旗もしくはスピンする地球、またはコピーが進行中であることを示すWindows(登録商標)  Ｅｘｐｌｏｒｅｒの飛ぶ紙など、ユーザに情報を伝えるイメージまたはアニメーションに関する情報を公開する。
WindowPattern  −  オンスクリーンの位置またはサイズを変更する、要素の能力を公開する。例に、トップレベルアプリケーションウインドウ（ＷｏｒｄまたはWindows(登録商標)  Ｅｘｐｌｏｒｅｒ）、Ｏｕｔｌｏｏｋのメインウインドウペイン（フォルダ、電子メールメッセージ、タスク）、およびＭＤＩ子ウインドウが含まれる。
ZoomPattern  −  コントロールの現在のズームレベルを公開し、クライアントがプログラムによってこれを変更できるようにする。
【０１４１】
＜列挙＞
AutomationPermissionFlag  −  ＡｕｔｏｍａｔｉｏｎＰｅｒｍｉｓｓｉｏｎオブジェクトのアクセスフラグを含む。
ChildArrangement  −  子を配置できる異なる方法。
DockPosition  −  ドック可能なウインドウがはりつくコンテナのエッジ。
ExpandCollapseState  −  展開／縮小状態を示すためにＥｘｐａｎｄＣｏｌｌａｐｓｅパターンによって使用される。
GetDataOptions  −  ＧｅｔＤａｔａのオプション。
HierarchyItemState  −  階層アイテムの状態を示す列挙：縮小、展開、または部分的展開。
ItemCheckState  −  チェックボックス、ラジオボタン、および類似するコントロールの状態を示す列挙。
LoadState  −  ツリー状態フラグ。
LogicalMapping  −  生ツリー内のノードが論理ツリーで表示されるかどうかを示す値。
ProxyFlags  −  プロパティを要求した結果を示すのに使用される列挙。
RowOrColumnMajor  −  このテーブル内のデータが行または列によって最もよく提示されるかどうか。
ScopeFlags  −  イベントをリスンするときにスコープを定義するのに使用されるフラグ。
ScrollAmount  −  スクロールの方向（順方向または逆方向）および量（ページまたは行）を示すためにＳｃｒｏｌｌＰａｔｔｅｒｎによって使用される。
SendMouseInputFlags  −  ＳｅｎｄＭｏｕｓｅＩｎｐｕｔのフラグ。このフラグは、移動が行われたか否か、またはボタンが押されるか離されたか否かを示す。
SplitStyles  −  ウインドウを分割できる方向のフラグ。
StructureChangeType  −  論理ツリーの構造の変更を示すフラグ。
TextPointerGravity  −  グラビティによって、テキストがＡｕｔｏｍａｔｉｏｎＴｅｘｔＰｏｉｎｔｅｒに挿入されるときのＡｕｔｏｍａｔｉｏｎＴｅｘｔＰｏｉｎｔｅｒの配置が決定される。グラビティは、常にテキストポインタの観点から、すなわち、自分が文字の前にいるか、自分が文字の後にいるかである。ユーザがテキストポインタ位置に文字を挿入するときに、「前」は、ポインタが新しい文字の前に置かれることを意味し、「後」は、ポインタが新しい文字の後に置かれることを意味する。
WindowChangeType  −  トップレベルウインドウ内の変更を示すフラグ。
WindowInteractionState  −  ユーザ対話に関するウインドウの現在の状態。
WindowVisualState  −  ウインドウのビジュアル状態を記述するのに使用される状態。ＷｉｎｄｏｗＶｉｓｕａｌＳｔａｔｅは、Windows(登録商標)ｔａｔｅのＯｆｆｉｃｅおよびＨＴＭＬ定義に従う。
【０１４２】
＜構造体＞
MatchCondition  −  ＦｉｎｄＬｏｇｉｃａｌＥｌｅｍｅｎｔまたはＦｉｎｄＲａｗＥｌｅｍｅｎｔを使用して要素を見つけるための基準を指定する。
NameAndData  −  名前、オブジェクトとしてのデータ、およびストリングとしてのデータを含む。
ProxyDescription  −  プロキシに関する情報を含む構造体。
SortInformation  −  ソートに使用される情報。
【０１４３】
＜委任＞
AutomationEventHandler  −  ＡｕｔｏｍａｔｉｏｎＥｖｅｎｔｓを処理する委任。
AutomationFocusChangedEventHandler  −  フォーカス変更イベントを処理する委任。
AutomationPropertyChangedEventHandler  −  ＡｕｔｏｍａｔｉｏｎＰｒｏｐｅｒｔｙ変更イベントを処理する委任。
LogicalStructureChangedEventHandler  −  論理構造変更イベントを処理する委任。
ProxyFactoryCallback  −  ＨＷＮＤハンドラによって実装され、指定されたウインドウのプロキシを要求するためにＵＩオートメーションフレームワークによって呼び出される。サポートされる場合にプロキシを、サポートされない場合にｎｕｌｌを返さなければならない。
TopLevelWindowEventHandler  −  トップレベルウインドウイベントを処理する委任。
【０１４４】
下のテーブルに、Ｓｙｓｔｅｍ．Windows．Ａｕｔｏｍａｔｉｏｎ．ＩｎｔｅｒｏｐＰｒｏｖｉｄｅｒ名前空間によって公開されるメンバ例をリストする。
【０１４５】
＜クラス＞
AutomationInteropProvider  −  ユーザインターフェース（ＵＩ）オートメーションを実装するＷｉｎ３２アプリケーションまたはコントロールによって使用されるメソッドを含む。このクラスを継承することはできない。
TextPointerPair  −  文字の連続的ブロックを表す。
【０１４６】
＜インターフェース＞
IApplicationWindowInteropProvider  −  通常はトップレベルアプリケーションウインドウに関連する挙動および情報を公開する。
IAssociatedInformationInteropProvider  −  他のオブジェクトを表すＵＩ要素のセマンティックおよびメタデータを公開する。
IDockInteropProvider  −  ランタイムにドック状態を変更する、要素の能力を公開する。
IExpandCollapseInteropProvider  −  展開してより多くのコンテンツを表示するか、縮小してコンテンツを隠す、コントロールの能力を公開する。ツリー風の挙動を提供するためにＴｒｅｅＶｉｅｗアイテムにおいてＨｉｅｒａｒｃｈｙＩｔｅｍパターンと共にサポートされるが、オープンし、およびクローズする個々のコントロールにも関連する。これを実装するＵＩの例に、ＴｒｅｅＶｉｅｗアイテム、縮小されたＯｆｆｉｃｅのスマートメニュー、ツールバーにおけるシェブロン、コンボボックス、メニュー、Windows(登録商標)  Ｅｘｐｌｏｒｅｒのタスクペイン（フォルダビューがしばしば表示される左側）の「Ｅｘｐａｎｄｏｓ」が含まれる。
IGridInteropProvider  −  基本的なグリッド機能性：サイズおよび指定されたセルへの移動を公開する。
IGridItemInteropProvider  −  グリッド内のアイテムを表す。メソッドはなく、プロパティだけがある。
IHierarchyItemInteropProvider  −  論理ツリーでの関係とは独立にＵＩ要素の間の階層関係を公開し、クライアントがそれをトラバースできるようにする。階層関係は、定義によって非循環である。これを実装するＵＩの例に、ＴｒｅｅＶｉｅｗアイテム、Ｖｉｓｉｏ  Ｏｒｇ  Ｃｈａｒｔ、メニュー、「グループ表示」モードがアクティブであるときのＬｉｓｔｖｉｅｗコントロールが含まれる。
IInvokeInteropProvider  −  単一の曖昧でないアクションを実行するオブジェクト（コントロール）によって実装される。これらのコントロールのほとんどが、状態を維持しない。これらを呼び出すことによって、アプリケーションでのアクションが開始される。このインターフェースを実装するユーザインターフェース要素の例に、プッシュボタン、ツールバーボタン、メニューアイテム、ハイパーリンク、チェックボックス、ラジオボタン、ツリービューコントロールの＋記号、およびWindows(登録商標)  Ｅｘｐｌｏｒｅｒのリストビューアイテムが含まれる。
IMultipleViewInteropProvider  −  情報、データ、または子の同一のセットの複数の表現の間で切り替える、要素の能力を公開する。このパターンは、コンテンツの現在のビューを制御するコンテナで実装されなければならない。
IRangeValueInteropProvider  −  有限の範囲内で値を管理する、コントロールの能力を反映するプロパティの関連するセットを公開する。これは、コントロールの有効な最小値および最大値、ならびに現在の値を伝える。例：数値スピナ、プログレスバー、（個々のオクテットにおける）ＩＰコントロール、一部のカラーピッカ、スクロールバー、一部のスライダ、現在の値と値の範囲を表すＵＩ要素を表すパブリックインターフェース。パブリックインターフェースは、ＩＶａｌｕｅＰｒｏｖｉｄｅｒと同一の定義を有する。２つのパターンの相違は、ＲａｎｇｅＶａｌｕｅが追加のプロパティを有し、プロパティが、一般に、パターンパブリックインターフェースに現れないことである。
IRawElementProviderFragment  −  １レベルよりも深い構造の一部である要素を公開するために、プロバイダによって実装される。子を有しない単純な１レベル構造については、代わりにＩＲａｗＥｌｅｍｅｎｔＰｒｏｖｉｄｅｒＳｉｍｐｌｅを使用することができる。フラグメントのルートノードは、ＩＲａｗＥｌｅｍｅｎｔＰｒｏｖｉｄｅｒＦｒａｇｍｅｎｔＲｏｏｔインターフェースをサポートしなければならず、ＩＲａｗＥｌｅｍｅｎｔＰｒｏｖｉｄｅｒＦｒａｇｍｅｎｔＲｏｏｔインターフェースは、ＩＲａｗＥｌｅｍｅｎｔＰｒｏｖｉｄｅｒＦｒａｇｍｅｎｔから派生し、追加のメソッドを有する。
IRawElementProviderFragmentRoot  −  ＵＩのフラグメントにおけるルート要素は、このインターフェースをサポートしなければならない。同一フラグメントの他の要素は、ＩＲａｗＥｌｅｍｅｎｔＰｒｏｖｉｄｅｒＦｒａｇｍｅｎｔインターフェースをサポートする必要がある。
IRawElementProviderFragmentRootAdviseEvents  −  オートメーションイベントを引き起こす必要があるときに通知を受けられるようにするために、ＵＩフラグメントのルート要素において実装される。
IRawElementProviderHwndOverride  −  含まれるＨＷＮＤベース要素に関する情報を提供することを望むか、またはこれを再位置決めすることを望むプロバイダによって実装される。
IRawElementProviderOverrideType  −  含まれるＨＷＮＤベース要素に関する情報を提供することを望むか、またはこれを再位置決めすることを望むプロバイダによって実装される。
IRawElementProviderSimple  −  単一の要素のプロパティを公開することを望むプロバイダによって実装される、ＵＩＡｕｔｏｍａｔｉｏｎプロバイダインターフェース。複数の要素のプロパティおよび構造を公開するには、派生ＩＲａｗＥｌｅｍｅｎｔＰｒｏｖｉｄｅｒＦｒａｇｍｅｎｔインターフェースを参照されたい。
IScrollInteropProvider  −  このスクロールパターンは、内容をスクロールすることによってユーザに可視になる可視領域の諸部分を変更する、コントロールの能力を公開する。例：Ｌｉｓｔｂｏｘ、ＴｒｅｅＶｉｅｗｓ、コントロールの可視領域より大きい領域を含む他のコントロール。スクロールバー自体は、Ｓｃｒｏｌｌａｂｌｅパターンをサポートしてはならず、ＲａｎｇｅＶａｌｕｅ パターンをサポートすることに留意されたい。サーバは、スクロールを正規化（０から１００まで）しなければならない。このパブリックインターフェースは、内容をスクロールするＵＩ要素を表す。
ISelectionInteropProvider  −  選択を管理するコンテナにおいて非Ｌｏｎｇｈｏｒｎプロバイダによって実装されるプロパティへのアクセスを提供する。
ISelectionItemInteropProvider  −  コンテナにおいて選択されたアイテムを定義し、および操作するメソッドおよびプロパティへのアクセスを提供する。ＩＳｅｌｅｃｔｉｏｎＩｎｔｅｒｏｐＰｒｏｖｉｄｅｒをサポートし、それ自体が選択可能である要素の子である論理要素でのみサポートされる。
ISortInteropProvider  −  コンテナの現在のソート順序を公開し、クライアントがプログラムによってその要素を再ソートできるようにする。いくつかのコンテナは、新しいアイテムが挿入されるときにソート順序を維持し、あるいは、更新された内容に基づいて内容を移動する（例：ソートされるＷｉｎ３２リストボックス）。他のコンテナは、新しいアイテムが挿入されたときに古くなる１回だけのソートを実行することだけができる（例：Ｅｘｃｅｌ）。
ISplitInteropProvider  −  要素内容領域を複数のペインまたは対話領域に分割する能力を公開する。
ITableInteropProvider  −  ヘッダ情報を有するグリッドを識別する。
ITableItemInteropProvider  −  ヘッダ情報を有するグリッドアイテムを公開するのに使用される。
ITextInteropProvider  −  Ｔｅｘｔパターンは、テキストを操作する, コントロールの能力を公開する。例：ＴｅｘｔＢｏｘ  ＲｉｃｈＥｄｉｔは、テキストおよびテキスト関連プロパティを含む他のコンテナを制御する。このインターフェースは、テキストを維持するＵＩ要素を表す。
ITextPointerInteropProvider  −  Ｔｅｘｔパターンは、テキストを操作するコントロールの能力を公開する。例：ＴｅｘｔＢｏｘ  ＲｉｃｈＥｄｉｔは、テキストおよびテキスト関連プロパティを含む他のコンテナを制御する。このインターフェースは、テキストを維持するＵＩ要素を表す。
IValueInteropProvider  −  値を表しているＵＩ要素を表すパブリックインターフェース。
IVisualInformationInteropProvider  −  ユーザに情報を伝えているイメージまたはアニメーションに関する情報を公開するのに使用される。
IWindowInteropProvider  −  そのオンスクリーン位置またはサイズを変更する、要素の能力ならびにビジュアル状態を変更し、およびクローズする能力を公開する。
IZoomInteropProvider  −  コントロールにおける現在のズームレベルを公開し、クライアントがプログラムによってそれを変更できるようにする。
【０１４７】
＜列挙＞
NavigateDirection  −  ＵＩＡｕｔｏｍａｔｉｏｎツリーのナビゲーションに関する指示。
RawElementProviderOverrideType  −  このプロバイダが、オーバーライドまたは非クライアント領域プロバイダのどちらとして働いているかを示す。
【０１４８】
（Ｓｅｒｉａｌｉｚａｔｉｏｎ名前空間）
Ｓｅｒｉａｌｉｚａｔｉｏｎ名前空間３２８は、ＸＭＬファイルまたは２進表現を有するファイルから、オブジェクトの階層（たとえば要素）をロードまたは保管できるパーサを提供する。このプロセスでは、オブジェクトに関連するプロパティも設定され、イベントハンドラに関連付けられる。さらに、Ｓｅｒｉａｌｉｚａｔｉｏｎ名前空間３２８は、オブジェクトをシリアライズし、デシリアライズする機能性を提供する。シリアライゼーションは、オブジェクトの生のインメモリ表現をとり、ストレージデバイス（ディスクなど）に保管するまたはネットワークを介して送信するのに適するデータのストリームを作るプロセスである。デシリアライゼーションは、逆のプロセスすなわち、データストリームをとり、データストリームからオブジェクトを作るプロセスである。デシリアライゼーションを、「構文解析」とも称し、構文解析を実装するコードを、パーサと称する。
【０１４９】
シリアライゼーションおよびデシリアライゼーションの両方が、ＸＡＭＬと称するＸＭＬフォーマット、またはＢＡＭＬと称するバイナリフォーマットなど、複数のストリーミングフォーマットをサポートする。パーサが、マークアップコンパイラと共に使用されるときに、「ＣＡＭＬ」を生成することができる場合、このＣＡＭＬは、シリアライズされたオブジェクトを生成するコードである。
【０１５０】
シリアライゼーションおよびデシリアライゼーションは、ＸＡＭＬ特徴の全範囲をサポートし、これには、標準構文、複合プロパティ、コンパクト複合構文、暗黙の子構文（implicit child syntax）、明示的な子構文（explicit children syntax）、明示的なコレクションタグを伴うコレクション構文、および暗黙のセットタグを伴うセット構文が含まれる。シリアライゼーションおよびデシリアライゼーションの両方が、完全に拡張可能である。クラスは、下記などの複数の機構を介して、どのようにシリアライズされ、デシリアライズされることを望むかを定義することができる。
・デフォルトで、クラス名が、マークアップタグ名として扱われ、プロパティおよびイベントが、同一の名前のマークアップ属性として扱われる。
・クラスは、マークアップ属性値をシリアライズし、デシリアライズする型コンバータ（Ｓｙｓｔｅｍ．ＣｏｍｐｏｎｅｎｔＭｏｄｅｌ．ＴｙｐｅＣｏｎｖｅｒｔｅｒから導出される補助オブジェクト）を定義する。
・クラスは、ＩＡｄｄＣｈｉｌｄインターフェース（構文解析）を実装し、およびＣＬＲ属性を使用して、暗黙の子をシリアライズする方法を記述することにより、暗黙の子をサポートすることができる。
・クラスは、ＤｅｓｉｇｎｅｒＳｅｒｉａｌｉｚａｔｉｏｎＶｉｓｉｂｉｌｉｔｙを使用することにより、プロパティがシリアライズ／デシリアライズできるか否かを制御でき、ＤｅｆａｕｌｔＶａｌｕｅＡｔｔｒｉｂｕｔｅメソッドおよびＳｈｏｕｌｄＰｅｒｓｉｓｔメソッドを使用することによって、特定のオブジェクトにおけるプロパティをシリアライズする必要があるか否かを制御することができる。
・あるいは、コンポーネントが、リテラルコンテンツを使用してそれ自体をシリアライズ／デシリアライズすることができ、その場合には、コンポーネントのシリアライズされた形態が、ＸＡＭＬのルールに従う必要がない（コンポーネントは、明確に形成されたＸＭＬである必要がある）。
上の例では、単語「マークアップ」を使用したが、同一の概念が、バイナリフォーマット（ＢＡＭＬ）にも適用される。
【０１５１】
第２の拡張性機構は、「デザイナフック（desibner hooks）」であり、これを用いると、別のコードをシリアライザおよびデシリアライザにプラグインできるようになり、そのコードが、構文解析中およびシリアライズ中に属性を挿入でき、インターセプトできるようになる。この機構を用いると、新しいマークアップ機能を作成でき、既存構文のカスタム処理が可能になる。マークアップコンパイラは、デザイナフックを使用してＣＡＭＬを生成する。
【０１５２】
シリアライゼーションおよびデシリアライゼーションは、さまざまなオブジェクトをサポートする（たとえば、Ｓｙｓｔｅｍ．Ｏｂｊｅｃｔから派生する任意のクラス）。Ｓｙｓｔｅｍ．Windows．ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔから駆動されるクラスは、依存性プロパティを定義することができ、この依存性プロパティは、下記の２つの特徴を得る。
・シリアライゼーションは、プロパティをシリアライズする必要があるかどうかを自動的に知らせることができる（ＤｅｆａｕｌｔＶａｌｕｅＡｔｔｒｉｂｕｔｅ／ＳｈｏｕｌｄＰｅｒｓｉｓｔの必要がない）。
・パーサが、より高速にロードするための、ある最適化を実行することができる。
【０１５３】
シリアライゼーションおよびデシリアライゼーションは、ＸＭＬ名前空間と、ＸＭＬ名前空間をＣＬＲ名前空間にマッピングする定義ファイルをサポートする。Ｍａｐｐｅｒクラスを用いると、ＸＭＬ名前空間およびタグ名からＣＬＲクラスへの任意のマッピングを定義できるようになる。
【０１５４】
下のテーブルに、Ｓｙｓｔｅｍ．Windows．Ｓｅｒｉａｌｉｚａｔｉｏｎ名前空間によって公開されるメンバ例をリストする。
【０１５５】
＜クラス＞
CustomXamlDeserializer  −  デシリアライゼーションヘルパの基本クラス。パーサの設計時または編集時のデシリアライゼーションディレクションが必要な場合には、これをサブクラス化しなければならない。
CustomXamlSerializer  −  シリアライゼーションヘルパの基本クラス。シリアライザの設計時または編集時のシリアライゼーションディレクションが必要な場合には、これをサブクラス化しなければならない。
DependencyPropertyContext  −  シリアライズされている現在のプロパティに関するコンテキスト情報。ＸａｍｌＳｅｒｉａｌｉｚｅｒは、オブジェクトにおける任意のプロパティをシリアライズする前に、このクラスのインスタンスをコンテキストスタックに置く責任を負う。
DPSerializationVisibilityAttribut  −  デザイナシリアライザが見る、このプロパティまたはメソッドの可視性を指定する。
EntityContext  −  ＯｂｊｅｃｔＣｏｎｔｅｘｔおよびＰｒｏｐｅｒｔｙＣｏｎｔｅｘｔの抽象基本クラス。
LayoutAttribute  −  タグのＬａｙｏｕｔＴｙｐｅを指定する属性。
Mapper  −  拡張マークアップ言語（ＸＭＬ）名前空間ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）とＭｉｃｒｏｓｏｆｔ（登録商標）．ＮＥＴ名前空間型の間のマッピングを処理する。
NamespaceMap  −  ｘｍｌ  ＮａｍｅｓｐａｃｅＵｒｉと、ｕｒｔＮａｍｅｓｐａｃｅが見るＡｓｓｅｍｂｌｙの間のマッピングのためにＭａｐｐｅｒが使用する情報を含む。
ObjectContext  −  シリアライズされつつある現在のオブジェクトに関するコンテキスト情報。ＸａｍｌＳｅｒｉａｌｉｚｅｒは、このクラスのインスタンスを、ＳｅｒｉａｌｉｚｅＯｂｊｅｃｔ内のコンテキストスタック上に置く責任を負う。
Parser  −  「Ａｖａｌｏｎ」ツリーの作成に使用される、「Ａｖａｌｏｎ」要素解析クラス。
ParserContext  −  Ｐａｒｓｅｒが必要とするすべてのコンテキスト情報を提供する。
PropertyContext  −  シリアライズされつつある現在のプロパティに関するコンテキスト情報。ＸａｍｌＳｅｒｉａｌｉｚｅｒは、オブジェクトにおけるプロパティをシリアライズする前に、このクラスのインスタンスをコンテキストスタック上に置く責任を負う。
TextContext  −  シリアライズされつつある現在のオブジェクトに関するコンテキスト情報。ＸａｍｌＳｅｒｉａｌｉｚｅｒが、このクラスのインスタンスをＳｅｒｉａｌｉｚｅＯｂｊｅｃｔのコンテキストスタック上に置く責任を負う。
XamlAttributeNode  −  ＸａｍｌＡｔｔｒｉｂｕｔｅＮｏｄｅ。
XamlClrArrayPropertyNode  −  ＸａｍｌＣｌｒＡｒｒａｙＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlClrComplexPropertyNode  −  ｃｌｒオブジェクトの子として指定されたオブジェクトである、ＸａｍｌＣｌｒＣｏｍｐｌｅｘＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlClrEventNode  −  任意のオブジェクトにおけるｃｌｒイベントであるＸａｍｌＣｌｒＥｖｅｎｔＮｏｄｅ。これが、ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔまたは任意の他のオブジェクト型に対するものである場合があることに留意されたい。
XamlClrObjectNode  −  ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔ以外の何かであるＸａｍｌＣｌｒＯｂｊｅｃｔＮｏｄｅ。
XamlClrPropertyNode  −  任意のオブジェクトにおけるｃｌｒプロパティであるＸａｍｌＣｌｒＰｒｏｐｅｒｔｙＮｏｄｅ。これが、ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔまたは任意の他のオブジェクト型に対するものである場合があることに留意されたい。
XamlClrPropertyParseException  −  特定の例外を構文解析するパーサプロパティの例外クラス。
XamlComplexDependencyPropertyNode  −  ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔのｘｍｌ子として指定されたＤｅｐｅｎｄｅｎｃｙＰｒｏｐｅｒｔｙであるＸａｍｌＣｏｍｐｌｅｘＤｅｐｅｎｄｅｎｃｙＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlComplexPropertySerializer  −  ＸａｍｌＣｏｍｐｌｅｘＰｒｏｐｅｒｔｙＳｅｒｉａｌｉｚｅｒは、ＸＭＬ属性としてシリアライズすることができないプロパティをシリアライズするのに使用される。ＣｏｍｐｌｅｘＰｒｏｐｅｒｔｉｅｓは、その代わりに、要素内のマークアップとしてシリアライズされる。
XamlDefAttributeNode  −  ＸａｍｌＤｅｆＡｔｔｒｉｂｕｔｅＮｏｄｅ。
XamlDefTagNode  −  ＸａｍｌＤｅｆＴａｇＮｏｄｅ。
XamlDependencyObjectSerializer  −  アニメーションを含むようにＸａｍｌＳｅｒｉａｌｉｚｅｒを拡張する（Ｅｌｅｍｅｎｔｓに固有）。
XamlDependencyPropertyNode  −ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔにおける普通の、単純なＤｅｐｅｎｄｅｎｃｙＰｒｏｐｅｒｔｙであるＸａｍｌＤｅｐｅｎｄｅｎｃｙＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlDependencyPropertyParseException  −  特定の例外を構文解析するパーサダイナミックプロパティの例外クラス。
XamlDesignerSerializerAttribute  −  所与のクラスのシリアライザの型名を指定する。
XamlDocumentNode  −  ＸａｍｌＤｏｃｕｍｅｎｔノード。
XamlElementNode  −  ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔを表すＸａｍｌＥｌｅｍｅｎｔＮｏｄｅ。これは、Ｄｅｐｅｎｄｅｎｃｙプロパティを関連付けることができるので、ＣＬＲオブジェクトと異なる。
XamlEndAttributesNode  −  ＸａｍｌＥｎｄＡｔｔｒｉｂｕｔｅｓＮｏｄｅ。
XamlEndClrArrayPropertyNode  −  ＸａｍｌＥｎｄＣｌｒＡｒｒａｙＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlEndClrComplexPropertyNode  −  ＸａｍｌＥｎｄＣｌｒＣｏｍｐｌｅｘＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlEndClrObjectNode  −  ＸａｍｌＥｎｄＣｌｒＯｂｊｅｃｔＮｏｄｅ。
XamlEndComplexDependencyPropertyNode  −  ＸａｍｌＥｎｄＣｏｍｐｌｅｘＤｅｐｅｎｄｅｎｃｙＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlEndDocumentNode  −  ＸａｍｌＥｎｄＤｏｃｕｍｅｎｔＮｏｄｅ。
XamlEndElementNode  −  ＸａｍｌＥｎｄＥｌｅｍｅｎｔＮｏｄｅ。
XamlEndIDictionaryPropertyNode  −  ＸａｍｌＥｎｄＩＤｉｃｔｉｏｎａｒｙＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlEndIListPropertyNode  −  ＸａｍｌＥｎｄＩＬｉｓｔＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlEndResourceNode  −  ＸａｍｌＥｎｄＲｅｓｏｕｒｃｅＮｏｄｅ。
XamlEndStartElementNode  −  ＸａｍｌＥｎｄＳｔａｒｔＥｌｅｍｅｎｔＮｏｄｅ。
XamlIDictionaryPropertyNode  −  ＸａｍｌＩＤｉｃｔｉｏｎａｒｙＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlIEnumeratorSerializer  −  プロパティによってポイントされるノードコレクションをシリアライズする。
XamlIListPropertyNode  −  ＸａｍｌＩＬｉｓｔＰｒｏｐｅｒｔｙＮｏｄｅ。
XamlIListSerializer  −  プロパティによってポイントされるＩＬｉｓｔをシリアライズする。
XamlIncludeTagNode  −  ＸａｍｌＩｎｃｌｕｄｅＴａｇＮｏｄｅ。
XamlLanguageNode  −  ＸａｍｌＬａｎｇｕａｇｅＮｏｄｅ。
XamlLiteralContentNode  −  ＸａｍｌＬｉｔｅｒａｌＣｏｎｔｅｎｔＮｏｄｅ。
XamlNode  −  他のすべてがその中で導出される基本ノード。
XamlParseException  −  パーサ固有例外の例外クラス。
XamlPIMappingNode  −  ｘｍｌ名前空間をｃｌｒ名前空間およびアセンブリにマッピングするＸａｍｌＰＩＭａｐｐｉｎｇＮｏｄｅ。
XamlResourceNode  −  ＸａｍｌＲｅｓｏｕｒｃｅＮｏｄｅ。
XamlRootSerializer  −  ＸａｍｌＳｅｒｉａｌｉｚｅｒは、論理ツリーを持続するのに使用される。
XamlRoutedEventNode  −  ＸａｍｌＲｏｕｔｅｄＥｖｅｎｔＮｏｄｅ。
XamlSerializationCallbackException  −  シリアライゼーションコールバック固有の例外の例外クラス。
XamlSerializer  −  ＸａｍｌＳｅｒｉａｌｉｚｅｒは、論理ツリーを持続するのに使用される。
XamlSerializerBase  −  共通のヘルパ機能を提供する、ＸａｍｌＳｅｒｉａｌｉｚｅｒの基本クラス。
XamlTextNode  −  ＸａｍｌＴｅｘｔＮｏｄｅ。
XamlTextNodeSerializer  −  特別な場合のＴｅｘｔＮｏｄｅｓにＸａｍｌＳｅｒｉａｌｉｚｅｒをオーバーライドする。
XamlXmlnsPropertyNode  −  ＸａｍｌＸｍｌｎｓＰｒｏｐｅｒｔｙＮｏｄｅ。
XmlAttributes  −  ＤｅｐｅｎｄｅｎｃｙＯｂｊｅｃｔのＸＭＬ固有属性をカプセル化するクラス。
XmlnsDictionary  −  ＸＭＬ名前空間マッピングを制御する辞書。
XmlParserDefaults  −  Ａｖａｌｏｎによって使用されるパブリッククラス。
【０１５６】
＜インターフェース＞
IAddChild  −  ＩＡｄｄＣｈｉｌｄインターフェースは、プロパティに直接にマッピングされない、マークアップにおけるタグの下のオブジェクトまたはテキストを可能にする、オブジェクトの構文解析に使用される。
IBamlSerialize  −  ＢＡＭＬファイルに書き込まれるダイナミックプロパティのシリアライゼーションインターフェース。
ILoaded  −  このインターフェースは、ＩｓＬｏａｄｅｄという名前の読取専用ブールプロパティ、Ｌｏａｄｅｄという名前のｃｌｒイベントハンドラ、ならびにＤｅｆｅｒＬｏａｄメソッドおよびＥｎｄＤｅｆｅｒＬｏａｄメソッドを提供する。
IPageConnector  −  コンパイルされたコンテンツにおいてＢａｍｌＲｅａｄｅｒによって内部的に使用されるメソッドを提供する。
IParseLiteralContent  −  リテラルコンテンツ  −  それ自体のパーサおよびセーバを有するコンテンツ。
IUriContext  −  ＩＵｒｉＣｏｎｔｅｘｔインターフェースは、（Ｆｒａｍｅ、ＰａｇｅＶｉｅｗｅｒのような）要素および（ＩｍａｇｅＤａｔａ  ＴｙｐｅＣｏｎｖｅｒｔｅｒのような）型コンバータに、それらについてベースｕｒｉがパーサ（ｘａｍｌ、ｂａｍｌ、およびｃａｍｌの場合にはｃｏｄｅｇｅｎ）によって設定されるようにする方法を与える。要素は、このベースｕｒｉを使用してナビゲートすることができる。
【０１５７】
＜列挙＞
LayoutType  −  Ｏｂｊｅｃｔに関連付けることができるＬａｙｏｕｔＴｙｐｅ。
SerializationAction  −  ＣｕｓｔｏｍＸａｍｌＳｅｒｉａｌｉｚｅｒヘルパまたはＣｕｓｔｏｍＸａｍｌＤｅｓｅｒｉａｌｉｚｅｒヘルパにコールバックした後に、シリアライザまたはデシリアライザが行うアクションを記述する。
SerializationErrorAction  −  エラーが報告されたときにシリアライザまたはデシリアライザが行うアクションを記述する。
XamlNodeType  −  ＸａｍｌＮｏｄｅの識別子。
【０１５８】
（Ｉｎｔｅｒｏｐ名前空間）
Ｉｎｔｅｒｏｐ名前空間３３０は、他のオペレーティングシステムまたはコンピューティングプラットフォームとのインターオペラビリティを可能にするクラスのセットを提供する。下のテーブルに、Ｓｙｓｔｅｍ．Windows．Ｉｎｔｅｒｏｐ名前空間によって公開されるメンバ例をリストする。
【０１５９】
＜クラス＞
ApplicationProxy  −  ＡｐｐＤｏｍａｉｎにおよぶＡｐｐｌｉｃａｔｉｏｎオブジェクトとの相互作用を可能にし、異なるスレッドにおいてＡｐｐｌｉｃａｔｉｏｎ作成を可能にする、ＡｐｐｌｉｃａｔｉｏｎクラスのＭａｒｓｈａｌＢｙＲｅｆＯｂｊｅｃｔラッパー。
DocobjHost  −  ブラウザホスティングのためにＤｏｃｏｂｊサーバの管理される部分を実装するのに使用されるＩｎｔｅｒｏｐクラス。
PresentationInteropHelper  −  ＶｉｓｕａｌＩｎｔｅｒｏｐＨｅｌｐｅｒ。
WindowInteropHelper  −  白黒レガシウインドウおよびＡｖａｌｏｎウインドウの相互作用を助けるＡｖａｌｏｎ  ＷｉｎｄｏｗＩｎｔｅｒｏｐＨｅｌｐｅｒクラスを実装する。
【０１６０】
＜委任＞
AppEntryPoint  −  Ａｐｐｌｉｃａｔｉｏｎコードのエントリポイントメソッドの委任。
【０１６１】
（Ｆｏｒｍｓ．Ｉｎｔｅｒｏｐ名前空間）
Ｆｏｒｍｓ．Ｉｎｔｅｒｏｐ名前空間３３２は、アプリケーションがフォーム制御動作をホスティングできるようにする要素を提供する。
【０１６２】
（Ｓｙｓｔｅｍ．ＩＯ．ＣｏｍｐｏｕｎｄＦｉｌｅ名前空間）
別の名前空間Ｓｙｓｔｅｍ．ＩＯ．ＣｏｍｐｏｕｎｄＦｉｌｅ（図３に図示せず）は、さまざまな文書配布可能ファイルが保管される複合ファイルを使用するサービスを提供する。これらのサービスを用いると、内容の暗号化および圧縮が可能になる。これらのサービスは、リフロー可能文書および固定フォーマット文書など、同一の内容の複数の翻訳のストレージもサポートする。下のテーブルに、Ｓｙｓｔｅｍ．ＩＯ．ＣｏｍｐｏｕｎｄＦｉｌｅ名前空間によって公開されるメンバ例をリストする。
【０１６３】
＜クラス＞
CertificateHelper  −  署名するためのデジタル証明書を得るヘルパ。
CompoundFileByteRangeReference  −  複合ファイルストリーム内のバイトの範囲を参照するサブストリーム参照コンポーネント。
CompoundFileIndexReference  −  複合ファイルストリーム内の論理エントリを参照するサブストリーム参照コンポーネント。
CompoundFileReference  −  複合ファイルの一部への参照。
CompoundFileReferenceCollection  −  複合ファイル参照の読取専用コレクション。
CompoundFileStorageReference  −  コンテナストレージへの論理参照。
CompoundFileStreamReference  −  コンテナストリームへの論理参照。
CompressionTransform  −  複合ファイルデータ空間で使用されるＣｏｍｐｒｅｓｓｉｏｎＴｒａｎｓｆｏｒｍ。
ContainerHelper  −  このクラスは、ロードされたＡｐｐｌｉｃａｔｉｏｎインスタンスに基づいて、ユーザが現在のコンテナのＳｔｏｒａｇｅＲｏｏｔにアクセスできるようにする。
DataSpaceManager  −  「Ａｖａｌｏｎ」コンテナの特定のインスタンス内のデータ空間を操作するのに使用される。これは、データ圧縮およびデータ暗号化などの特徴を使用可能にするためにデータ変換モジュールをコンテナにプラグインする方法である。
DigitalSignature  −  クライアントが既存のデジタル署名を検査でき、検証できるようにする読取専用クラス。
DigitalSignatureCollection  −  デジタル署名の読取専用コレクション。
DigitalSignatureManager  −  このクラスは、複合ファイル内のデジタル署名の作成、持続、および操作に使用される。
DocumentSummaryInfo  −  標準ＯＬＥ文書サマリ情報プロパティセットにおけるプロパティに対応するプロパティ要素を含む。
FormatVersion  −  バージョンオブジェクトを操作するクラス。
InstanceDataFormatException  −  ディスクにおけるＤｒｍＴｒａｎｓｆｏｒｍＩｎｓｔａｎｃｅＤａｔａのフォーマットが無効であるときにスローされる例外。
OleProperty  −
PropSet  −
RenditionInfo  −  翻訳の情報を操作するクラス。このクラスは、翻訳にストレージおよびストリームを追加し、その翻訳から除去するＡＰＩも提供する。
RenditionInfoCollection  −  ＲｅｎｄｉｔｉｏｎＩｎｆｏオブジェクトの強く型付けされたコレクション。
RenditionManager  −  コンテナ内の翻訳を操作するクラス。
RightsManagementEncryptionTransform  −  ＩＤａｔａＴＲａｎｓｆｏｒｍインターフェースを実装し、したがって、コンテンツのＲＭ暗号化および復号を実装するコンテナデータ変換として使用できるクラス。
StorageInfo  −  コンテナファイル内のストレージを操作するクラス。
StorageRoot  −  メインコンテナクラスを表す。複合ファイルごとに１つのＳｔｏｒａｇｅＲｏｏｔのインスタンスがある。
StreamInfo  −  コンテナファイル内のストリームを操作するためのアクセスを提供する。
SummaryInfo  −
TransformEnvironment  −  このクラスの１つのインスタンスが、データスペースマネージャによって提供される環境と相互作用するための変換オブジェクトの手段として、各変換オブジェクトに与えられる。変換環境と相互作用する必要がない場合に、所与のＴｒａｎｓｆｏｒｍＥｎｖｉｒｏｎｍｅｎｔオブジェクトを破棄することを選択できるので、変換オブジェクトが所与のＴｒａｎｓｆｏｒｍＥｎｖｉｒｏｎｍｅｎｔオブジェクトにおける参照を保持することは、必須ではない。
TransformInitializationEventArgs  −  イベントハンドラに引数を渡すパブリッククラス。
UseLicenseInfo  −  Ｔｕｎｇｓｔｅｎサーバから返される使用ライセンスを記述する情報を含む。
UseLicenseInfoEnumerator  −  ＤＲＭ  Ｔｒａｎｓｆｏｒｍのインスタンスデータに保管された使用ライセンスに関する列挙を表す。
VersionTuple  −  メジャー番号およびマイナー番号からなるバージョンタプルのクラス。
XmlDigitalSignatureProcessor  −  Ｗ３Ｃ勧告に従ってデータに署名し、検証するためにデジタル署名マネージャによって使用される署名プロセッサ。
【０１６４】
＜インターフェース＞
IDataTransform  −  すべてのデータ変換オブジェクトによって実装されなければならないインターフェース。
ILicenseStorage  −  このインターフェースは、このインターフェースのカスタム実装を構築することによってＲＭＴｒａｎｓｆｏｒｍとＲＭＷｉｚａｒｄとを分離するのに使用される。我々は、ＲＭＴｒａｎｓｆｏｒｍの使用を課さずに、サードパーティがＲＭＷｉｚａｒｄを利用できるようにする。
ISignatureProcessor  −  署名プロセッサインターフェース。
IUnknownRCW  −  このインターフェースは、すべてのＣＯＭインターフェース（Ｒｕｎｔｉｍｅ  ＣＯＭ  Ｗｒａｐｐｅｒによってラップされる）をＩＵｎｋｎｏｗｎとして不透明に処理するのに使用される。
【０１６５】
＜列挙＞
DigitalSignatureProcessor  −  事前定義のデジタル署名プロセッサ。
SignatureProcessorNameType  −  署名プロセッサのタイプ。
TransformIdentifierTypes  −  変換オブジェクトに命名するとき、渡されるストリングを、いくつかの方法の中の１つにおいて解釈することができる。この列挙型は、識別ストリングのセマンティックスを指定するのに使用される。
【０１６６】
＜委任＞
InvalidSignatureHandler  −  ハッシュ検証に失敗した署名によって呼び出される。
TransformInitializeEventHandler  −  変換を初期化する委任メソッド。
【０１６７】
（Ｓｙｓｔｅｍ．Windows．Ａｕｔｏｍａｔｉｏｎ名前空間）
Ｓｙｓｔｅｍ．Windows．Ａｕｔｏｍａｔｉｏｎ名前空間には、アクセシビリティおよびユーザインターフェースオートメーションをサポートするのに使用されるメンバが含まれる。アクセシビリティシステムには、クライアントサイドとプロバイダサイドが含まれる。ツールのシステムに、ユーザインターフェース情報を探すクライアントオートメーションクラスを含むクライアントサイドオートメーションツールが含まれる。クライアントオートメーションクラスに、イベント登録ツールおよび論理要素ディスカバリツールが含まれる。ツールのセットに、さらに、クライアントにユーザインターフェース情報を提供するプロバイダサイドオートメーションツールが含まれる。プロバイダサイドオートメーションツールに、クライアントにイベント情報を提供するツールを有するオートメーションプロバイダクラスが含まれる。
【０１６８】
クライアントオートメーションクラスは、１つまたは複数のクライアントにＵＩオートメーションメソッドを提供する。クライアントオートメーションクラスに、いかなるＵＩ要素にも固有でないメソッドが含まれる。クライアントオートメーションクラスは、点、ウインドウハンドル、またはデスクトップルート要素から論理要素または生の要素を得るメソッドを提供することができる。クライアントオートメーションクラスは、さらに、論理要素ベースの入力基準を見つけるメソッドを提供することができる。クライアントオートメーションクラスに、イベント通知に関する登録および登録解除のメソッドも含まれることが好ましい。オートメーションクラスは、プロキシＤＬＬのロード、プロパティおよび制御パターンのローカライズされた名前の検索、ならびに要素比較の実行のヘルパ関数を備えることが好ましい。クライアントオートメーションクラスには、クライアントがイベントをリスンするメソッドも含まれる。下のテーブルに、Ｓｙｓｔｅｍ．Windows．Ａｕｔｏｍａｔｉｏｎ名前空間によって公開されるメンバ例をリストする。
【０１６９】
＜クラス＞
ApplicationWindowPattern  −  通常はトップレベルアプリケーションウインドウに関連する挙動および情報を公開する。クライアントは、このクラスを使用して、アプリケーションのＭＤＩ（ｍｕｌｔｉｐｌｅ  ｄｏｃｕｍｅｎｔ  ｉｎｔｅｒｆａｃｅ）子を並べて表示または重ねて表示し、タスクバー上のボタンを検索し、ツールバーおよびメニューなどのユーザインターフェースの周知のセクションを突き止めることができる。
AssociatedInformationPattern  −  他のオブジェクトを表すＵＩ要素のセマンティックおよびメタデータを公開する。
Automation  −  クライアントのユーザインターフェース（ＵＩ）オートメーションメソッド（支援技術または自動化テストスクリプト）を含む。これらのメソッドは、特定の要素に固有ではない。
AutomationEvent  −  使用してはならない。このクラスは、将来のバージョンで除去される。
AutomationEventArgs  −  パターンまたはカスタムイベント引数クラス。
AutomationFocusChangedEventArgs  −  フォーカスイベント引数クラス。
AutomationIdentifier  −  オブジェクト識別ベース識別子の基本クラス。このクラスは、効果的に抽象であり、派生クラスだけがインスタンス化される。
AutomationIdentifierProxy  −  ＡｕｔｏｍａｔｉｏｎＩｄｅｎｔｉｆｉｅｒをデシリアライズするのに使用される内部クラス。直接に使用してはならない。
AutomationPattern  −  使用してはならない。このクラスは、将来のバージョンで除去される。
AutomationPermission  −  ＵＩ要素へのアクセスに関するパーミッションのセットを提供する。このクラスを継承することはできない。
AutomationPermissionAttribute  −  ＡｕｔｏｍａｔｉｏｎＰｅｒｍｉｓｓｉｏｎＡｔｔｒｉｂｕｔｅのメソッドおよびプロパティを提供する。このクラスを継承することはできない。
AutomationProperty  −  使用してはならない。このクラスは、将来のバージョンで除去される。
AutomationPropertyChangedEventArgs  −  ＰｒｏｐｅｒｔｙＣｈａｎｇｅｄイベント引数クラス。
AutomationTextAttribute  −  オートメーションテキスト属性の識別子。
AutomationTextPointer  −  テキスト内の文字の位置を表す。ＡｕｔｏｍａｔｉｏｎＴｅｘｔＰｏｉｎｔｅｒは、アクセステキストおよびテキストナビゲーションに関するメソッドおよびプロパティを提供する。
AutomationTextRange  −  選択物の取得、設定、追加、および削除に使用される。
AutomationTextSelection  −  目的：ＡｕｔｏｍａｔｉｏｎＴｅｘｔＳｅｌｅｃｔｉｏｎオブジェクトは、すべてのテキスト選択管理を処理する。挿入ポインタがその上にある選択物が、アクティブ選択物である。使用例：クライアントが、選択物の追加、除去、修正、または設定を求めるときに使用される。クライアントは、ＡｕｔｏｍａｔｉｏｎＴｅｘｔＳｅｌｅｃｔｉｏｎを介して、現在何が選択されているかを知ることもできる。
AutomationTextUnit  −  オートメーションＴｅｘｔＵｎｉｔの識別子。
BasePattern  −  内部クラス。
DockPattern  −  ランタイムでのドック状態を変更する、要素の能力を公開する。
ElementNotEnabledException  −  この例外は、クライアントコードが、現在イネーブルされていない要素またはコントロールの操作を試みたときにスローされる。
ElementPath  −  ＥｌｅｍｅｎｔＰａｔｈは、アプリケーションプロバイダによって前に記録され、修正され、または全体を作成された論理要素に後でリターンするのに必要な基準を提供する。
ExpandCollapsePattern  −  展開してより多くのコンテンツを表示する、または縮小してコンテンツを隠す、コントロールの能力を公開する。例に、メニューボタン、スタートボタン、Windows(登録商標)  Ｅｘｐｌｏｒｅｒ内のツリービューアイテム、およびコンボボックスが含まれる。
GridItemPattern  −  グリッドの要素を公開する。クライアントが、グリッドアイテムの座標をすばやく判定できるようにする。
GridPattern  −  基本的なグリッド機能性、サイズ、および指定されたセルへのナビゲーションを公開する。
HierarchyItemPattern  −  コントロールのユーザインターフェース要素の論理ツリーでの関係と独立である、それらの要素の間の階層関係を公開する。
Input  −  マウス入力およびキーボード入力を送るメソッドを提供する。
InvokePattern  −  単一の曖昧でないアクションを実行するオブジェクト（コントロール）によって実装される。これらのコントロールのほとんどが、状態を維持しない。これらを呼び出すことによって、アプリケーションでのアクションが開始される。このインターフェースを実装するコントロールの例に、プッシュボタン、ツールバーボタン、メニューアイテム、ハイパーリンク、チェックボックス、ラジオボタン、ツリービューコントロールの＋記号、およびWindows(登録商標)  Ｅｘｐｌｏｒｅｒのリストビューアイテムが含まれる。
LogicalElement  −  実装（「Ａｖａｌｏｎ」、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎ３２（登録商標））に関わりなく、論理ツリー内のＵＩ要素を表す。
LogicalStructureChangedEventArgs  −  論理構造変更イベント引数クラス。
MultipleViewPattern  −  情報、データ、または子の同一のセットの複数の表現の間で切り替える、要素の能力を公開する。例に、ＬｉｓｔＶｉｅｗ（サムネイル、タイル、アイコン、リスト、詳細）、Ｅｘｃｅｌチャート（パイ、直線、バー、式を有するセル値）、およびＯｕｔｌｏｏｋ  Ｃａｌｅｎｄａｒ（年、月、週、日）が含まれる。
NoClickablePointException  −  引数の値が、ＧｅｔＣｌｉｃｋａｂｌｅＰｏｉｎｔによって定義されるその値の許容範囲外であるときにスローされる例外。たとえば、境界長方形が空であるか、幅または高さを有しないか、その時点でＬｏｇｉｃａｌＥｌｅｍｅｎｔが呼び出されたものと同一でないとき。
ProxyAssemblyNotLoadedException  −  この例外は、プロキシアセンブリのロードに問題があるときにスローされる。これは、Ａｕｔｏｍａｔｉｏｎ．ＲｅｇｉｓｔｅｒＰｒｏｘｙＡｓｓｅｍｂｌｙに応答して、または最初のｈｗｎｄベースＬｏｇｉｃａｌＥｌｅｍｅｎｔに出会うときのデフォルトプロキシのロードのときに発生する可能性がある。
RangeValuePattern  −  有限の範囲内に値を管理する、コントロールの能力を公開する。これは、コントロールの有効な最小値および最大値ならびに現在の値を伝える。
RawElement  −  生要素ツリー内の要素を表す。
ScrollPattern  −  値を表しているＵＩ要素を表す。
SelectionItemPattern  −  選択物を管理するコンテナ内の個々のアイテムを表す。ＵＩＡｕｔｏｍａｔｉｏｎクライアントは、このクラスを使用して、ＳｅｌｅｃｔｉｏｎＩｔｅｍＰａｔｔｅｒｎコントロールパターンをサポートするＵＩ要素に関する情報を得るか、そのような要素を操作する。例に、リストボックスまたはツリービュー内のアイテムなど、ＳｅｌｅｃｔｉｏｎＰａｔｔｅｒｎコントロールパターンをサポートするコントロール内で選択できるいかなるアイテムも含まれる。
SelectionPattern  −  選択物を管理するコンテナを表す。ＳｅｌｅｃｔｉｏｎＰａｔｔｅｒｎコントロールパターンをサポートするユーザインターフェース要素に関する情報を得るか、そのような要素を操作するのに、ＵＩオートメーションクライアントによって使用される。
SortPattern  −  コンテナの現在のソート順序を公開し、クライアントがプログラムによって要素を再ソートできるようにする。
SplitPattern  −  隣接ウインドウを作成することによってそれ自体のクローンを作成できるウインドウを表す。
TableItemPattern  −  ヘッダ情報を有するグリッドアイテムを表す。
TablePattern  −  ヘッダ情報を有するグリッドを表す。
TextPattern  −  エディットコントロールなどのテキストを表す。
TopLevelWindowEventArgs  −  ＴｏｐＬｅｖｅｌＷｉｎｄｏｗＥｖｅｎｔＡｒｇｓイベント引数クラス。
TreeLoadEventArgs  −  ＴｒｅｅＬｏａｄＥｖｅｎｔＡｒｇｓイベント引数クラス。
ValuePattern  −  ラジオボタン、トグルボタン、チェックボックス、エディットボックス、ＲＧＢカラー値、およびチェックマークを付けられるメニューアイテムなどの範囲に及ばないコントロールの値を表す。
VisualInformationPattern  −  ダウンロード中の文書を表すＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒのなびく旗もしくはスピンする地球、またはコピーが進行中であることを示すWindows(登録商標)  Ｅｘｐｌｏｒｅｒの飛ぶ紙など、ユーザに情報を伝えるイメージまたはアニメーションに関する情報を公開する。
WindowPattern  −  オンスクリーンの位置またはサイズを変更する、要素の能力を公開する。例に、トップレベルアプリケーションウインドウ（ＷｏｒｄまたはWindows(登録商標)  Ｅｘｐｌｏｒｅｒ）、Ｏｕｔｌｏｏｋのメインウインドウペイン（フォルダ、電子メールメッセージ、タスク）、およびＭＤＩ子ウインドウが含まれる。
ZoomPattern  −  コントロールの現在のズームレベルを公開し、クライアントがプログラムによってこれを変更できるようにする。
【０１７０】
＜列挙＞
AutomationPermissionFlag  −  ＡｕｔｏｍａｔｉｏｎＰｅｒｍｉｓｓｉｏｎオブジェクトのアクセスフラグを含む。
ChildArrangement  −  子を配置できる異なる方法。
DockPosition  −  ドック可能なウインドウがはりつくコンテナのエッジ。
ExpandCollapseState  −  展開／縮小状態を示すためにＥｘｐａｎｄＣｏｌｌａｐｓｅパターンによって使用される。
GetDataOptions  −  ＧｅｔＤａｔａのオプション。
HierarchyItemState  −  階層アイテムの状態を示す列挙：縮小、展開、または部分的展開。
ItemCheckState  −  チェックボックス、ラジオボタン、および類似するコントロールの状態を示す列挙。
LoadState  −  ツリー状態フラグ。
LogicalMapping  −  生ツリー内のノードが論理ツリーで表示されるかどうかを示す値。
ProxyFlags  −  プロパティを要求した結果を示すのに使用される列挙。
RowOrColumnMajor  −  このテーブル内のデータが行または列によって最もよく提示されるかどうか。
ScopeFlags  −  イベントをリスンするときにスコープを定義するのに使用されるフラグ。
ScrollAmount  −  スクロールの方向（順方向または逆方向）および量（ページまたは行）を示すためにＳｃｒｏｌｌＰａｔｔｅｒｎによって使用される。
SendMouseInputFlags  −  ＳｅｎｄＭｏｕｓｅＩｎｐｕｔのフラグ。このフラグは、移動が行われたか否か、またはボタンが押されるか離されたか否かを示す。
SplitStyles  −  ウインドウを分割できる方向のフラグ。
StructureChangeType  −  論理ツリーの構造の変更を示すフラグ。
TextPointerGravity  −  グラビティによって、テキストがＡｕｔｏｍａｔｉｏｎＴｅｘｔＰｏｉｎｔｅｒに挿入されるときのＡｕｔｏｍａｔｉｏｎＴｅｘｔＰｏｉｎｔｅｒの配置が決定される。グラビティは、常にテキストポインタの観点から、すなわち、自分が文字の前にいるか、自分が文字の後にいるかである。ユーザがテキストポインタ位置に文字を挿入するときに、「前」は、ポインタが新しい文字の前に置かれることを意味し、「後」は、ポインタが新しい文字の後に置かれることを意味する。
WindowChangeType  −  トップレベルウインドウ内の変更を示すフラグ。
WindowInteractionState  −  ユーザ対話に関するウインドウの現在の状態。
WindowVisualState  −  ウインドウのビジュアル状態を記述するのに使用される状態。ＷｉｎｄｏｗＶｉｓｕａｌＳｔａｔｅは、Windows(登録商標)ｔａｔｅのＯｆｆｉｃｅおよびＨＴＭＬ定義に従う。
【０１７１】
＜構造体＞
MatchCondition  −  ＦｉｎｄＬｏｇｉｃａｌＥｌｅｍｅｎｔまたはＦｉｎｄＲａｗＥｌｅｍｅｎｔを使用して要素を見つけるための基準を指定する。
NameAndData  −  名前、オブジェクトとしてのデータ、およびストリングとしてのデータを含む。
ProxyDescription  −  プロキシに関する情報を含む構造体。
SortInformation  −  ソートに使用される情報。
【０１７２】
＜委任＞
AutomationEventHandler  −  ＡｕｔｏｍａｔｉｏｎＥｖｅｎｔｓを処理する委任。
AutomationFocusChangedEventHandler  −  フォーカス変更イベントを処理する委任。
AutomationPropertyChangedEventHandler  −  ＡｕｔｏｍａｔｉｏｎＰｒｏｐｅｒｔｙ変更イベントを処理する委任。
LogicalStructureChangedEventHandler  −  論理構造変更イベントを処理する委任。
ProxyFactoryCallback  −  ＨＷＮＤハンドラによって実装され、指定されたウインドウのプロキシを要求するためにＵＩオートメーションフレームワークによって呼び出される。サポートされる場合にプロキシを、サポートされない場合にｎｕｌｌを返さなければならない。
TopLevelWindowEventHandler  −  トップレベルウインドウイベントを処理する委任。
【０１７３】
（Ｓｙｓｔｅｍ．Windows．Ｉｎｋ名前空間）
Ｓｙｓｔｅｍ．Windows．Ｉｎｋ名前空間は、電子インク処理システムをサポートするクラスを提供する。電子インク処理技法は、さまざまなソフトウェアアプリケーションに有用である。これらの電子インク処理技法は、レイアウト分析、分類、および認識を含む、電子インクの分析に特に適用可能である。ある電子インク処理技法を用いると、技法を実施するソフトウェアアプリケーションの動作に関して非同期に電子インクを処理できるようになり、その結果、ソフトウェアアプリケーションの動作を停止させるか大幅に遅らせることなく、電子インクを処理できるようになる。ソフトウェアアプリケーションは、前の電子インク入力が処理されつつある間に、新しい電子インクの受け入れを継続することさえできる。
【０１７４】
アプリケーションプログラミングインターフェースは、文書をホスティングし、および第１処理スレッドで動作するソフトウェアアプリケーションから、電子インクコンテンツを含む文書の文書データを受け取るインクアナライザオブジェクトをインスタンス化する。インクアナライザオブジェクトは、第１スレッドを使用して文書データのコピーを作り、文書データのコピーを電子インク分析処理に供給し、第１処理スレッドの制御を分析プロセスに返す。分析プロセスが電子インクを分析した後に、インクアナライザオブジェクトが、分析プロセスの結果を文書の現在の文書データと一致させる。
【０１７５】
特定の実施形態では、ファイルまたは文書内の要素を、お互いに関連する空間位置に基づいて記述することができる。たとえば、電子インクストロークとタイプで書かれたテキストの両方を、同一の空間座標系に関して記述することができる。空間情報を使用して文書の要素を記述することによって、文書を管理するソフトウェアアプリケーションが、その文書要素間の関係を記述するデータ構造を維持することができる。具体的に言うと、ソフトウェアアプリケーションは、さまざまな文書要素のクラスの記述およびさまざまな文書要素間の関連の定義の両方を行うデータ構造を維持することができる。これらの関連は、たとえば、電子インクストロークデータまたはそのコレクションを電子文書内の他の要素（単語、行、段落、ドローイング、テーブルセルなど）にリンクするのに使用される情報として定義することができる。
【０１７６】
ファイルまたは文書データ構造内の文書要素を、その空間位置に基づいて記述することによって、さまざまなファイルタイプの文書要素が、その文書要素を識別し操作する共通の技法を使用することができる。より詳細には、さまざまなソフトウェアアプリケーションは、文書内の文書要素をその空間位置に基づいて記述でき、およびこの空間位置参照を用いて、共通の電子インク分析方法を使用することができる。さらに、分析に関して文書の特定の領域を指定することによって、各ソフトウェアアプリケーションが、分析プロセスを、文書内の所望の要素だけに制限することができる。
【０１７７】
文書への新しい電子インク入力を分析するために、文書を管理するソフトウェアアプリケーションは、文書に関連するデータ構造を修正して、分析される新しいインクを含む。ソフトウェアアプリケーションは、このデータ構造（またはその関連する部分）をインク分析ツールに供給し、このインク分析ツールは、分析のためにデータ構造の一部またはすべてをコピーする（かつ、アプリケーションプログラムの文書データ構造と独立のデータのこのコピーを操作する）。インク分析ツールは、解析プロセス（たとえば、レイアウト分析プロセスおよび／または分類プロセス）などの分析プロセスにコピーを渡す。ソフトウェアアプリケーションは、１つまたは複数のインク分析プロセスが実行されている間に、新しい電子インク入力および／または他のデータの受け取りを含めて、通常動作を再開することができる。新しい電子インクの受け取りに加えて、たとえば既存のインク、テキスト、イメージ、グラフィックス、テーブル、フローチャート、図、および類似物のサイズ、位置、またはコンテンツを修正するデータ、追加のテキスト、イメージ、グラフィックス、テーブル、フローチャート、図、および類似物を追加するデータ、既存のテキスト、イメージ、グラフィックス、テーブル、フローチャート、図、および類似物を削除するデータなどの任意の「他のデータ」を、アプリケーションプログラムが受け取ることができる。すべての所望の分析プロセスが完了した後に、分析結果が、インク分析ツールに返される。
【０１７８】
インク分析ツールは、さまざまな機能を実行して、電子インクの処理を容易にする。インク分析ツールは、ＡＰＩなど、プログラミングインターフェースとして実装することができる。さらに、インク分析ツールは、文書内のインクを分析する必要に応じてソフトウェアアプリケーションが呼び出すことができる、ソフトウェアオブジェクトルーチンおよび関連情報のグループとして実装することができる。
【０１７９】
一実施形態では、インク分析ツールの実装を実施するＡＰＩ（以下ではインク分析ＡＰＩと呼称する）に、２つのコアクラスを含めることができる。第１のクラスを「ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔ」クラスと称し、第２のクラスを「ＩｎｋＡｎａｌｙｚｅｒ」クラスと称する。「ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔ」クラスのコンポーネントは、分析コンテキストオブジェクトを作成するのに使用される。「ＩｎｋＡｎａｌｙｚｅｒ」クラスのコンポーネントは、文書独立分析コンテキストオブジェクトを分析プロセスに提供するオブジェクトを作成し、使用し、分析結果が生成されたときを判定し、分析結果を文書の現在の状態と一致させるのに使用される。
【０１８０】
ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔクラスは、ホストアプリケーションによって実装され、分析コンテキストオブジェクトを作成し、この分析コンテキストオブジェクトは、ソフトウェアアプリケーションの内部文書ツリーへのプロキシビューとして働く。分析コンテキストオブジェクトには、すべての未分析のインクデータが含まれ、分析コンテキストオブジェクトは、未分析のインクデータのどれを分析しなければならないかを識別するのに使用される。分析コンテキストオブジェクトには、前に分析されたインクに関する情報も含まれる。この前に分析されたインクは、現在未分析のインクをどのように分析しなければならないかを判断するのに使用することができ、それ自体を、未分析インクの分析の過程で修正することができる。さらに、分析コンテキストオブジェクトには、文書の非インク内容に関する情報が含まれ、この情報は、非インク内容への注釈としてインクを正しく分類するのに使用される。
【０１８１】
ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔクラスには、ソフトウェアアプリケーションによって呼び出されたときに分析コンテキストオブジェクトを作成するコンストラクタが含まれる。このクラスには、「ＤｉｒｔｙＲｅｇｉｏｎ  ｛ｇｅｔ；｝」と称するプロパティを含む分析コンテキストオブジェクトに対するさまざまなプロパティも含まれる。ＤｉｒｔｙＲｅｇｉｏｎプロパティによって、未分析インクデータを含む文書の一部分（したがって、分析コンテキストオブジェクトの一部分）が定義される。
【０１８２】
ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔクラスには、「Ｒｏｏｔｎｏｄｅ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティは、分析コンテキストオブジェクト内の最上部またはルートのコンテキストノードを識別する。このルートコンテキストノードには、子コンテキストノードとして、所与の分析コンテキストオブジェクトの他のすべてのコンテキストノードオブジェクトが含まれる。特定の実施形態では、ルートコンテキストノードは、コンテキストノード型「Ｒｏｏｔ」でなければならない。アプリケーションがそれ自体の分析コンテキストオブジェクトを実装する実施形態では、分析コンテキストオブジェクトが、ルートコンテキストノードの兄弟として他のコンテキストノードを有することができるが、ＩｎｋＡｎａｌｙｚｅｒクラスのコンポーネントを、ルートコンテキストノードに含まれるコンテキストノードの検討に制限することができる。
【０１８３】
ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔクラスには、さらに、プロパティ「Ａｎａｌｙｓｉｓ  Ｈｉｎｔｓ  ｛ｇｅｔ；｝」を含めることができ、これは、ソフトウェアアプリケーションによって設定される分析ヒントオブジェクトの配列を返す。以下で詳細に述べるように、分析ヒントオブジェクトには、分析プロセスを支援できるどんなタイプの情報をも含めることができる。この情報に、たとえば、擬似事実として、ガイドまたは単語リストを含めることができる。これには、分析に使用される言語を設定する情報、未分析インクを手描きテキストのみまたはドローイングのみとして指定する情報、または、インクをリスト、テーブル、形状、フローチャート、コネクタ、コンテナ、および類似物として識別するなど、解析処理にあらゆる種類の案内の提供を含めることもできる。
【０１８４】
これらプロパティに加えて、ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔクラスに、たとえば分析コンテキストオブジェクトにタスクを実行させるためにソフトウェアアプリケーションによって呼び出すことができるさまざまなメソッドも含めることができる。たとえば、ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔクラスに、「ＦｉｎｄＮｏｄｅ  （Ｇｕｉｄ  ｉｄ）」と称するメソッドを含めることができる。分析コンテキストオブジェクト内の各ノードは、グローバル一意識別子（またはＧＵＩＤ）を有し、このメソッドは、分析コンテキストオブジェクト内のどこであっても、呼出しで指定されたノードを突き止める。
【０１８５】
ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔクラスに似て、Ｉｎｋ  Ａｎａｌｙｚｅｒクラスでも、さまざまなプロパティと共に、ソフトウェアアプリケーションがクラスのインスタンス（すなわちインクアナライザオブジェクト）を作成できるようにするパブリックコンストラクタが定義される。たとえば、このクラスに、「Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｃｏｎｔｅｘｔ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティを含めることができ、このプロパティによって、分析プロセスの結果が返される処理スレッドが定義される。このプロパティを用いると、結果を他のオブジェクトと同期化できるようになる。たとえば、このプロパティが、メインフォームに設定される場合に、パーサ結果が、アプリケーションのメインスレッドにおいて発せられる。このクラスに、プロパティ「ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ  ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ  ｛ｇｅｔ；  ｓｅｔ；｝」も含めることができ、このプロパティでは、分析プロセスに使用できるさまざまな基準が指定される。これらの基準には、たとえば、テキスト認識のイネーブリング、テーブルの使用のイネーブリング、リストの使用のイネーブリング、注釈の使用のイネーブリング、ならびにコネクタおよびコンテナの使用のイネーブリングを含めることができる。
【０１８６】
Ｉｎｋ  Ａｎａｌｙｚｅｒクラスに、さまざまなメソッドが含まれる。たとえば、このクラスに、「ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  Ａｎａｌｙｚｅ（）」と称するメソッドを含めることができる。このメソッドによって、同期分析プロセスが開始される。文書要素データは、このメソッドに渡され、このデータによって、文書の現在の状態が記述され、文書内のどのインクを分析する必要があるかが示される。一部の実施形態について、文書要素データを、上で注記したように、分析コンテキストオブジェクト（すなわちＡｎａｌｙｓｉｓＲｅｇｉｏｎ  Ａｎａｌｙｚｅ（ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔ））として供給することができる。その代わりに、個々のインクストロークを、ストロークへの参照（すなわちＡｎａｌｙｓｉｓＲｅｇｉｏｎ  Ａｎａｌｙｚｅ（Ｓｔｒｏｋｅｓ））またはＩｎｋ  Ａｎａｌｙｚｅｒオブジェクトのプロパティ（ＩｎｋＡｎａｌｙｚｅｒ．Ｓｔｒｏｋｅｓ  ｛ｇｅｔ；ｓｅｔ｝）のいずれかを使用して、プロパティをＡｎａｌｙｚｅメソッドに渡さずに分析プロセスに渡すことができる。
【０１８７】
分析プロセスが完了したならば、このメソッドは、分析プロセスの結果を含むように修正された文書独立分析コンテキストオブジェクトへの参照を返す。このメソッドは、結果が計算された文書内の領域を記述するＡｎａｌｙｓｉｓＲｅｇｉｏｎ値も返す。
【０１８８】
Ｉｎｋ  Ａｎａｌｙｚｅｒクラスに、「ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  Ａｎａｌｙｚｅ（ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔ、ｗａｉｔＲｅｇｉｏｎ）」と称するメソッドも含めることができる。このメソッドは、上で述べた同期式のＡｎａｌｙｓｉｓ  Ｒｅｇｉｏｎ  Ａｎａｌｙｚｅ（）メソッドと同一であるが、指定されたｗａｉｔＲｅｇｉｏｎ領域に結果が必要である場合に限ってインクが分析される。より詳細には、このメソッドへの呼出しによって、文書の分析コンテキストオブジェクトと、分析コンテキストオブジェクトとのうちで分析処理が同期式に分析しなければならない領域（「ｗａｉｔＲｅｇｉｏｎ」と称する）が識別される。ある実施形態では、分析プロセスがｗａｉｔＲｅｇｉｏｎの分析を完了するためにそれらの領域内の内容を分析する必要がある場合を除いて、分析コンテキストオブジェクトの他のすべて領域は、無視される。上述のように、このメソッドに渡される分析コンテキストオブジェクトには、「ＤｉｒｔｙＲｅｇｉｏｎ」と称するプロパティが含まれ、このプロパティによって、文書のうちで分析を必要とする領域が記述される。特定のｗａｉｔＲｅｇｉｏｎを指定することによって、ソフトウェアアプリケーションは、文書内のインクデータのすべてを分析させるのではなく、関心のある一特定領域についてより速やかに分析結果を得ることができる。これらのＡｎａｌｙｚｅメソッドのいずれかが呼び出されるときに、すべての使用可能な分析プロセスが実行される。また、これらのＡｎａｌｙｚｅメソッドは、同期式の呼出しなので、その完了時に一致プロセスを実行する必要はなく、完了時にイベントを解く必要もない。
【０１８９】
Ｉｎｋ  Ａｎａｌｙｚｅｒクラスには、「ＢａｃｋｇｒｏｕｎｄＡｎａｌｙｚｅ（ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔ）」と称するメソッドも含めることができる。このメソッドは、指定された分析動作を起動するが、個別のバックグラウンド分析スレッドにおいてそれを行う。したがって、このメソッドは、ほぼ即座にメイン処理スレッドに制御を返すが、実際の分析動作は、バックグラウンドで完了する。具体的に言うと、このメソッドは、分析処理が成功裡に開始された場合に「真」の値を返す。さらに、このメソッドに渡されるＡｎａｌｙｓｉｓＣｏｎｔｅｘｔ値によって、文書の分析コンテキストオブジェクトが識別され、文書内のどのインクを分析する必要があるかが示される。分析動作がバックグラウンドスレッドで完了したならば、Ｒｅｓｕｌｔｓイベントを引き起こして、ソフトウェアアプリケーションが結果を受け入れられるようにする。このイベントには、結果と、結果が返されるときに文書の現在の状態に関する分析コンテキストオブジェクトに結果を組み込むのに使用される一致メソッドが含まれる。
【０１９０】
この３つのＡｎａｌｙｚｅメソッドのそれぞれが、「ＡｎａｌｙｓｉｓＲｅｇｉｏｎ」クラス内のメソッド「Ｃｌｏｎｅ」を呼び出す。「Ｃｌｏｎｅ」メソッドを使用して、これらのＡｎａｌｙｚｅメソッドが、後に分析結果を示すために分析プロセスによって修正される独立の文書分析コンテキストオブジェクトを作成する。
【０１９１】
Ｉｎｋ  Ａｎａｌｙｚｅｒクラスには、「Ｒｅｃｏｎｃｉｌｅ  （ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔ  ｃｕｒｒｅｎｔ、ＡｎａｌｙｓｉｓＲｅｓｕｌｔｓＥｖｅｎｔＡｒｇｓ  ｒｅｓｕｌｔＡｒｇｓ）」と称するメソッドも含めることができ、これは、ＢａｃｋｇｒｏｕｎｄＡｎａｌｙｚｅ（ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔ）メソッドを呼び出すことによって引き起こされた結果イベントを受け取った後に、ソフトウェアアプリケーションが呼び出すメソッドである。Ｒｅｃｏｎｃｉｌｅメソッドは、文書独立分析コンテキストオブジェクトに含まれる分析結果を、ソフトウェアアプリケーションによって維持される分析コンテキストオブジェクトの最新バージョンと比較する。このメソッドは、分析コンテキストオブジェクトの最新バージョンに追加され除去される必要があるノードを識別し、既存ノードの、その認識結果、その位置、ノードに関連するインクストローク、または分析動作の結果に関連する他のすべてのデータなどのプロパティが変更されたか否かを識別する。このメソッドは、これらの識別された変更を、分析コンテキストオブジェクトの最新バージョンに書き込む。このメソッドは、行コンテキストノード上の単語コンテキストノードの順序など、コンテキストノード順序付けの順序付けに依存する。
【０１９２】
分析結果（すなわち、プロパティＡｎａｌｙｓｉｓＲｅｓｕｌｔｓＥｖｅｎｔＡｒｇｓの値）は、このメソッドに渡される。というのは、分析結果に、パブリック結果構造体およびプライベート結果構造体が含まれるからである。パブリック構造体は、ソフトウェアアプリケーションが、一致ステージで生じる変更を再検討できるようにするために返される。プライベート構造体は、ソフトウェアアプリケーションが一致プロセスの前に分析結果を変更しないようにするために含まれる。
【０１９３】
ＩｎｋＡｎａｌｙｚｅｒクラスに、「Ｒｅｃｏｇｎｉｚｅｒｓ  ＲｅｃｏｇｎｉｚｅｒｓＰｒｉｏｒｉｔｙ（）」および「ＳｅｔＨｉｇｈｅｓｔＰｒｉｏｒｉｔｙＲｅｃｏｇｎｉｚｅｒ（ｒｅｃｏｇｎｉｚｅｒ）」と称するメソッドも含めることができる。インクが認識を必要とするときに、適当なレコグナイザが、言語および機能に基づいて使用される。したがって、Ｒｅｃｏｇｎｉｚｅｒｓ  ＲｅｃｏｇｎｉｚｅｒｓＰｒｉｏｒｉｔｙ（）メソッドは、Ｉｎｋ  Ａｎａｌｙｚｅｒオブジェクトによって評価される順序で認識プロセスを返す。順序は、使用可能な認識プロセスに依存してシステムごとに判定されるが、Ｉｎｋ  ＡｎａｌｙｚｅｒオブジェクトにおいてＳｅｔＨｉｇｈｅｓｔＰｒｉｏｒｉｔｙＲｅｃｏｇｎｉｚｅｒ（ｒｅｃｏｇｎｉｚｅｒ）を呼び出すことによってソフトウェアアプリケーションに関してオーバーライドされることができる。ＩｎｋＡｎａｌｙｚｅｒは、適当なレコグナイザが見つかるまで、この順序付きリストを介して列挙する。ＳｅｔＨｉｇｈｅｓｔＰｒｉｏｒｉｔｙＲｅｃｏｇｎｉｚｅｒ（ｒｅｃｏｇｎｉｚｅｒ）メソッドは、認識プロセスの優先順位を上げる。特定の認識プロセスの優先順位を上げることによって、その認識プロセスが、現在の認識動作の必要な言語および能力に一致する場合に、使用されるようになる。本質的に、ＳｅｔＨｉｇｈｅｓｔＰｒｉｏｒｉｔｙＲｅｃｏｇｎｉｚｅｒ（ｒｅｃｏｇｎｉｚｅｒ）は、指定された認識プロセスを、ＲｅｃｏｇｎｉｚｅｒｓＰｒｉｏｒｉｔｙメソッドによって返されるリストの最上部に押し上げる。
【０１９４】
Ｉｎｋ  Ａｎａｌｙｚｅｒクラスには、パラメータとして分析コンテキストオブジェクトを使用することができる、「ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  Ａｂｏｒｔ（）」と称するメソッドも含めることができる。このメソッドを用いると、フォアグラウンドまたはバックグラウンドの分析動作を早期に終了させることができる。このメソッドは、アボートの前に分析されていた領域を記述した分析領域を返す。したがって、ソフトウェアアプリケーションが、後に分析動作を継続するつもりである場合に、この領域を、文書の現在の状態の分析コンテキストオブジェクトのＤｉｒｔｙＲｅｇｉｏｎにマージすることができる。さらに、Ｉｎｋ  Ａｎａｌｙｚｅｒクラスに、実用的な頻度でＩｎｋＡｎａｌｙｚｅｒオブジェクトに対して発する「ＡｎａｌｙｓｉｓＲｅｓｕｌｔｓＥｖｅｎｔＨａｎｄｌｅｒ」と称するイベントを含めることができる。より詳細には、このイベントは、分析プロセスの間に、少なくとも５秒に１回発することができる。このイベントを使用して、アプリケーションに、進行中の同期分析プロセス（１つまたは複数）の状況に関する更新を提供することができる。
【０１９５】
Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩに、ＡｎａｌｙｓｉｓＣｏｎｔｅｘｔクラスおよびＩｎｋ  Ａｎａｌｙｚｅｒクラスのほかにクラスを含めることもできる。たとえば、Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩに、Ｃｏｎｔｅｘｔ  Ｎｏｄｅクラスを含めることができる。このクラスには、「ＣｏｎｔｅｘｔＮｏｄｅＴｙｐｅ  Ｔｙｐｅ  ｛ｇｅｔ；｝」と称するプロパティなど、分析コンテキストオブジェクトおよび文書独立分析コンテキストオブジェクトを構成するコンテキストノードに関するさまざまなコンポーネントを含めることができる。各コンテキストノードは、型を有し、各型が厳守しなければならないルールの特定のセットがある。これには、子コンテキストノードのどの型が許容されるか、ストロークをコンテキストノードに直接関連付けるか、子コンテキストノードを介してのみ関連付けるか否かなどのルールが含まれる。
【０１９６】
コンテキストノードの可能な型は、ＣｏｎｔｅｘｔＮｏｄｅＴｙｐｅｓ列挙において定義することができ、これには、たとえば、インクデータ注釈非テキストデータを表すＩｎｋＡｎｎｏｔａｔｉｏｎノード、ドローイングを形成するインクデータを表すＩｎｋＤｒａｗｉｎｇノード、単語を形成するインクデータを表すＩｎｋＷｏｒｄノード、テキストの行を形成する単語の１つまたは複数のＩｎｋＷｏｒｄノードおよび／またはＴｅｘｔＷｏｒｄノードを含むＬｉｎｅノード、リスト内で期待されるＰａｒａｇｒａｐｈ、Ｉｍａｇｅ、および類似ノードを含めることができるＬｉｓｔＩｔｅｍノード、ならびにそれぞれがリストのエントリを記述する１つまたは複数のＬｉｓｔＩｔｅｍノードを含むＬｉｓｔノードを含めることができる。ノードの型に、非インクドローイングイメージを表すＮｏｎＩｎｋＤｒａｗｉｎｇノード、ＣｏｎｔｅｘｔＮｏｄｅＴｙｐｅ列挙の他の値によって含まれないデータを表すＯｂｊｅｃｔノード、段落を形成する行に対応する１つまたは複数のＬｉｎｅノードを含むＰａｒａｇｒａｐｈノード、ピクチャイメージを表すＰｉｃｔｕｒｅノードまたはＩｍａｇｅノード、分析コンテキストオブジェクト内の最上位ノードとして働くＲｏｏｔノード、テーブルを構成するアイテムを表すノードを含むＴａｂｌｅノード、テキストボックスを表すＴｅｘｔＢｏｘノード、ＴｅｘｔＷｏｒｄノード、およびまだ分類されていないインクデータに対応するＵｎｃｌａｓｓｉｆｉｅｄＩｎｋノードを含めることができる。ノードの型に、他のノードのグループに関するＧｒｏｕｐノード、中黒アイテムのＩｎｋＢｕｌｌｅｔノード、テーブルの行で表される文書要素のＲｏｗノード、およびテーブルのセルで表される文書要素のＣｅｌｌノードも含めることができる。
【０１９７】
ＣｏｎｔｅｘｔＮｏｄｅクラスに、「ＧＵＩＤ  Ｉｄ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、これは、現在のコンテキストノードのグローバル一意識別子である。所望のコンテキストノードへのアクセスを可能にするために、単一の分析コンテキストオブジェクト内の各コンテキストノードは、一意の識別子を有しなければならない。このクラスに、「ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  Ｌｏｃａｔｉｏｎ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティによって、関連するコンテキストノードが実際に配置される文書空間内のロケーションが識別される。ＡｎａｌｙｓｉｓＲｅｇｉｏｎは、１つまたは複数のおそらくはばらばらの長方形風の構造を共にグループ化する２次元構造である。このクラスに、「ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ  Ｓｔｒｏｋｅｓ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティによって、関連するコンテキストノードに関連するインクストロークが識別される。特定の実施形態では、葉コンテキストノード（Ｗｏｒｄノード、Ｄｒａｗｉｎｇノード、およびＢｕｌｌｅｔノードなど）だけが、Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩによってストロークを有することを許可される。ソフトウェアアプリケーションは、このプロパティを使用して、すべての上位コンテキストノード（たとえば、ルートノードに、関連する分析コンテキストオブジェクト内のすべてのストロークへのストローク参照が含まれる）による葉ノードレベルのストロークを参照することができる。
【０１９８】
さらに、このクラスに、「ＣｏｎｔｅｘｔＮｏｄｅ  ＰａｒｅｎｔＮｏｄｅ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティによって、関連するコンテキストノードを含む親コンテキストノードが識別される。特定の実施形態では、コンテキストノードが、必ず親コンテキストノードに従属するように作成され、分析コンテキストオブジェクトのスタティックメンバであるＲｏｏｔコンテキストノードを伴う。このクラスに、プロパティ「ＣｏｎｔｅｘｔＮｏｄｅ［］  ＳｕｂＮｏｄｅｓ  ｛ｇｅｔ；｝」も含めることができ、このプロパティによって、関連するコンテキストノードの直接の子であるすべてのコンテキストノードが識別される。すなわち、このプロパティは、これら、分析コンテキストオブジェクトの１レベル下の子コンテキストノードだけを識別する。たとえば、Ｐａｒａｇｒａｐｈコンテキストノードのこのプロパティの値は、行コンテキストノードの子である単語コンテキストではなく、そのＰａｒａｇｒａｐｈノードに含まれる行コンテキストノードだけを識別する。
【０１９９】
このクラスに、「ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ  ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティは、関連する認識分析プロセスによって計算された認識結果を提供する。というのは、ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔが、複数の言語からの複数行のテキストを表すことができるからである。認識分析プロセスによって設定され、ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔオブジェクトの作成のために使用されるＲｅｃｏｇｎｉｔｉｏｎＤａｔａプロパティが、データの重複を避けるためにコンテキストノードツリーの１レベルでのみ設定される可能性があるが、ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔは、文書独立分析コンテキストオブジェクト内のすべてのコンテキストノードに対して使用可能である。ノードが、それと関連付けられたＲｅｃｏｇｎｉｔｉｏｎＤａｔａを有していない場合には、そのサブノードのすべての認識結果をマージするか、その親から認識結果を抽出する。このクラスに、「Ｓｔｒｅａｍ  ＲｅｃｏｇｎｉｔｉｏｎＤａｔａ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティも含めることができ、これは、ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ値の永続的な形態である。やはり、認識分析プロセスは、関連するコンテキストノードで設定されるＳｔｒｅａｍ  ＲｅｃｏｇｎｉｔｉｏｎＤａｔａ値を作る。その後、ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔオブジェクトが、この値に基づいて構成される。
【０２００】
ＣｏｎｔｅｘｔＮｏｄｅクラスに、さらに、「ＣｏｎｔｅｘｔＬｉｎｋ［］  Ｌｉｎｋｓ  ｛ｇｅｔ；｝」と称するプロパティを含めることができ、このプロパティによって、ＣｏｎｔｅｘｔＬｉｎｋオブジェクトの配列がもたらされる。ＣｏｎｔｅｘｔＬｉｎｋオブジェクトは、２つのコンテキストノード間の代替の関係を記述する。コンテキストノードは、通常は、他のコンテキストノードとの親子関係を有するが、ＣｏｎｔｅｘｔＬｉｎｋを用いると、コンテキストノードの間の代替の関係が可能になる。たとえば、ＣｏｎｔｅｘｔＬｉｎｋによって、２つのコンテキストノード間の接続、一方のコンテキストノードの別のコンテキストノードへのアンカリング、別のコンテキストノードによるあるコンテキストノードの包含、またはソフトウェアアプリケーションによって定義されるリンクの所望の型を可能にすることができる。ＡｄｄＬｉｎｋメソッドを呼び出すことによって、ＣｏｎｔｅｘｔＬｉｎｋをこの配列に追加することができる。同様に、ＤｅｌｅｔｅＬｉｎｋメソッドを呼び出すことによって、ＣｏｎｔｅｘｔＬｉｎｋをこの配列から除去することができる。
【０２０１】
さらに、このクラスに、プロパティ「ＩｓＣｏｎｔａｉｎｅｒ  ｛ｇｅｔ；｝」および「ＩｓＩｎｋＬｅａｆ  ｛ｇｅｔ；｝」を含めることができる。プロパティＩｓＣｏｎｔａｉｎｅｒ  ｛ｇｅｔ；｝は、関連するコンテキストノードが葉コンテキストノードでない場合（すなわち、関連するコンテキストノードに子コンテキストノードが含まれ、したがってコンテナコンテキストノードと考えられる場合）に「真」の値を有し、そうでない場合に「偽」の値を有する。ＩｓＩｎｋＬｅａｆ  ｛ｇｅｔ；｝プロパティは、現在のコンテキストノードがコンテナコンテキストノードでない場合に「真」の値を有し、そうでない場合に「偽」の値を有する。すなわち、現在のコンテキストノードに子コンテキストノードが含まれない場合に、そのコンテキストノードは、葉コンテキストノードと考えられる。ある実施形態では、ＩｎｋＬｅａｆコンテキストノードは、ストロークデータへの参照を含むと期待されるが、コンテナコンテキストノードは、この制限を有しない。コンテナコンテキストノードは、ソフトウェアアプリケーションにより指定されることにより、ストロークデータに参照を付けなくてもよい。
【０２０２】
ＣｏｎｔｅｘｔＮｏｄｅクラスに、プロパティ「Ｒｅｃｔ  ＲｏｔａｔｅｄＢｏｕｎｄｉｎｇＢｏｘ  ｛ｇｅｔ；  ｓｅｔ；｝」も含めることができる。このプロパティの値は、レイアウトおよび分類分析プロセスによって計算される。関連するコンテキストノードと関連付けられたインクデータが、ある角度で書き込まれる場合に、コンテキストノードの境界は、それでも水平に位置合せされる。しかし、ＲｏｔａｔｅｄＢｏｕｎｄｉｎｇＢｏｘプロパティの値には、関連するコンテキストノードと関連付けられたインクデータが書き込まれた角度に対して位置合せされる。さらに、このクラスに、プロパティ「ＲｅＣｌａｓｓｉｆｉａｂｌｅ  ｛ｇｅｔ；｝」を含めることができ、このプロパティは、関連するコンテキストノードの値を修正することが許容されるか否かをＩｎｋＡｎａｌｙｚｅｒに知らせる。
【０２０３】
これらのプロパティのほかに、ＣｏｎｔｅｘｔＮｏｄｅクラスに、さまざまなメソッドも含めることができる。たとえば、このクラスに、「ＣｏｎｔｅｘｔＮｏｄｅ  ＣｒｅａｔｅＳｕｂＮｏｄｅ（ＣｏｎｔｅｘｔＮｏｄｅＴｙｐｅ  ｔｙｐｅ）」と称するメソッドを含めることができる。このメソッドを用いると、特定の型の子コンテキストノードの作成が可能になる。一実施形態では、このメソッドによって、関連するコンテキストノードの有効な子型だけを作成でき、これによって、誤った形式のデータ構造が作成されなくなる。たとえば、このメソッドによって、ＬｉｎｅコンテキストノードがＩｎｋＷｏｒｄおよびＴｅｘｔＷｏｒｄの子コンテキストノードを作成することだけを許可することができる。このクラスに、「ｖｏｉｄ  ＤｅｌｅｔｅＳｕｂＮｏｄｅ（ＣｏｎｔｅｘｔＮｏｄｅ  ｎｏｄｅ）」と称するメソッドも含めることができ、このメソッドによって、参照される子コンテキストノードが、関連する分析コンテキストオブジェクトから削除される。しかし、ある実施形態では、参照されるコンテキストノードに、まだストロークまたは子コンテキストノードが含まれる場合に、このメソッドは、エラーにならなければならない。また、参照コンテキストノードが、関連するコンテキストノードの直接の子でない場合に、このメソッドは、エラーにならなければならない。ソフトウェアアプリケーションが、それ自体の分析コンテキストオブジェクトを実装し、このメソッドを使用する場合には、分析コンテキストオブジェクト内の誤った形式のデータ構造を防ぐために、関連するコンテキストノードの直接の子でない、空でない１つまたは複数のコンテキストノードは削除されない。
【０２０４】
さらに、このクラスに、メソッド「ＣｏｎｔｅｘｔＮｏｄｅ［］  ＨｉｔＴｅｓｔＳｕｂＮｏｄｅｓ（ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  ｒｅｇｉｏｎ）」を含めることができ、このメソッドは、指定された領域に配置されたコンテキストノードの配列を返す。しかし、すべての派生ではなく、この要素の直接の子ノードだけが返される。その領域は、ＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトによって定義され、これは、１つまたは複数の長方形のコレクションとすることができる。特定の実施形態では、コンテキストノードの位置の任意の部分が、指定された領域と交わる場合に、そのコンテキストノードが、配列内に返される。このメソッドは、たとえば、文書独立分析コンテキストを作成し、分析結果を文書の現在の状態に対応する分析コンテキストオブジェクトと一致させるのに使用することができる。したがって、このメソッドは、頻繁に呼び出され、ＩｎｋＡｎａｌｙｚｅｒによる高速の繰り返されるアクセスのために最適化されなければならない。
【０２０５】
Ｃｏｎｔｅｘｔ  Ｎｏｄｅクラスに、「ＭｏｖｅＳｔｒｏｋｅ（Ｓｔｒｏｋｅ  ｓｔｒｏｋｅ、  ＣｏｎｔｅｘｔＮｏｄｅ  ｄｅｓｔｉｎａｔｉｏｎ）」と称するメソッドも含めることができる。このメソッドは、ストロークの関連を、ある葉コンテキストノードから別の葉コンテキストノードに移動する。ある実施形態では、このメソッドは、葉コンテキストノード間だけで使用される。このクラスに、「ＭｏｖｅＳｕｂＮｏｄｅＴｏＰｏｓｉｔｉｏｎ（ｉｎｔ  ＯｌｄＩｎｄｅｘ、  ｉｎｔ  ＮｅｗＩｎｄｅｘ）」と称するメソッドも含めることができ、このメソッドは、関連するコンテキストノードを、兄弟コンテキストノードに関して再順序付けする。たとえば、文書が、１行に３つの単語、たとえば単語１、単語２、および単語３を有する場合、その順序は、親コンテキストノードから返されるサブノードの配列によって示唆される。このメソッドは、その順序を変更できるようにし、その結果、関連する親コンテキストノードに関して、単語１のコンテキストノードを位置１から位置３に移動することによって、単語１がこの行の最後の単語になるように指定される。
【０２０６】
さらに、このクラスに、「ＡｄｄＬｉｎｋ（ＣｏｎｔｅｘｔＬｉｎｋ  ｌｉｎｋ）」と称するメソッドを含めることができ、このメソッドでは、新しいＣｏｎｔｅｘｔＬｉｎｋオブジェクトが現在のコンテキストノードに追加される。特定の実施形態では、ＣｏｎｔｅｘｔＬｉｎｋを関連するコンテキストノードと関連付けられたＣｏｎｔｅｘｔＬｉｎｋの配列に成功裡に追加するために、ＣｏｎｔｅｘｔＬｉｎｋオブジェクトは、関連するコンテキストノードへの参照を含まなければならない。このクラスに、「ＤｅｌｅｔｅＬｉｎｋ（ＣｏｎｔｅｘｔＬｉｎｋ  ｌｉｎｋ）」と称するメソッドも含めることができる。このメソッドは、関連するコンテキストノードのＣｏｎｔｅｘｔＬｉｎｋの配列から、指定されたＣｏｎｔｅｘｔＬｉｎｋオブジェクトを削除または除去する。一実施形態では、このメソッド呼出しは、ＣｏｎｔｅｘｔＬｉｎｋが関連するコンテキストノードと関連付けられたＣｏｎｔｅｘｔＬｉｎｋの配列に存在しない場合であっても、必ず成功裡に完了する。
【０２０７】
Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩに、Ａｎａｌｙｓｉｓ  Ｈｉｎｔクラスを含めることもできる。前に記述したクラスの多くと同様に、Ａｎａｌｙｓｉｓ  Ｈｉｎｔクラスに、「ＡｎａｌｙｓｉｓＨｉｎｔ（）」と称するコンストラクタを含めることができ、このコンストラクタは、Ａｎａｌｙｓｉｓ  Ｈｉｎｔオブジェクトを空の状態に初期化する。このクラスに、「ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  Ｌｏｃａｔｉｏｎ  ｛ｇｅｔ；｝」と称するプロパティを含む複数のプロパティを含めることもできる。このプロパティでは、ＡｎａｌｙｓｉｓＨｉｎｔを適用できる、（ＡｎａｌｙｓｉｓＲｅｇｉｏｎとして）文書内の位置を指定する。たとえば、文書が、ページの最上部にタイトルセクションがある自由形式ノートである場合に、アプリケーションは、タイトル領域についてＡｎａｌｙｓｉｓＨｉｎｔを設定して、インクの水平線がその領域で期待されることを指定することができる。このＡｎａｌｙｓｉｓ  Ｈｉｎｔは、分析プロセスの精度を高めるのに役立つ。
【０２０８】
このクラスに、「ｓｔｒｉｎｇ  Ｆａｃｔｏｉｄ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティも含めることができ、このプロパティは、文書内でＡｎａｌｙｓｉｓＨｉｎｔを適用可能なロケーションに使用される特定の「擬似事実」を指定する。擬似事実によって、インクデータの期待される使用（たとえば、通常のテキスト、数字、郵便番号、ファイル名、ウェブＵＲＬなど）に関して認識プロセスにヒントが与えられる。このクラスに、「ＲｅｃｏｇｎｉｚｅｒＧｕｉｄｅ  Ｇｕｉｄｅ  ｛ｇｅｔ；  ｓｅｔ；｝」および「ＯｖｅｒｒｉｄｅＬａｎｇｕａｇｅＩｄ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティも含めることができる。ＲｅｃｏｇｎｉｚｅｒＧｕｉｄｅ  Ｇｕｉｄｅ  ｛ｇｅｔ；  ｓｅｔ；｝プロパティは、文書内のＡｎａｌｙｓｉｓＨｉｎｔを適用できるロケーションに適用される書込ガイドを指定する。書込ガイドは、たとえば、ユーザが線または文字を書きこむ場所をユーザに指定し、レコグナイザ分析プロセスに知らせることによって、レコグナイザ分析プロセスの精度を高める助けになることができる。ＯｖｅｒｒｉｄｅＬａｎｇｕａｇｅＩｄ  ｛ｇｅｔ；  ｓｅｔ；｝プロパティは、ＡｎａｌｙｓｉｓＨｉｎｔを適用できる文書のＬａｎｇｕａｇｅ  Ｈｉｎｔを指定する。Ｌａｎｇｕａｇｅ  Ｈｉｎｔを設定することによって、ＩｎｋＡｎａｌｙｚｅｒオブジェクトが、コンテキストノードで指定された言語の代わりに、指定された言語を使用するようになる。
【０２０９】
このクラスに、「ＰｒｅｆｉｘＴｅｘｔ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティも含めることができ、このプロパティによって、認識されるインクの行の前に書き込まれたか、またはタイプされたテキストが指定される。さらに、このクラスに、「ＲｅｃｏｇｎｉｔｉｏｎＭｏｄｅｓ  ＲｅｃｏｇｎｉｔｉｏｎＦｌａｇｓ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティを含めることができ、このプロパティによって、ＡｎａｌｙｓｉｓＨｉｎｔを適用できる文書内のロケーションで認識プロセスが尊重しなければならないモードの特定の型が指定される。さらに、このクラスに、「ＳｕｆｆｉｘＴｅｘｔ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティも含めることができ、このプロパティによって、認識されなければならないインクの行の後に書かれたか、またはタイプされたテキストが指定され、このクラスに、「ＷｏｒｄＬｉｓｔ  ＷｏｒｄＬｉｓｔ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティも含めることができ、このプロパティによって、認識分析プロセスによって使用されなければならない単語の特定のセットが指定される。単語リストは、医療フォーム内に書き込まれると期待される医学用語のリストなど、ユーザが実際に入力データを書く前に、期待される認識結果が知られているときに使用することができる。
【０２１０】
さらに、このクラスに、「ＷｏｒｄＭｏｄｅ  ｛ｇｅｔ；  ｓｅｔ｝」と称するプロパティを含めることができる。この値が「真」である場合に、分析プロセスは、それ自体にバイアスをかけて、分析領域全体について単一の単語を返す。このクラスに、「Ｃｏｅｒｃｅ  ｛ｇｅｔ；  ｓｅｔ｝」と称するプロパティを含めることができ、このプロパティが、「真」である場合に、分析プロセスに、結果を関連するヒントで設定された擬似事実または単語リストの値に制限することを課す。このクラスに、「ＡｌｌｏｗＰａｒｔｉａｌＤｉｃｔｉｏｎａｒｙＴｅｒｍｓ  ｛ｇｅｔ；  ｓｅｔ｝」と称するプロパティも含めることができる。このプロパティの値が「真」の場合に、認識分析プロセスは、その認識辞書から部分的な単語を返すことを許可される。
【０２１１】
特定の実施形態では、インク分析ＡＰＩに、さらに、ＡｎａｌｙｓｉｓＲｅｇｉｏｎクラスを含めることができる。このクラスに、たとえば、ＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトを構成する複数のコンストラクタを含めることができる。たとえば、このクラスに、任意の領域を有するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトを構成する第１コンストラクタと、２次元長方形のパラメータに基づくＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトを構成する第２コンストラクタと、４つの空間座標に基づくＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトを構成する第３コンストラクタとを含めることができる。デフォルトコンストラクタは、たとえば、空の領域を作成することができる。このクラスに、複数のプロパティも含めることができる。たとえば、このクラスに、ＡｎａｌｙｓｉｓＲｅｇｉｏｎの境界長方形を検索する、「Ｒｅｃｔａｎｇｌｅ  Ｂｏｕｎｄｓ  ｛ｇｅｔ；｝」と称するプロパティと、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトが空の内部を有するかどうかを示す「ＩｓＥｍｐｔｙ  ｛ｇｅｔ；｝」と称するプロパティと、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎに無限大が設定されているか否かを示す「ＩｓＩｎｆｉｎｉｔｅ  ｛ｇｅｔ；｝」と称するプロパティとを含めることができる。
【０２１２】
このクラスに、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトのクローンを作成する「ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  Ｃｌｏｎｅ（）」と称するメソッドなど、複数のメソッドも含めることができる。このクラスに、「Ｅｑｕａｌｓ（ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  ｏｔｈｅｒＲｅｇｉｏｎ）」と称するメソッドも含めることができ、このメソッドは、指定されたＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクト（ｏｔｈｅｒＲｅｇｉｏｎと称する）が、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトと同一であるかどうかをテストする。このメソッドは、指定されたＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトの内部が、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトの内部と同一である場合には「真」の値を返し、そうでない場合には「偽」の値を返す。
【０２１３】
このクラスに、さらに「Ｉｎｔｅｒｓｅｃｔ（ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  ｒｅｇｉｏｎＴｏＩｎｔｅｒｓｅｃｔ）」と称するメソッドを含めることができ、このメソッドは、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトを指定された分析領域に対し切り取る。したがって、結果としてＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトには、指定された分析領域とオーバーラップするか交差する領域だけが含まれる。このクラスには、「Ｉｎｔｅｒｓｅｃｔ（Ｒｅｃｔａｎｇｌｅ  ｒｅｃｔａｎｇｌｅ）」と称するメソッドも含めることができ、このメソッドは、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトを指定された長方形に切り取る。この場合もやはり、結果としてＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトには、指定された長方形とオーバーラップするか交差する領域だけが含まれる。このクラスに、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトを空の内部に初期化する「ＭａｋｅＥｍｐｔｙ（）」と称するメソッド、および関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎによって占められる領域に無限大を設定する「ＭａｋｅＩｎｆｉｎｉｔｅ（）」と称するメソッドも含めることができる。このクラスに、さらに、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトと結合または追加されるＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトを指定する「Ｕｎｉｏｎ（ＡｎａｌｙｓｉｓＲｅｇｉｏｎ  ｒｅｇｉｏｎＴｏＵｎｉｏｎ）」と称するメソッド、および指定された長方形を関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトと結合する「Ｕｎｉｏｎ（Ｒｅｃｔａｎｇｌｅ  ｒｅｃｔａｎｇｌｅ）」と称するメソッドなど、異なる定義の領域を結合するか分離するさまざまなメソッドを含めることができる。このメソッドを用いると、関連するＡｎａｌｙｓｉｓＲｅｇｉｏｎオブジェクトの座標空間内に長方形を指定することができる。もちろん、このクラスに、いかなる領域の所望の定義に基づいても、領域を組み合わせるかある領域を他の領域から除外する、多数の他のメソッドを含めることができる。
【０２１４】
Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩは、Ｒｅｃｏｇｎｉｔｉｏｎ  Ｒｅｓｕｌｔクラスも有することができる。前述のクラスの多くと同様に、Ｒｅｃｏｇｎｉｔｉｏｎ  Ｒｅｓｕｌｔクラスに、１つまたは複数のコンストラクタを含めることができる。たとえば、このクラスに、「ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ（Ｓｔｒｅａｍ  ｌａｔｔｉｃｅ）」と称するコンストラクタを含めることができ、このコンストラクタは、所与の認識格子（recognition lattice）からＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔｓオブジェクトを構成する。特定の実施形態では、認識格子は、認識プロセスからの結果をシリアライズした形態である。このメソッドは、たとえば、関連するＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔオブジェクトの構成に使用されるバイト配列として認識格子を指定することができる。このクラスには、「ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ（ＣｏｎｔｅｘｔＮｏｄｅ  ｎｏｄｅ）」と称するコンストラクタも含めることができ、このコンストラクタは、所与のコンテキストノードからＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔｓオブジェクトを構成する。このクラスに、「ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ（ｓｔｒｉｎｇ  Ｔｅｘｔ、  ｉｎｔ  ＳｔｒｏｋｅＣｏｕｎｔ）」と称するコンストラクタも含めることができ、このコンストラクタは、指定されたテキスト値からＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔｓオブジェクトを構成し、このオブジェクトが、指定された数のストロークに関連付けられ、認識プロセスが、実際の手描きインクデータに対応する代替の認識値に達しなかった場合に、このオブジェクトを訂正に使用することができる。さらに、このクラスに、「ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ（ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ  ｌｅｆｔＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ、  ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ  ｒｉｇｈｔＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ）」と称するコンストラクタを含めることができ、このコンストラクタは、２つの既存のＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔｓオブジェクトを共にマージすることによって、ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔｓオブジェクトを構成する。
【０２１５】
ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔクラスに、単一のインクオブジェクトに含まれるストロークのコレクションを表すストロークインデックスの配列を提供する「ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ  ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ  ｛ｇｅｔ；｝」と称するプロパティ、および認識結果の最良の代替物を提供する「ＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅ  ＴｏｐＡｌｔｅｒｎａｔｅ  ｛ｇｅｔ；｝」と称するプロパティなど、１つまたは複数のプロパティも含めることができる。このクラスに、認識分析プロセスからの現在の結果の最良の代替選択の信頼レベル（たとえば、強、中、または弱）を提供する「ＲｅｃｏｇｎｉｔｉｏｎＣｏｎｆｉｄｅｎｃｅ  ＲｅｃｏｇｎｉｔｉｏｎＣｏｎｆｉｄｅｎｃｅ  ｛ｇｅｔ；｝」と称するプロパティ、および認識分析プロセスからの分析結果の最良の結果ストリングを返す「ｓｔｒｉｎｇ  ＴｏｐＳｔｒｉｎｇ  ｛ｇｅｔ；｝」と称するプロパティも含めることができる。
【０２１６】
ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔｓクラスに、「ｐｕｂｌｉｃ  ＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅＣｏｌｌｅｃｔｉｏｎ  ＧｅｔＡｌｔｅｒｎａｔｅＣｏｌｌｅｃｔｉｏｎＦｒｏｍＳｅｌｅｃｔｉｏｎ  （ｓｅｌｅｃｔｉｏｎＳｔａｒｔ、  ｓｅｌｅｃｔｉｏｎＬｅｎｇｔｈ、  ｍａｘｉｍｕｍＡｌｔｅｒｎａｔｅｓ）」と称するメソッドなどの複数のメソッドも含めることができ、このメソッドは、認識分析プロセスからの分析結果の最良の結果ストリング内の選択肢からの代替物のコレクションを指定し、各代替物は、インクの１つのセグメントだけに対応する。このメソッドの入力パラメータに、たとえば、代替物のコレクションが返されるテキスト選択の始めを指定する値と、代替物のコレクションが返されるテキスト選択の長さを指定する値と、返される代替物の最大個数を指定する値を含めることができる。このメソッドは、認識結果の最良の結果ストリング内の選択物からの代替物のＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅＣｏｌｌｅｃｔｉｏｎコレクションを返すことができる。
【０２１７】
ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔｓに、さらに、「ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ  Ｍｅｒｇｅ（ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ  ｌｅｆｔ、  ｓｔｒｉｎｇ  ｓｅｐａｒａｔｏｒ、  ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ  ｒｉｇｈｔ）」と称するメソッドを含めることができる。このメソッドは、平らな格子をもたらす、単一ストリングからの新しいＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔオブジェクトの作成、既存ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔオブジェクトの先頭または末尾への単一ストリングの付加、または既存の２つのＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔオブジェクトの間での単一ストリングの連結に使用することができる。このクラスに、「ＭｏｄｉｆｙＴｏｐＡｌｔｅｒｎａｔｅ（ＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅ  ａｌｔｅｒｎａｔｅ）」と称するメソッドも含めることができ、このメソッドは、認識結果を既知の代替物を用いて修正することを指定する。いくつかの実施形態では、デフォルトで、認識分析プロセスの結果の最良の結果ストリングが、最上位の代替物に対応する。しかし、このメソッドを使用して、最上位の代替物以外の代替物を、認識分析プロセスの結果において使用することを指定することができる。新しい最上位代替物が、前の代替物と異なるセグメント化をもたらす場合には、ＭｏｄｉｆｙＴｏｐＡｌｔｅｒｎａｔｅメソッドは、その変更を反映するようにコンテキストノードを自動的に更新する。認識結果を修正するために使用できる代替物を検索するために、このメソッドは、ＧｅｔＡｌｔｅｒｎａｔｅｓＦｒｏｍＳｅｌｅｃｔｉｏｎメソッドを呼び出す。このクラスは、「Ｓｔｒｅａｍ  Ｓａｖｅ（）」と称するメソッドも有することができ、このメソッドは、関連するＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔｓオブジェクトを、認識格子の形態で永続的に維持する。認識格子は、認識プロセスからの結果を表すのに使用されるシリアライズされたフォーマットである。
【０２１８】
Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩは、ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ列挙型も有することができる。この型には、分析プロセスに関するすべての使用可能なオプションを使用可能にする「ｃｏｎｓｔ  ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ  Ｄｅｆａｕｌｔ」と称するフィールドなど、インクデータを分析プロセスによって分析する方法を指定する１つまたは複数のフィールドを含めることができる。このフィールドは、たとえば、テキスト認識、テーブルの使用、リストの使用、注釈の使用、コネクタおよびコンテナの使用、および中間結果の使用を可能にすることができる。この型に、注釈の検出を使用可能または使用不能にする「ｃｏｎｓｔ  ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ  ＥｎａｂｌｅＡｎｎｏｔａｔｉｏｎｓ」と称するフィールドと、コネクタおよびコンテナの検出を使用可能または使用不能にする「ｃｏｎｓｔ  ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ  ＥｎａｂｌｅＣｏｎｎｅｃｔｏｒｓＡｎｄＣｏｎｔａｉｎｅｒｓ」と称するフィールドと、異なるシーケンシャル分析プロセスの使用の間（たとえば、解析プロセスとその後の認識プロセスの間）にソフトウェアアプリケーションに分析の結果を返すことを使用可能または使用不能にする「ｃｏｎｓｔ  ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ  ＥｎａｂｌｅＩｎｔｅｒｍｅｄｉａｔｅＲｅｓｕｌｔｓ」とを含めることもできる。この型は、リストの検出を使用可能または使用不能にする「ｃｏｎｓｔ  ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ  ＥｎａｂｌｅＬｉｓｔｓ」と称するフィールド、およびテーブルの検出を使用可能または使用不能にする「ｃｏｎｓｔ  ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ  ＥｎａｂｌｅＴａｂｌｅｓ」と称するフィールドも有することができる。この列挙型に、さらに、テキスト認識分析プロセスを使用可能または使用不能にする「ｃｏｎｓｔ  ＡｎａｌｙｓｉｓＯｐｔｉｏｎｓ  ＥｎａｂｌｅＴｅｘｔＲｅｃｏｇｎｉｔｉｏｎ」と称するフィールドを含めることができる。しかし、追加の分析プロセス（または同一分析プロセスの異なるバージョン）が使用可能である場合には、この型に、追加のＡｎａｌｙｓｉｓＯｐｔｉｏｎｓをそれ相応に含めることができる。
【０２１９】
さらに、Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩに、ＡｎａｌｙｓｉｓＲｅｓｕｌｔｓＥｖｅｎｔＡｒｇｓクラスを含めることができる。このクラスは、「ｐｕｂｌｉｃ  ＡｎａｌｙｓｉｓＲｅｓｕｌｔｓＥｖｅｎｔＡｒｇｓ（）」と称するコンストラクタを有することができ、このコンストラクタは、分析結果を含み、ＡｎａｌｙｓｉｓＲｅｓｕｌｔｓイベントが引き起こされるときにソフトウェアアプリケーションに返されるデータ構造を作成する。このクラスに、「ＩｎｋＡｎａｌｙｚｅｒ  ＩｎｋＡｎａｌｙｚｅｒ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティによって、分析プロセスを実行するＩｎｋＡｎａｌｙｚｅｒオブジェクトが識別される。
【０２２０】
このＡＰＩは、Ｌｉｎｅクラスも有することができ、このクラスは、幾何学的線を表す「Ｌｉｎｅ」オブジェクトの使用を認識するオペレーティングシステムのいくつかの型で有用になる可能性がある。このクラスに、Ｌｉｎｅオブジェクトを作成する「ｐｕｂｌｉｃ  Ｌｉｎｅ（Ｐｏｉｎｔ  ｂｅｇｉｎＰｏｉｎｔ、  Ｐｏｉｎｔ  ｅｎｄＰｏｉｎｔ）」と称するコンストラクタなどのコンストラクタを含めることができる。このクラスに、Ｌｉｎｅオブジェクトの始点を表す「ｐｕｂｌｉｃ  Ｐｏｉｎｔ  ＢｅｇｉｎＰｏｉｎｔ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティ、およびＬｉｎｅオブジェクトの終点を表す「ｐｕｂｌｉｃ  Ｐｏｉｎｔ  ＥｎｄＰｏｉｎｔ  ｛ｇｅｔ；  ｓｅｔ；｝」と称するプロパティなど、さまざまなプロパティも含めることができる。
【０２２１】
これらのクラスのほかに、Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩに、Ｒｅｃｏｇｎｉｔｉｏｎ  Ａｌｔｅｒｎａｔｅクラスも含めることができる。このクラスには、レコグナイザの辞書と比較される、インクのセグメントに関する可能な単語の一致を表す要素を含めることができる。たとえば、このクラスに、単一の線（線は２つの点によって表される）に存在するＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅオブジェクトのアセンダラインを提供する「Ｌｉｎｅ  Ａｓｃｅｎｄｅｒ  ｛ｇｅｔ；｝」と称するプロパティと、単一の線に存在するＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅオブジェクトのベースラインを提供する「ｐｕｂｌｉｃ  Ｌｉｎｅ  Ｂａｓｅｌｉｎｅ  ｛ｇｅｔ；｝」と称するプロパティと、単一の線に存在するＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅのディセンダラインを提供する「Ｌｉｎｅ  Ｄｅｓｃｅｎｄｅｒ  ｛ｇｅｔ；｝」と称するプロパティとを含めることができる。このクラスに、「ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔ  Ｅｘｔｒａｃｔ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティは、現在のＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅオブジェクトのＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔｓオブジェクトを提供する。このプロパティは、たとえば、単語を含む行のＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔオブジェクトからその単語のＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔオブジェクトを抽出するのに使用することができる。
【０２２２】
このクラスに、単一の線に存在するＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅオブジェクトの中線を提供する「Ｌｉｎｅ  Ｍｉｄｌｉｎｅ  ｛ｇｅｔ；｝」と称するプロパティと、インクオブジェクトに含まれるストロークのコレクションを提供する（すなわち、ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔに関連するストロークを表すＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎを提供する）「ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ  Ｓｔｒｏｋｅｓ  ｛ｇｅｔ；｝」と称するプロパティと、１つまたは複数のインクオブジェクトに含まれる、ＲｅｃｏｇｎｉｔｉｏｎＲｅｓｕｌｔに関連するストロークを表すストロークのコレクションを提供する「ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ［］  ＳｔｒｏｋｅｓＡｒｒａｙ  ｛ｇｅｔ；｝」と称するプロパティとを含めることもできる。このクラスに、「ＲｅｃｏｇｎｉｔｉｏｎＣｏｎｆｉｄｅｎｃｅ  ＲｅｃｏｇｎｉｔｉｏｎＣｏｎｆｉｄｅｎｃｅ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティは、認識分析プロセスがＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅオブジェクトまたはジェスチャの認識で判定した信頼のレベル（たとえば、強、中、または弱）を提供する「ＲｅｃｏｇｎｉｔｉｏｎＣｏｎｆｉｄｅｎｃｅ  ＲｅｃｏｇｎｉｔｉｏｎＣｏｎｆｉｄｅｎｃｅ  ｛ｇｅｔ；｝」と称するプロパティも含めることができる。行でないノードについて、関連するコンテキストノードの子の最小のＲｅｃｏｇｎｉｔｉｏｎＣｏｎｆｉｄｅｎｃｅが返される。このクラスに、「ｓｔｒｉｎｇ  ＲｅｃｏｇｎｉｚｅｄＳｔｒｉｎｇ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティは、代替物の結果ストリングを指定する。したがって、単語コンテキストノードより上位の任意のコンテキストノードについて、結果ストリングが、このメソッドによって共に連結される。たとえば、行ノードに、すべての子ノードまたは単語ノードの結果が含まれる結果ストリングが含まる。段落ノードに、そのすべての子ノードまたは行ノードの結果を含む結果ストリングが含まれる。
【０２２３】
ＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅクラスに、たとえば「ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ［］  ＧｅｔＳｔｒｏｋｅｓＡｒｒａｙＦｒｏｍＴｅｘｔＲａｎｇｅ（ｉｎｔ  ｓｅｌｅｃｔｉｏｎｓｔａｒｔ、  ｉｎｔ  ｓｅｌｅｃｔｉｏｎｌｅｎｇｔｈ）」と称するメソッドを含む１つまたは複数のメソッドも含めることができ、このメソッドは、既知のテキスト範囲に対応する各インクオブジェクトからのＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎを指定する。このクラスに、「ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ［］  ＧｅｔＳｔｒｏｋｅｓＦｒｏｍＳｔｒｏｋｅｓＡｒｒａｙＲａｎｇｅｓ（ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ［］  ｓｔｒｏｋｅｓＡｒｒａｙ」と称するメソッドも含めることができ、このメソッドは、ストロークの既知の入力コレクションを含み、レコグナイザが代替物を提供できる、ストロークの最小のコレクションを指定する。より詳細には、ストロークが、インクオブジェクトの配列によって返され、この配列のそれぞれに、コレクションのストロークインデックスの配列が含まれる。このメソッドによって返されるインクストロークのコレクションは、入力コレクションと一致する場合があり、あるいは、入力コレクションが、入力ストロークのすべてを含む最小の認識結果の一部だけと一致する場合、より長い場合がある。このクラスには、さらに、「ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ  ＧｅｔＳｔｒｏｋｅｓＦｒｏｍＳｔｒｏｋｅｓＲａｎｇｅｓ（ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ  ｓｔｒｏｋｅｓ）」と称するメソッドを含めることができ、このメソッドは、ストロークの既知の入力コレクションを含み、およびレコグナイザが代替物を提供できるストロークの最小コレクションを指定する。このクラスに、さらに、「ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ  ＧｅｔＳｔｒｏｋｅｓＦｒｏｍＴｅｘｔＲａｎｇｅ（ｉｎｔ  ｓｅｌｅｃｔｉｏｎｓｔａｒｔ、  ｉｎｔ  ｓｅｌｅｃｔｉｏｎｌｅｎｇｔｈ）」と称するメソッドを含めることができ、このメソッドは、既知のテキスト範囲に対応するＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎを指定する。
【０２２４】
このクラスに、さらに、「ｖｏｉｄ  ＧｅｔＴｅｘｔＲａｎｇｅＦｒｏｍＳｔｒｏｋｅｓ（ｒｅｆ  ｉｎｔ  ｓｅｌｅｃｔｉｏｎｓｔａｒｔ、  ｒｅｆ  ｉｎｔ  ｓｅｌｅｃｔｉｏｎｅｎｄ、  ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ  ｓｔｒｏｋｅｓ）」と称するメソッドを含めることができ、このメソッドは、ストロークの既知のセットを含む代替物をレコグナイザが返すことができる認識されたテキストの最小の範囲を指定し、このクラスに、さらに、「ｖｏｉｄ  ＧｅｔＴｅｘｔＲａｎｇｅＦｒｏｍＳｔｒｏｋｅｓＡｒｒａｙ（ｒｅｆ  ｉｎｔ  ｓｅｌｅｃｔｉｏｎｓｔａｒｔ、  ｒｅｆ  ｉｎｔ  ｓｅｌｅｃｔｉｏｎｅｎｄ、  ＳｔｒｏｋｅＣｏｌｌｅｃｔｉｏｎ［］  ｓｔｒｏｋｅｓａｒｒａｙ）」と称するメソッドを含めることができ、このメソッドは、ストロークの既知のセットを含む代替物をレコグナイザが返すことができる認識されたテキストの最小の範囲を指定する。このクラスに、「ＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅＣｏｌｌｅｃｔｉｏｎ  ＳｐｌｉｔＷｉｔｈＣｏｎｓｔａｎｔＰｒｏｐｅｒｔｙＶａｌｕｅ（ＧＵＩＤ  ｐｒｏｐｅｒｔｙＴｙｐｅ）」と称するメソッドも含めることができ、このメソッドは、このメソッドがそれについて呼び出された代替物の分割である代替物のコレクションを返す。このコレクション内の各代替物に、メソッドに渡されたプロパティと同一のプロパティ値を有する隣接認識セグメントが含まれる。たとえば、このメソッドを使用して、認識結果における信頼度の境界のレベル（強、中、または弱）、行境界、またはセグメント境界によって元の代替物を分割する代替物を得ることができる。このクラスに、さらに、「ｂｙｔｅ［］  ＧｅｔＰｒｏｐｅｒｔｙＶａｌｕｅ（ＧＵＩＤ  ｐｒｏｐｅｒｔｙＴｙｐｅ）」と称するメソッドを含めることができ、このメソッドは、代替物でのレコグナイザの信頼度など、代替物の既知のプロパティの値を指定する。しかし、すべての認識分析プロセスが、すべてのプロパティ型の値を提供するわけではない。したがって、このメソッドは、関連する認識分析プロセスによってサポートされる型のデータを提供する。
【０２２５】
Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩに、Ｒｅｃｏｇｎｉｔｉｏｎ  Ａｌｔｅｒｎａｔｅ  Ｃｏｌｌｅｃｔｉｏｎクラスも含めることができる。上述のクラスの多くと同様に、このクラスに、ＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅＣｏｌｌｅｃｔｉｏｎオブジェクトを作成する、「ＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅＣｏｌｌｅｃｔｉｏｎ（）」と称するコンストラクタを含めることができる。このクラスに、代替認識値のコレクションに含まれるオブジェクトまたはコレクションの数を提供する、「Ｃｏｕｎｔ  ｛ｇｅｔ；｝」と称するプロパティ、代替認識値のコレクションへのアクセスがソフトウェアアプリケーションと同期化される（すなわち、「スレッドセーフ」である）か否かかを示す値を提供する「ＩｓＳｙｎｃｈｒｏｎｉｚｅｄ  ｛ｇｅｔ；｝」と称するプロパティ、および代替認識値のコレクションへのアクセスを同期化するために使用することができるオブジェクトを提供する「ＳｙｎｃＲｏｏｔ  ｛ｇｅｔ；｝」と称するプロパティなど、複数のプロパティも含めることができる。
【０２２６】
このクラスに、代替認識値の現在のコレクションの要素のすべてを、指定された宛先配列インデックスから始めて、指定された１次元配列にコピーする、「ｖｉｒｔｕａｌ  ｖｏｉｄ  ＣｏｐｙＴｏ（Ａｒｒａｙ  ａｒｒａｙ、  ｉｎｔ  ｉｎｄｅｘ）」と称するメソッド、および呼出し側が構造体ごとに代替認識値のコレクション内の各ＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅを介して列挙するために使用できるようにするＩＥｎｕｍｅｒａｂｌｅの標準実装である「ＩＥｎｕｍｅｒａｔｏｒ  ＩＥｎｕｍｅｒａｂｌｅ．ＧｅｔＥｎｕｍｅｒａｔｏｒ（）」と称するメソッドなど、１つまたは複数のメソッドも含めることができる。このクラスに、「ＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅＣｏｌｌｅｃｔｉｏｎＥｎｕｍｅｒａｔｏｒ  ＧｅｔＥｎｕｍｅｒａｔｏｒ（）」と称するメソッドも含めることができ、このメソッドは、認識代替値のコレクション内のすべてのオブジェクトを含むＲｅｃｏｇｎｉｔｉｏｎＡｌｔｅｒｎａｔｅＣｏｌｌｅｃｔｉｏｎＥｎｕｍｅｒａｔｏｒを返す。このメソッドは、たとえば、認識代替値のコレクション内の各オブジェクトを検索するのに使用することができる。
【０２２７】
Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩに、さらに、ＲｅｃｏｇｎｉｔｉｏｎＣｏｎｆｉｄｅｎｃｅ列挙およびＲｅｃｏｇｎｉｔｉｏｎＭｏｄｅ列挙を含めることができ、これらのそれぞれに、認識分析プロセスに関する１つまたは複数のフィールドを含めることができる。たとえば、Ｒｅｃｏｇｎｉｔｉｏｎ  Ｃｏｎｆｉｄｅｎｃｅ型に、正しい結果が提供される代替認識値のリストに含まれることを認識分析プロセスが確信していることを示す「Ｉｎｔｅｒｍｅｄｉａｔｅ」と称するフィールド、結果が提供される代替認識値のリストに含まれることを認識分析プロセスが確信していないことを示す「Ｐｏｏｒ」と称するフィールド、および代替認識値の最良の代替物が正しいことを認識分析プロセスが確信していることを示す「Ｓｔｒｏｎｇ」と称するフィールドなどの複数のフィールドを含めることができる。
【０２２８】
同様に、Ｒｅｃｏｇｎｉｔｉｏｎ  Ｍｏｄｅクラスに、認識分析プロセスが電子インクデータを解釈する方法、したがって認識結果ストリングを決定する方法を示すフィールドを含めることができる。たとえば、このクラスに、認識分析プロセスがコンテキストについて指定された擬似事実に基づいて認識結果を強制することを指定する「Ｃｏｅｒｃｅ」と称するフィールド、認識分析プロセスが電子インクデータを単一の行として扱うことを示す「Ｌｉｎｅ」と称するフィールドを含めることができる。このクラスに、認識分析プロセスが認識モードを適用しないことを指定する「Ｎｏｎｅ」と称するフィールド、および認識分析プロセスが電子インクデータを単一の単語または文字を形成するものとして扱うことを示す「Ｓｅｇｍｅｎｔ」と称するフィールドも含めることができる。さらに、このクラスに、複数のセグメント化を使用不可にする「ＴｏｐＩｎｋＢｒｅａｋｓＯｎｌｙ」と称するフィールドを含めることができる。
【０２２９】
さらに、Ｉｎｋ  Ａｎａｌｙｓｉｓ  ＡＰＩに、２つのコンテキストノードを共にリンクする方法を定義するＣｏｎｔｅｘｔ  Ｌｉｎｋクラスを含めることができる。ＣｏｎｔｅｘｔＬｉｎｋオブジェクト自体は、リンクされる２つのコンテキストノード、リンクの方向、およびリンクの型を表す。このクラスには、別のコンテキストノードからリンクされるソースコンテキストノードを指定する「ＣｏｎｔｅｘｔＮｏｄｅ  ＳｏｕｒｃｅＮｏｄｅ｛ｇｅｔ；｝」と称するプロパティ、ソースコンテキストノードと宛先コンテキストノードの間に存在するリンク関係の型を指定する「ＣｏｎｔｅｘｔＬｉｎｋＴｙｐｅ  ＬｉｎｋＴｙｐｅ｛ｇｅｔ；｝」と称するプロパティ、およびカスタムリンクが使用されていることを指定する「ＣｕｓｔｏｍＬｉｎｋＴｙｐｅ｛ｇｅｔ；｝」と称するプロパティを含めることができる。この状況は、ＡＰＩが認識できるものを越えるアプリケーション固有のリンクを表すためにＩｎｋＡｎａｌｙｚｅｒ  ＡＰＩのリンクシステムを使用するとアプリケーションが決断したときに発生する。
【０２３０】
このクラスに、「ＣｏｎｔｅｘｔＮｏｄｅ  ＤｅｓｔｉｎａｔｉｏｎＮｏｄｅ  ｛ｇｅｔ；｝」と称するプロパティも含めることができ、このプロパティは、別のコンテキストノードからリンクされている宛先コンテキストノードを指定する。このクラスから使用可能な２つのコンストラクタを設けることができ、このコンストラクタによって、既存のソースコンテキストノードと既存の宛先コンテキストノードの間の関係が作成される。
【０２３１】
このクラスに、「ＣｏｎｔｅｘｔＬｉｎｋＴｙｐｅ  ｅｎｕｍ」と称する列挙も含めることができ、この列挙によって、２つのコンテキストノードによって共有される関係の型が定義される。これらのさまざまなリンク型に、たとえば、「ＡｎｃｈｏｒｓＴｏ」型を含めることができ、この型は、あるノードが他のノードにアンカリングされることを記述する。両方のノードが、解析状況に基づいて、ＳｏｕｒｃｅＮｏｄｅプロパティまたはＤｅｓｔｉｎａｔｉｏｎＮｏｄｅプロパティを使用することができる。リンク型に、型「Ｃｏｎｔａｉｎｓ」も含めることができ、この型は、あるノードに他のノードが含まれることを記述する。この関係では、コンテナノードを、ＳｏｕｒｃｅＮｏｄｅとして参照することができ、含まれるノードを、ＤｅｓｔｉｎａｔｉｏｎＮｏｄｅとして参照することができる。リンク型に、さらに、「ＰｏｉｎｔｓＴｏ」型を含めることができ、この型は、あるノードが別のノードをポインティングしていることを記述する。この関係について、ポインティングを行っているノードを、ＳｏｕｒｃｅＮｏｄｅとして参照することができ、ポインティングされているノードを、ＤｅｓｔｉｎａｔｉｏｎＮｏｄｅとして参照することができる。さらに、リンク型が、「ＰｏｉｎｔｓＦｒｏｍ」型を有することができ、この型は、あるノードが他のノードからポインティングされていることを記述する。この関係で、他のノードからポインティングされるノードを、ＳｏｕｒｃｅＮｏｄｅとして参照することができ、ポインティングしているノードを、ＤｅｓｔｉｎａｔｉｏｎＮｏｄｅとして参照することができる。
【０２３２】
リンク型に、さらに、あるノードが別のノードの長さを水平に走ることを記述する「ＳｐａｎｓＨｏｒｉｚｏｎｔａｌｌｙ」型、およびあるノードが別のノードの長さを垂直に走ることを記述する「ＳｐａｎｓＶｅｒｔｉｃａｌｌｙ」型を含めることができる。これらの型について、通常は最後に書かれる、他のノードをカバーするノード（ストライクアウト、下線、マージンバー）を、ＳｏｕｒｃｅＮｏｄｅとして参照することができ、スパンされるノードを、ＤｅｓｔｉｎａｔｉｏｎＮｏｄｅとして参照することができる。リンク型に、カスタムリンク型が使用されたことを記述する「Ｃｕｓｔｏｍ」型も含めることができる。この値が使用されるときに、ＣｏｎｔｅｘｔＬｉｎｋオブジェクトの「ＣｕｓｔｏｍＬｉｎｋＴｙｐｅ」プロパティによって、このリンクの目的に関するさらなる詳細を提供することができる。
【０２３３】
（アプリケーションモデル）
Windows(登録商標)クライアントは、ウェブの特性を従来のデスクトップアプリケーションの特性と一体化する。アプリケーションモデルは、セキュアアプリケーションのフレームワークを提供し、クライアントアプリケーションの開発、展開、および保守を単純にする。このフレームワークは、単純で一貫性のあるユーザ経験を提供する。たとえば、ローカルアプリケーションは、そのアプリケーションがブラウザ内でホスティングされるか、独立アプリケーションであるかにかかわらず、馴染みのあるブラウザ風の特徴を活用できると同時に、ローカルクライアントで実行されるという利益が維持される。このフレームワークを用いると、ユーザが、ウェブをよく知っていることを活用でき、これによって、ユーザの快適レベルが高まり、新しいアプリケーションの使い方を習得するのに必要な時間が減る。アプリケーションモデルは、Ｓｙｓｔｅｍ．Windows名前空間の一部である。
【０２３４】
アプリケーションモデルを使用するアプリケーションは、ウェブページに類似する形で動作する。ユーザが、アプリケーションをブラウズするときに、アプリケーションが、クライアントシステムのリブートし、または他のアプリケーションの誤動作の危険を犯して、インストールのユーザ確認を必要とすることなく、自動的にインストールされる。一実施形態では、アプリケーションが、徐々にダウンロードされ、これによって、アプリケーションが完全にダウンロードされる前の初期レベルの対話性がもたらされる。アプリケーション更新は、自動的に、ユーザに透過的な手段で処理される。したがって、ユーザは、明示的にアプリケーションアップグレードを実行する必要なしに、必ずアプリケーションの最新バージョンにアクセスできる。
【０２３５】
アプリケーションモデルを使用するアプリケーションは、クライアントシステムがオンライン（すなわち、ウェブに能動的に結合される）またはオフライン（すなわち、ウェブに能動的に結合うされていない）のいずれであるかにかかわらず、クライアントシステムでローカルに動作する。これによって、アプリケーションが、能動的ウェブ接続を必要とし、継続的にウェブを介してサーバとデータを交換するサーバベースのアプリケーションよりもよい性能を提供する。アプリケーションが、クライアントシステムにインストールされた後に、アプリケーションに、「スタート」メニューから（従来のデスクトップアプリケーションのように）またはアプリケーションにナビゲートすることによって（ウェブアプリケーションのように）アクセスすることができる。アプリケーションモデルには、３つの主要な部分すなわち、アプリケーションライフサイクル管理、アプリケーションフレームワーク、およびナビゲーションフレームワークが含まれる。
【０２３６】
２つの異なるタイプのアプリケーションすなわち、「オンラインアプリケーション」および「管理されるアプリケーション」がアプリケーションモデルによってサポートされる。アプリケーションモデルを使用するアプリケーションは、ブラウザ内または独立のトップレベルウインドウ内で実行することができる。「オンラインアプリケーション」は、サーバから実行され、ブラウザ内でホスティングされるアプリケーションである。アプリケーションを、オフラインアクセスのためにキャッシングすることができ、あるいは、アプリケーションが、正しい実行のためにあるオンラインリソースを要求することができる。「管理されるアプリケーション」は、オフラインで使用可能であり、クライアントにインストールされる。オペレーティングシステムが、管理されるアプリケーションにサービスする。管理されるアプリケーションのエントリを、クライアントの「スタート」メニューに追加することができる。アプリケーションを、徐々にダウンロードして、インストールプロセスが完了するまで対話を遅延させるのではなく、ユーザが、アプリケーションのダウンロード中にそのアプリケーションとの対話を開始できるようにすることができる。
【０２３７】
アプリケーションは、アプリケーションの実行に必要な追加ライブラリおよびリソースなど、アプリケーションの依存性を記述した関連するアプリケーションマニフェストを有する。インストーラは、アプリケーションマニフェストを使用して、アプリケーションのダウンロードおよびインストールを制御する。「信頼マネージャ」が、インストールプロセスの一部として呼び出される。信頼マネージャは、アプリケーションマニフェストを使用して、アプリケーションの実行にどのパーミッションが必要であるかを判定する。アプリケーションマニフェストでは、ファイル関連付け、スタートメニューにエントリを追加するか否か、ならびにエントリのアイコンおよびテキストなどのシェル情報も指定される。
【０２３８】
アプリケーションモデルを使用するアプリケーションに、マークアップ、コード、リソース、およびマニフェストが含まれる。アプリケーションは、そのアプリケーションオブジェクトによって定義され、スコープを指定され、このアプリケーションオブジェクトは、各アプリケーションセッションの寿命の間メモリ内に残存するグローバルオブジェクトである。アプリケーションオブジェクトは、そのアプリケーションに属するすべてのリソースの知識を有し、それ自体と他のアプリケーションまたは外部リソースとの間の境界を提供する。アプリケーションフレームワークは、アプリケーションオブジェクトを使用して、アプリケーションを識別し、参照し、これと通信する。アプリケーションオブジェクトは、ウインドウおよびリソースを管理し、スタートアップ挙動およびシャットダウン挙動を指定し、コンフィギュレーション設定を処理し、アプリケーションのビジュアルスタイルを指定し、ナビゲーションにわたってコード、状態、およびリソースを共有し、アプリケーション全体のイベントを処理するためにも、アプリケーション内で使用される。
【０２３９】
ナビゲーションフレームワークは、ユーザのナビゲーションの熟知およびウェブでのジャーナリングアクティビティを活用するナビゲーションベースのアプリケーションをサポートして、アプリケーションがシステムブラウザ内でホスティングされるか独立のトップレベルウインドウ内にあるのいずれであるかにかかわらず、クライアントシステムでの馴染みのある一貫したユーザ経験を提供する。ジャーナリングは、ナビゲーションヒストリを追跡するためにナビゲーションフレームワークによって使用されるプロセスである。ジャーナルを用いると、ユーザが、リニアナビゲーションシーケンスにおいてステップを前後に再トレースできるようになる。ナビゲーション経験が、ブラウザ内または独立のナビゲーションウインドウ内のどちらででホスティングされるかにかかわらず、各ナビゲーションが、ジャーナル内に残存し、「戻る」ボタンおよび「次」ボタンを使用することまたは「ｇｏ  ｆｏｒｗａｒｄ」メソッドおよび「ｇｏ  ｂａｃｋ」メソッドを使用することによって、リニアシーケンスで再訪問することができる。各ナビゲーションウインドウが、関連するジャーナルを有する。
【０２４０】
ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎクラスは、ナビゲーションに関連するプロパティおよびイベントを提供することによって、ナビゲーションベースアプリケーションを作成する作業を単純にする。ＮａｖｉｇａｔｉｏｎＡｐｐｌｉｃａｔｉｏｎクラスには、アプリケーションが始めて起動されるときにシステムがナビゲートするページまたは要素を指定するスタートアッププロパティが含まれる。このクラスは、アプリケーション開発者が、アプリケーションをサブクラス化する必要なしにページにわたってグローバル状態情報を共有できるようにするプロパティコレクションを有し、これらのプロパティへのデータバインディングをサポートする。
【０２４１】
（例示的なコンピューティングシステムおよび環境）
図４に、プログラミングフレームワーク１３２を（完全にまたは部分的にのいずれかで）実施できる、適するコンピューティング環境４００の例を示す。コンピューティング環境４００は、本明細書に記載のコンピュータアーキテクチャおよびネットワークアーキテクチャで使用することができる。
【０２４２】
例示的なコンピューティング環境４００は、コンピューティング環境の一例にすぎず、コンピュータおよびネットワークアーキテクチャの使用の範囲または機能性に関する制限を示唆することを意図されたものではない。また、コンピューティング環境４００を、例示的なコンピューティング環境４００に示された、構成要素のいずれかまたはその組合せに関する依存性または要件を有するものと解釈してもならない。
【０２４３】
フレームワーク１３２を、多数の他の汎用または専用コンピューティングシステム環境または構成と共に実施することができる。使用に適する可能性がある衆知のコンピューティングシステム、コンピューティング環境、および／または構成の例に、パーソナルコンピュータ、サーバコンピュータ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたは装置のいずれかを含む分散コンピューティング環境などが含まれるが、これに制限されない。このフレームワークのコンパクト版またはサブセット版を、携帯電話、携帯情報端末、ハンドヘルドコンピュータ、または他の通信／コンピューティング装置などの限られたリソースのクライアントで実施することもできる。
【０２４４】
フレームワーク１３２を、１つまたは複数のコンピュータまたは他の装置によって実行される、プログラムモジュールなどのコンピュータ実行可能命令の全般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。フレームワーク１３２は、通信ネットワークを介してリンクされたリモート処理装置によってタスクが実行される分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリストレージ装置を含むローカルおよびリモートの両方のコンピュータストレージ媒体に配置することができる。
【０２４５】
コンピューティング環境４００に、コンピュータ４０２の形の汎用コンピューティング装置が含まれる。コンピュータ４０２のコンポーネントには、１つまたは複数のプロセッサまたは処理装置４０４、システムメモリ４０６、および処理装置４０４を含むさまざまなシステムコンポーネントをシステムメモリ４０６に接続するシステムバス４０８を含めることができるが、これに制限はされない。
【０２４６】
システムバス４０８は、メモリバスまたはメモリコントローラ、周辺バス、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、およびさまざまなバスアーキテクチャのいずれかを使用するプロセッサバスまたはローカルバスを含む、複数の可能なタイプのバス構造の１つまたは複数を表す。たとえば、そのようなアーキテクチャに、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも称するＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔｓ）バスを含めることができる。
【０２４７】
コンピュータ４０２に、通常は、さまざまなコンピュータ可読媒体が含まれる。そのような媒体は、揮発性媒体および不揮発性媒体、リムーバブル媒体および固定の媒体の両方を含む、コンピュータ４０２によってアクセス可能である任意の使用可能な媒体とすることができる。
【０２４８】
システムメモリ４０６には、ランダムアクセスメモリ（ＲＡＭ）４１０などの揮発性メモリおよび／または読取専用メモリ（ＲＯＭ）４１２などの不揮発性メモリの形のコンピュータ可読媒体が含まれる。起動中などにコンピュータ４０２内の要素の間での情報の転送を助ける基本ルーチンを含む基本入出力システム（ＢＩＯＳ）４１４が、ＲＯＭ４１２に保管される。ＲＡＭ４１０には、通常は、処理装置４０４によって即座にアクセス可能および／または処理装置４０４によって現在操作されているデータおよび／またはプログラムモジュールが含まれる。
【０２４９】
コンピュータ４０２に、他のリムーバブル／固定の、揮発性／不揮発性コンピュータストレージを含めることもできる。たとえば、図４に、固定の不揮発性磁気媒体（図示せず）から読み取り、これに書き込むハードディスクドライブ４１６、リムーバブル不揮発性磁気ディスク４２０（たとえば「フロッピ(登録商標)ディスク」）から読み取り、これに書き込む磁気ディスクドライブ４１８、およびＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、または他の光媒体などのリムーバブル不揮発性光ディスク４２４から読み取り、かつ／またはこれに書き込む光ディスクドライブ４２２が含まれる。ハードディスクドライブ４１６、磁気ディスクドライブ４１８、および光ディスクドライブ４２２は、それぞれ、１つまたは複数のデータメディアインターフェース４２３によってシステムバス４０８に接続される。その代わりに、ハードディスクドライブ４１６、磁気ディスクドライブ４１８、および光ディスクドライブ４２２を、１つまたは複数のインターフェース（図示せず）によってシステムバス４０８に接続することができる。
【０２５０】
ディスクドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ４０２のコンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの不揮発性ストレージを提供する。この例では、ハードディスク４１６、リムーバブル磁気ディスク４２０、およびリムーバブル光ディスク４２４が示されているが、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光ストレージ、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、および類似物などのコンピュータによってアクセス可能なデータを保管できる他のタイプのコンピュータ可読媒体を使用して、例示的なコンピューティングシステムおよび環境を実施することもできることを理解されたい。
【０２５１】
たとえば、オペレーティングシステム４２６、１つまたは複数のアプリケーションプログラム４２８、他のプログラムモジュール４３０、およびプログラムデータ４３２を含む、任意の個数のプログラムモジュールを、ハードディスク４１６、磁気ディスク４２０、光ディスク４２４、ＲＯＭ４１２、および／またはＲＡＭ４１０に保管することができる。オペレーティングシステム４２６、１つまたは複数のアプリケーションプログラム４２８、他のプログラムモジュール４３０、およびプログラムデータ４３２（またはその組合せ）に、プログラミングフレームワーク１３２の要素を含めることができる。
【０２５２】
ユーザは、キーボード４３４およびポインティング装置４３６（たとえば「マウス」）などの入力装置を介してコンピュータ４０２にコマンドおよび情報を入力することができる。他の入力装置４３８（具体的には図示せず）に、マイクロホン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、シリアルポート、スキャナ、および／または類似物を含めることができる。上記および他の入力装置は、システムバス４０８に接続された入出力インターフェース４４０を介して処理装置４０４に接続されるが、パラレルポート、ゲームポート、またはＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などの他のインターフェースおよびバス構造によって接続することができる。
【０２５３】
モニタ４４２または他のタイプの表示装置を、ビデオアダプタ４４４などのインターフェースを介してシステムバス４０８に接続することもできる。モニタ４４２のほかに、他の出力周辺装置に、スピーカ（図示せず）およびプリンタ４４６など、入出力インターフェース４４０を介してコンピュータ４０２に接続できるコンポーネントを含めることができる。
【０２５４】
コンピュータ４０２は、リモートコンピューティング装置４４８などの１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。たとえば、リモートコンピューティング装置４４８を、パーソナルコンピュータ、ポータブルコンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピアデバイス、または他の一般的なネットワークノード、などとすることができる。リモートコンピューティング装置４４８は、コンピュータ４０２に関して本明細書で説明した要素および特徴の多くまたはすべてを含めることができるポータブルコンピュータとして図示されている。
【０２５５】
コンピュータ４０２とリモートコンピュータ４４８の間の論理接続は、ローカルエリアネットワーク（ＬＡＮ）４５０および一般的な広域ネットワーク（ＷＡＮ）４５２として図示されている。そのようなネットワーキング環境は、オフィス、会社規模のコンピュータネットワーク、イントラネット、およびインターネットでありふれたものである。
【０２５６】
ＬＡＮネットワーキング環境において実施されるときに、コンピュータ４０２は、ネットワークインターフェースまたはネットワークアダプタ４５４を介してローカルネットワーク４５０に接続される。ＷＡＮネットワーキング環境において実施されるときに、コンピュータ４０２に、通常は、広域ネットワーク４５２を介する通信を確立する、モデム４５６または他の手段が含まれる。モデム４５６は、コンピュータ４０２の内蔵または外付けとすることができるが、入出力インターフェース４４０または他の適当な機構を介してシステムバス４０８に接続することができる。図示のネットワーク接続が、例示的であり、コンピュータ４０２と４４８の間の通信リンクを確立する他の手段を使用できることを理解されたい。
【０２５７】
コンピューティング環境４００と共に図示されたものなどのネットワーク化された環境において、コンピュータ４０２に関して示したプログラムモジュールまたはその一部を、リモートメモリ記憶装置に保管することができる。たとえば、リモートアプリケーションプログラム４５８が、リモートコンピュータ４４８の記憶装置に常駐している。例示のために、アプリケーションプログラムおよびオペレーティングシステムなどの他の実行可能なプログラムコンポーネントが、本明細書では別個のブロックに図示されているが、そのようなプログラムおよびコンポーネントが、さまざまなときにコンピューティング装置４０２の異なるストレージコンポーネントに常駐することができ、コンピュータのデータプロセッサによって実行されることを理解されたい。
【０２５８】
フレームワーク１３２、具体的にはＡＰＩ１４２またはＡＰＩ１４２に対して行われる呼出しの実装を、ある形のコンピュータ可読媒体を介して保管または伝送することができる。コンピュータ可読媒体は、コンピュータによってアクセスできる任意の使用可能な媒体とすることができる。制限ではなく例として、コンピュータ可読媒体に、「コンピュータストレージ媒体」および「通信媒体」を含めることができる。「コンピュータストレージ媒体」には、揮発性および不揮発性、取外し可能および取外し不能の、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報のストレージに関する方法またはテクノロジで実施される媒体が含まれる。コンピュータストレージ媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリテクノロジ、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、または他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気記憶装置、あるいは、所望の情報を保管するのに使用でき、コンピュータによってアクセスできる他のすべての媒体が含まれるが、これに制限はされない。
【０２５９】
「通信媒体」によって、通常は、搬送波または他のトランスポート機構などの変調されたデータ信号内でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータが実施される。通信媒体には、すべての情報配信媒体も含まれる。用語「変調されたデータ信号」は、信号内で情報をエンコードする形で、その特性の１つまたは複数を設定または変更された信号を意味する。制限ではなく例として、通信媒体に、有線ネットワークまたは直接配線接続などの有線媒体と、音響、ＲＦ、赤外線、および他の無線媒体などの無線媒体が含まれる。上記のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれる。
【０２６０】
その代わりに、フレームワークの諸部分を、ハードウェアで、あるいはハードウェア、ソフトウェア、および／またはファームウェアの組合せで実施することができる。たとえば、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）またはプログラマブルロジックデバイス（ＰＬＤ）を設計またはプログラムして、本フレームワークの１つまたは複数の部分を実施することができる。
【０２６１】
プログラミングインターフェース（または単にインターフェース）は、コードの１つまたは複数のセグメントが、コードの１つまたは複数の他のセグメントと通信するかそのセグメントによって提供される機能性にアクセスできるようにする機構、処理、プロトコルとみなすことができる。その代わりに、プログラミングインターフェースを、他のコンポーネントの１つまたは複数の機構、メソッド、関数呼出し、モジュールなどとの通信接続が可能なシステムのコンポーネントの１つまたは複数の機構、メソッド、関数呼出し、モジュール、オブジェクトなどとみなすことができる。前の文の用語「コードのセグメント」は、コードの１つまたは複数の命令または行を含むことが意図されており、これには、使用される用語、コードセグメントが別々にコンパイルされるかどうか、コードセグメントがソースコード、中間コード、またはオブジェクトコードのどれとして提供されるか、コードセグメントがランタイムシステム内またはプロセス内で使用されるかどうか、コードセグメントが同一のマシンまたは異なるマシンに配置されるか、あるいはマシンにまたがって分散されるかどうか、コードのセグメントによって表される機能性が、完全にソフトウェアで、完全にハードウェアで、あるいはハードウェアとソフトウェアの組合せのどれで実施されるかに無関係に、たとえば、コードモジュール、オブジェクト、サブルーチン、関数などが含まれる。
【０２６２】
概念上、プログラミングインターフェースは、一般的に、図５または図６に示されているように見ることができる。図５に、第１コードセグメントと第２コードセグメントがそれを介して通信する導管としてのインターフェースＩｎｔｅｒｆａｃｅ１を示す。図６に、システムの第１コードセグメントおよび第２コードセグメントが媒体Ｍを介して通信できるようにする、インターフェースオブジェクトＩ１およびＩ２（第１および第２コードセグメントの一部とすることも、そうしないこともできる）を含むものとしてインターフェースを示す。図６に鑑みて、インターフェースオブジェクトＩ１およびＩ２を、同一のシステムの別々のインターフェースと考えることができ、オブジェクトＩ１およびＩ２と媒体Ｍにインターフェースが含まれると考えることもできる。図５および７に、両方向のフローおよびフローの両側のインターフェースを示したが、ある実施形態では、一方向の情報フローだけを有する（または、下で示すように情報フローなし）ことができ、あるいは、片側だけにインターフェースオブジェクトを有することができる。制限ではなく例として、アプリケーションプログラミングまたはプログラムインターフェース（ＡＰＩ）、エントリポイント、メソッド、関数、サブルーチン、リモートプロシージャコール、およびコンポーネントオブジェクトモデル（ＣＯＭ）インターフェースなどの用語が、プログラミングインターフェースの定義に含まれる。
【０２６３】
そのようなプログラミングインターフェースの態様に、第１コードセグメントが情報（ここで、「情報」は、その最も広い意味で使用され、「情報」には、データ、コマンド、要求などが含まれる）を第２コードセグメントに送る方法と、第２コードセグメントがその情報を受け取る方法と、情報の構造、シーケンス、構文、編成、スキーマ、タイミング、および内容とを含めることができる。これに関して、基礎になるトランスポート媒体自体は、媒体が有線、無線またはその両方の組合せのどれであれ、インターフェースによって定義される形で情報がトランスポートされる限り、インターフェースの動作に重要でない可能性がある。ある状況では、情報転送が別の機構を介する（たとえば、情報が、コードセグメントの間で流れる情報と別に、バッファ、ファイルなどに置かれる）ので、従来の意味で一方向または両方向に渡されないか、あるコードセグメントが第２コードセグメントによって実行される機能性に単純にアクセスするので情報が存在しない場合がある。これらの態様のいずれかまたはすべてが、所与の状況で、たとえば、コードセグメントが疎結合された構成または密結合された構成のどちらの一部であるかに応じて、重要になる可能性があり、したがって、このリストは、例示的であり、非限定的とみなされなければならない。
【０２６４】
プログラミングインターフェースのこの概念は、当業者に既知であり、本発明の前述の詳細な説明から明白である。しかし、プログラミングインターフェースを実施する他の形があり、明示的に除外されない限り、これらも、本明細書に記載の請求項に含まれることが意図されている。そのような他の形は、図５および７の極度に単純化された図よりも洗練されて見える、または複雑に見える可能性があるが、それでも、そのような他の形によって、同一の全体的な結果を達成する類似する機能が実行される。これから、プログラミングインターフェースの例示的な代替実施形態を短く説明する。
【０２６５】
Ａ．因数分解
あるコードセグメントから別のコードセグメントへの通信は、通信を複数の個別の通信に分解することによって、間接的に達成することができる。これを、図７および９に概略的に示す。図からわかるように、いくつかのインターフェースを、機能性の分割可能なセットとして記述することができる。したがって、数学的に２４または２×２×３×２を提供するように、図５および７のインターフェースの機能性を因数分解して、同一の結果を達成することができる。したがって、図７からわかるように、インターフェースＩｎｔｅｒｆａｃｅ１によって提供される機能を再分割して、このインターフェースの通信を複数のインターフェース、Ｉｎｔｅｒｆａｃｅ１Ａ、Ｉｎｔｅｒｆａｃｅ１Ｂ、Ｉｎｔｅｒｆａｃｅ１Ｃなどに変換し、同一の結果を達成することができる。図８からわかるように、インターフェースＩ１によって提供される機能性を、複数のインターフェースＩ１ａ、Ｉ１ｂ、Ｉ１ｃなどに再分割し、それと同時に同一の結果を達成することができる。同様に、第１コードセグメントから情報を受け取る第２コードセグメントのインターフェースＩ２を、複数のインターフェースＩ２ａ、Ｉ２ｂ、Ｉ２ｃなどに因数分解することができる。因数分解するときに、第１コードセグメントに含まれるインターフェースの数が、第２コードセグメントに含まれるインターフェースの数と一致する必要はない。図７および９のどちらの場合でも、インターフェースＩｎｔｅｒｆａｃｅ１およびＩ１の機能的趣旨は、それぞれ図５および７と同一のままである。インターフェースの因数分解は、関連するプロパティ、累算的プロパティ、および他の数学的プロパティに従う場合もあり、因数分解の理解が困難な場合がある。たとえば、動作の順序付けは、重要でない場合があり、その結果、あるインターフェースによって実行される機能を、別のコードまたはインターフェースによって、インターフェースに達するよりかなり前に実行することができ、あるいは、システムの別々の構成要素によって実行することができる。さらに、プログラミング技術の当業者は、同一の結果を達成する異なる関数呼出しを行うさまざまな形があることを理解することができる。
【０２６６】
Ｂ．再定義
いくつかの場合に、初期の結果を達成しながら、プログラミングインターフェースのある態様（たとえばパラメータ）を無視し、追加し、または再定義することが可能である場合がある。これを、図９および１１に示す。たとえば、図５のインターフェースＩｎｔｅｒｆａｃｅ１に、関数呼出しＳｑｕａｒｅ（ｉｎｐｕｔ、ｐｒｅｃｉｓｉｏｎ、ｏｕｔｐｕｔ）すなわち、３つのパラメータｉｎｐｕｔ、ｐｒｅｃｉｓｉｏｎ、およびｏｕｔｐｕｔを含む呼出しであって、第１コードセグメントから第２コードセグメントに発行される関数呼出しが含まれると仮定する。真ん中のパラメータｐｒｅｃｉｓｉｏｎが、図９に示されているように、所与のシナリオで関係がない場合に、無視することができ、意味のない（この状況）パラメータと置換することができる。関係のない追加のパラメータを追加することもできる。どちらの場合でも、ｉｎｐｕｔが第２コードセグメントによって二乗された後にｏｕｔｐｕｔが返される限り、ｓｑｕａｒｅ（二乗）の機能性を達成することができる。ｐｒｅｃｉｓｉｏｎ（精度）は、コンピューティングシステムの下流または他の部分に意味のあるパラメータとすることもできるが、二乗計算の狭い目的について精度が必要でないことが理解されたならば、置換するか無視することができる。たとえば、結果に悪影響を及ぼさずに、有効な精度値を渡すのではなく、誕生日などの意味のある値を渡すことができる。同様に、図１０に示されているように、インターフェースＩ１が、インターフェースへのパラメータを無視するか追加するために再定義されたインターフェースＩ１’に置換される。インターフェースＩ２は、同様に、不要なパラメータを無視するか、ほかで処理できるパラメータについて再定義されたインターフェースＩ２’として再定義することができる。ここでのポイントは、いくつかの場合に、プログラミングインターフェースに、パラメータなど、ある目的に不要な態様が含まれる場合があり、したがって、それらを無視するか再定義することができ、あるいは、他の目的のために他の形で処理できるということである。
【０２６７】
Ｃ．インラインコーディング
２つの別々のコードモジュールの機能性の一部またはすべてをマージし、これらの間の「インターフェース」の形を変えることが実行可能である場合もある。たとえば、図５および７の機能性を、それぞれ図１１および１３の機能性に変換することができる。図１１では、図５の前の第１コードセグメントおよび第２コードセグメントが、その両方を含む１つのモジュールにマージされている。この場合に、コードセグメントは、まだ互いに通信することができるが、インターフェースは、単一モジュールにより適する形に適合させることができる。したがって、たとえば、前のＣａｌｌステートメントおよびＲｅｔｕｒｎステートメントは、もはや不要とすることができるが、インターフェースＩｎｔｅｒｆａｃｅ１に準ずる類似する処理または応答を、まだ有効とすることができる。同様に、図１２では、図６のインターフェースＩ２の一部（またはすべて）を、インターフェースＩ１にインラインで記述して、インターフェースＩ１”を形成することができる。図からわかるように、インターフェースＩ２は、Ｉ２ａおよびＩ２ｂに分割され、インターフェース部分Ｉ２ａは、インターフェースＩ１とインラインにコーディングされて、インターフェースＩ１”を形成する。具体的な例として、図６のインターフェースＩ１が、関数呼出しｓｑｕａｒｅ（ｉｎｐｕｔ、ｏｕｔｐｕｔ）を実行し、これがインターフェースＩ２によって受け取られ、インターフェースＩ２は、第２コードセグメントによるｉｎｐｕｔを用いて渡された値の処理（二乗）の後に、二乗された結果にｏｕｔｐｕｔを用いて返すことを検討されたい。その場合に、第２コードセグメントによって実行される処理（ｉｎｐｕｔの二乗）を、インターフェースへの呼出しなしで、第１コードセグメントによって実行することができる。
【０２６８】
Ｄ．分離（ｄｉｖｏｒｃｅ）
あるコードセグメントから別のコードセグメントへの通信は、通信を複数の個別の通信に分解することによって、間接的に達成することができる。これを、図１３および１５に示す。図１３からわかるように、１または複数のミドルウェア（機能性および／またはインターフェース機能を元のインターフェースから分離するので、分離インターフェース）を設けて、第１インターフェースＩｎｔｅｒｆａｃｅ１の通信を、異なるインターフェース、この例ではインターフェースＩｎｔｅｒｆａｃｅ２Ａ、Ｉｎｔｅｒｆａｃｅ２Ｂ、およびＩｎｔｅｒｆａｃｅ２Ｃに従うように変換する。たとえば、これは、たとえばＩｎｔｅｒｆａｃｅ１プロトコルに従ってオペレーティングシステムと通信するように設計されたアプリケーションのインストールベースがあるが、そのオペレーティングシステムが、異なるインターフェース、この例ではインターフェースＩｎｔｅｒｆａｃｅ２Ａ、Ｉｎｔｅｒｆａｃｅ２Ｂ、およびＩｎｔｅｒｆａｃｅ２Ｃを使用するように変更される場合に行うことができる。ポイントは、第２コードセグメントによって使用された元のインターフェースが、もはや第１コードセグメントによって使用されるインターフェースと互換でなくなるように変更され、したがって、古いインターフェースと新しいインターフェースとに互換性を持たせるため、仲介物が使用されることである。同様に、図１４からわかるように、インターフェースＩ１からの通信を受け取る分離インターフェースＤＩ１を有し、インターフェース機能性を、たとえば、ＤＩ２と共に働くが同一の機能的結果を提供するように再設計されているインターフェースＩ２ａおよびＩ２ｂに送る、分離インターフェースＤＩ２を有する第３コードセグメントを導入することができる。同様に、ＤＩ１およびＤＩ２は、同一のまたは類似する機能的結果を提供しながら、図６のインターフェースＩ１およびＩ２の機能性を変換するように一緒に働くことができる。
【０２６９】
Ｅ．再記述
もう１つの可能な変形形態が、コードを動的に再記述して、インターフェース機能性を、同一の総合的な結果を達成する別のものに置換することである。たとえば、中間言語（たとえば、Ｍｉｃｒｏｓｏｆｔ（登録商標）  ＩＬ、Ｊａｖａ（登録商標）  ＢｙｔｅＣｏｄｅなど）で提示されるコードセグメントを、実行環境（．ＮＥＴ  ｆｒａｍｅｗｏｒｋ（登録商標）、Ｊａｖａ（登録商標）ランタイム環境、または類似するランタイムタイプ環境によって提供されるものなど）内のジャストインタイム（ＪＩＴ）コンパイラまたはインタープリタに供給するシステムがある。ＪＩＴコンパイラは、第１コードセグメントから第２コードセグメントへの通信を動的に変換する、すなわち、それらを、第２コードセグメント（元のまたは異なる第２コードセグメント）が必要とする可能性がある異なるインターフェースに合わせることができる。これを、図１５および１７に示す。図１５からわかるように、この手法は、上で説明した分離シナリオに似ている。これは、たとえば、アプリケーションのインストールベースが、Ｉｎｔｅｒｆａｃｅ１プロトコルに従ってオペレーティングシステムと通信するように設計されているが、オペレーティングシステムが、異なるインターフェースを使用するように変更される場合に行うことができる。ＪＩＴコンパイラを使用して、通信を、オンザフライでインストールベースアプリケーションからオペレーティングシステムの新しいインターフェースに合わせることができる。図１６からわかるように、インターフェースを動的に再記述するこの手法は、動的因数分解、または他の形のインターフェースの変更にも適用することができる。
【０２７０】
代替実施形態を介してインターフェースとして同一のまたは類似する結果を達成する、上で説明したシナリオを、さまざまな形で、順次および／または並列で、または他の介在コードと共に、組みわせることもできることにも留意されたい。したがって、上で提示した代替実施形態は、相互に排他的ではなく、混合され、マッチングされ、かつ組み合わされて、図５および７で提示された包括的なシナリオと同一のまたは同等のシナリオを作ることができる。また、ほとんどのプログラミング構造と同様に、本明細書に記載されていないが、それでも本発明の趣旨および範囲によって表されるインターフェースの同一のまたは類似する機能性を達成する他の類似する形があることに留意されたい、すなわち、インターフェースの価値の基礎になるのは、少なくとも部分的に、インターフェースによって表される機能性と、インターフェースによって使用可能にされる有益な結果である。
【０２７１】
（結論）
本発明を、構造的特徴および／または方法論的動作に固有の言葉で説明したが、請求項で定義される本発明は、説明した特定の特徴または動作に必ずしも制限されないことを理解されたい。そうではなく、特定の特徴および動作は、請求される発明を実施する例示的な形として開示されたものである。
【図面の簡単な説明】
【０２７２】
【図１】クライアントが、従来のプロトコルを使用するインターネットを介してウェブサービスにアクセスするネットワークアーキテクチャを示す図である。
【図２】アプリケーションプログラムインターフェース（ＡＰＩ）を含むネットワークプラットフォームのソフトウェアアーキテクチャを示すブロック図である。
【図３】ＡＰＩによってサポートされるプレゼンテーションサブシステムならびにさまざまなＡＰＩ関数の機能クラスを示すブロック図である。
【図４】ソフトウェアアーキテクチャのすべてまたは一部を実行することができる例示的コンピュータを示すブロック図である。
【図５】プログラミングインターフェースの実施形態例を示す図である。
【図６】プログラミングインターフェースの実施形態例を示す図である。
【図７】プログラミングインターフェースの実施形態例を示す図である。
【図８】プログラミングインターフェースの実施形態例を示す図である。
【図９】プログラミングインターフェースの実施形態例を示す図である。
【図１０】プログラミングインターフェースの実施形態例を示す図である。
【図１１】プログラミングインターフェースの実施形態例を示す図である。
【図１２】プログラミングインターフェースの実施形態例を示す図である。
【図１３】プログラミングインターフェースの実施形態例を示す図である。
【図１４】プログラミングインターフェースの実施形態例を示す図である。
【図１５】プログラミングインターフェースの実施形態例を示す図である。
【図１６】プログラミングインターフェースの実施形態例を示す図である。
【符号の説明】
【０２７３】
１００  ネットワーク環境
１０４  ネットワーク
１０６，１１２，１１４，１２２〜１２９  通信リンク
１３２  プログラミングフレームワーク
１４２  ＡＰＩレイヤ
４００  コンピューティング環境
４１６  ハードディスクドライブ
４１８  磁気ディスクドライブ
４２２  光ディスクドライブ
４２０  リムーバブル不揮発性磁気ディスク
４２４  リムーバブル不揮発性光ディスク
４３８  入力装置
【図１】
2005135384.tif 000003
【図２】
2005135384.tif 000004
【図３】
2005135384.tif 000005
【図４】
2005135384.tif 000006
【図５】
2005135384.tif 000007
【図６】
2005135384.tif 000008
【図７】
2005135384.tif 000009
【図８】
2005135384.tif 000010
【図９】
2005135384.tif 000011
【図１０】
2005135384.tif 000012
【図１１】
2005135384.tif 000013
【図１２】
2005135384.tif 000014
【図１３】
2005135384.tif 000015
【図１４】
2005135384.tif 000016
【図１５】
2005135384.tif 000017
【図１６】
2005135384.tif 000018
【外国語明細書】
2005135384000001.pdf