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

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

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

注意

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

 

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

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

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

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

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

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

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

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

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

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

Name プロバイダー インターフェイス クライアント インターフェイス 説明
注釈 IAnnotationProvider IUIAutomationAnnotationPattern ドキュメント内の注釈のプロパティ (ドキュメント テキストに接続されている余白のコメントなど) を公開するために使用されます。
Dock IDockProvider IUIAutomationDockPattern ドッキング コンテナーにドッキングできるコントロール (ツール バーやツール パレットなど) に使用されます。
Drag IDragProvider IUIAutomationDragPattern ドラッグ可能なコントロール、またはドラッグ可能な項目を含むコントロールをサポートするために使われます。
DropTarget IDropTargetProvider IUIAutomationDropTargetPattern ドラッグ アンド ドロップ操作のターゲットにできるコントロールをサポートするために使われます。
ExpandCollapse IExpandCollapseProvider IUIAutomationExpandCollapsePattern 展開または折りたたみが可能なコントロール (たとえば、[ファイル] メニューなど、アプリケーション内のメニュー項目) に使用されます。
Grid IGridProvider IUIAutomationGridPattern サイズ変更や指定したセルへの移動などのグリッド機能をサポートするコントロール (たとえば、Windows エクスプローラーの大きなアイコン ビュー、Microsoft Office Word の単純なテーブルなど) に使用されます。
GridItem IGridItemProvider IUIAutomationGridItemPattern グリッドにセルがあるコントロールに使用されます。 個々のセルは、たとえば、エクスプローラーの詳細ビューの各セルなど、GridItem パターンWindowsサポートする必要があります。
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 オートメーション クライアントのコントロール パターン マッピング