UI オートメーション コントロール パターンの概要

コントロール パターンは、コントロールの機能の特定の側面を Microsoft UI オートメーション クライアント アプリケーションに公開するインターフェイス実装です。 クライアントは、コントロール パターンによって公開されるプロパティとメソッドを使用して、コントロールの特定の機能に関する情報を取得したり、コントロールの動作の特定の側面を操作したりします。 たとえば、表形式インターフェイスを提供するコントロールでは 、Grid コントロール パターンを使用して、テーブル内の行と列の数を公開し、クライアントがテーブルから項目を取得できるようにします。

UI オートメーションは、コントロールの一般的な動作を表すコントロール パターンを使用します。 たとえば、ボタンなどの呼 び出 し可能なコントロールには Invoke コントロール パターンを使用し、 リスト ボックス、リスト ビュー、コンボ ボックスなどのスクロール バーがあるコントロールのスクロール コントロール パターンを使用します。 各コントロール パターンは個別の機能を表しているため、コントロール パターンを組み合わせて、特定のコントロールでサポートされる機能の完全なセットを記述できます。

Note

集約コントロールは、親によって公開される機能のユーザー インターフェイスを提供する子コントロールを使用して構築され、親は通常子コントロールに関連付けられているすべてのコントロール パターンを実装する必要があります。 一方、これらの同じコントロール パターンを子コントロールで実装する必要はありません。

 

このトピックは、次のセクションで構成されています。

UI オートメーションのコントロール パターン コンポーネント

コントロール パターンは、コントロールで使用できる個別の機能を定義するために必要なメソッド、プロパティ、イベント、およびリレーションシップをサポートします。

  • メソッドは、UI オートメーション クライアントがコントロールを操作できるようにします。
  • プロパティとイベントは、コントロールの機能と状態に関する情報を提供します。
  • UI オートメーション要素とその親、子、兄弟の関係は、UI オートメーション ツリー内の要素構造を表します。

コントロール パターンは、インターフェイスとコンポーネント オブジェクト モデル (COM) オブジェクトの関係に似たコントロールに関連します。 COM では、オブジェクトに対してクエリを実行して、サポートされているインターフェイスを確認し、それらのインターフェイスを使用して機能にアクセスできます。 UI オートメーションでは、クライアントは、どのコントロール パターンをサポートするかをコントロールに要求し、サポートされているコントロール パターンによって公開されるプロパティ、メソッド、イベント、および構造体を介してコントロールと対話できます。

プロバイダーとクライアントの制御パターン

UI オートメーション プロバイダーはコントロール パターン インターフェイスを実装し、コントロールでサポートされている特定の機能の適切な動作を公開します。 これらのインターフェイスは、クライアントに直接公開されるのではなく、UI オートメーション コアによって使用され、別のクライアント インターフェイスのセットを実装します。 たとえば、プロバイダーは IScrollProvider を介してスクロール機能をUI オートメーションし、UI オートメーションは IUIAutomationScrollPattern を介してクライアントに機能を公開します。

動的コントロール パターン

一部のコントロールでは、コントロール パターンの同じセットを必ずしもサポートしません。 たとえば、複数行の編集コントロールでは、表示可能な領域に表示できるよりも多くのテキスト行が含まれている場合にのみ垂直スクロールが有効になります。 テキストが削除されスクロールする必要がなくなると、スクロールは無効になります。 この例では、編集ボックス内のテキストの量に応じて、 IUIAutomationScrollPattern が動的にサポートされています。

UI オートメーション コントロール パターンについて次の表で説明します。 この表には、コントロール パターンの実装に使用されるプロバイダー インターフェイスと、それらにアクセスするために使用されるクライアント インターフェイスも一覧表示されています。

名前 プロバイダー インターフェイス クライアント インターフェイス 説明
注釈 IAnnotationProvider IUIAutomationAnnotationPattern ドキュメント内の注釈のプロパティ (ドキュメント テキストに接続されている余白のコメントなど) を公開するために使用します。
Dock IDockProvider IUIAutomationDockPattern ツールバーやツール パレットなど、ドッキング コンテナーにドッキングできるコントロールに使用されます。
Drag IDragProvider IUIAutomationDragPattern ドラッグ可能なコントロール、またはドラッグ可能な項目を含むコントロールをサポートするために使われます。
DropTarget IDropTargetProvider IUIAutomationDropTargetPattern ドラッグ アンド ドロップ操作のターゲットにできるコントロールをサポートするために使われます。
ExpandCollapse IExpandCollapseProvider IUIAutomationExpandCollapsePattern [ファイル] メニューなど、アプリケーションのメニュー項目など、展開または折りたたむことができるコントロールに使用されます。
Grid IGridProvider IUIAutomationGridPattern Windows エクスプローラーの大きなアイコン ビューや Microsoft Office Wordの単純なテーブルなど、指定したセルのサイズ変更や移動などのグリッド機能をサポートするコントロールに使用されます。
GridItem IGridItemProvider IUIAutomationGridItemPattern グリッドにセルがあるコントロールに使用されます。 個々のセルは、たとえば、Windows エクスプローラー詳細ビューの各セルなど、GridItem パターンをサポートしている必要があります。
Invoke IInvokeProvider IUIAutomationInvokePattern ボタンなど、呼び出し可能なコントロールに使用されます。
ItemContainer IItemContainerProvider IUIAutomationItemContainerPattern 他の項目を含めることができるコントロールに使用されます。
LegacyIAccessible ILegacyIAccessibleProvider IUIAutomationLegacyIAccessiblePattern Microsoft Active Accessibility のプロパティとメソッドをUI オートメーションクライアントに公開するために使用します。
MultipleView IMultipleViewProvider IUIAutomationMultipleViewPattern サムネイル、タイル、アイコン、リスト、または詳細ビューでデータを使用できるリスト ビュー コントロールなど、同じ情報、データ、または子の複数の表現を切り替えることができるコントロールに使用されます。
ObjectModel IObjectModelProvider IUIAutomationObjectModelPattern ドキュメントの基になるオブジェクト モデルにポインターを公開するために使われます。 このコントロール パターンを使用すると、クライアントはUI オートメーション要素から基になるオブジェクト モデルに移動できます。
RangeValue IRangeValueProvider IUIAutomationRangeValuePattern 値の範囲を持つコントロールに使用されます。 たとえば、年を表示するスピナー コントロールの範囲は 1900 ~ 2010 ですが、月数を表示するスピナー コントロールの範囲は 1 ~ 12 です。
スクロール IScrollProvider IUIAutomationScrollPattern コントロールの表示可能領域に表示できる情報よりも多くの情報がある場合にスクロールできるコントロールに使用されます。
ScrollItem IScrollItemProvider IUIAutomationScrollItemPattern コンボ ボックス コントロール内のリスト コントロールなど、スクロールするリスト内の個々の項目を持つコントロールに使用されます。
選択内容 ISelectionProvider IUIAutomationSelectionPattern リスト ボックスやコンボ ボックスなど、選択コンテナー コントロールに使用されます。
SelectionItem ISelectionItemProvider IUIAutomationSelectionItemPattern リスト ボックスやコンボ ボックスなどの選択コンテナー コントロールの個々の項目に使用されます。
スプレッドシート ISpreadsheetProvider IUIAutomationSpreadsheetPattern スプレッドシートまたは他のグリッド ベースのドキュメントのコンテンツを公開するために使われます。 スプレッドシート コントロール パターンを実装するコントロールは、Grid コントロール パターンも実装する必要があります。
SpreadsheetItem ISpreadsheetItemProvider IUIAutomationSpreadsheetItemPattern スプレッドシートまたは他のグリッド ベースのドキュメントでセルのプロパティを公開するために使われます。 SpreadsheetItem コントロール パターンを実装するコントロールは、GridItem コントロール パターンも実装する必要があります。
スタイル IStylesProvider IUIAutomationStylesPattern 特定のスタイル、塗りつぶしの色、塗りつぶしパターン、または図形を含む UI 要素を記述するために使われます。
SynchronizedInput ISynchronizedInputProvider IUIAutomationSynchronizedInputPattern キーボードまたはマウスの入力を受け入れるコントロールに使用されます。
テーブル ITableProvider IUIAutomationTablePattern グリッドとヘッダーの情報を持つコントロールに使用されます。
TableItem ITableItemProvider IUIAutomationTableItemPattern テーブル内の項目に使用されます。
[テキスト] ITextProvider IUIAutomationTextPattern テキストの情報を公開するエディット コントロールとドキュメントに使用されます。
TextEdit ITextEditProvider IUIAutomationTextEditPattern 自動修正を実行するコントロールや入力コンポジションを有効にするコントロールなど、プログラムによってテキストを変更する編集コントロールに使用されます。
TextChild ITextChildProvider IUIAutomationTextChildPattern Text コントロール パターンをサポートする、要素に最も近い祖先にアクセスするために使われます。
TextRange ITextRangeProvider IUIAutomationTextRange 編集コントロールやドキュメントなどのテキスト ベースのコントロールからテキスト コンテンツ、テキスト属性、埋め込みオブジェクトを取得するために使用されます。
トグル IToggleProvider IUIAutomationTogglePattern チェックボックスやチェック可能なメニュー項目など、状態を切り替えることができるコントロールに使用されます。
変換 ITransformProvider IUIAutomationTransformPattern サイズ変更、移動、または回転を行えるコントロールに使用されます。 Transform コントロール パターンの一般的な用途は、デザイナー、フォーム、グラフィカル エディター、および描画アプリケーションでの使用です。
Value IValueProvider IUIAutomationValuePattern 日付/時刻の選択など、指定された範囲内にない値を持つコントロールに使用されます。
VirtualizedItem IVirtualizedItemProvider IUIAutomationVirtualizedItemPattern 仮想リスト内の項目を操作するコントロールに使用されます。
ウィンドウ IWindowProvider IUIAutomationWindowPattern ウィンドウに使用されます。 たとえば、最上位のアプリケーション ウィンドウ、複数ドキュメント インターフェイス (MDI) の子ウィンドウ、ダイアログ ボックスなどです。

 

概念

UI オートメーション コントロール パターンの実装

UI オートメーション クライアントのコントロール パターン マッピング