UI オートメーション プロパティの概要

Microsoft UI オートメーション プロバイダーは、UI オートメーション要素のプロパティを公開します。 プロパティを使用すると、クライアント アプリケーションはコントロールに関する情報を取得できます。

UI オートメーションでは、オートメーション要素のプロパティとコントロール パターン の 2 種類のプロパティが公開されます。 オートメーション要素のプロパティは、コントロールの種類に関係なく、すべてのUI オートメーション要素によって公開される、Name、AcceleratorKey、ClassName などの共通のプロパティ セットで構成されます。 ほとんどのオートメーション要素プロパティは静的値です。

コントロール パターン プロパティは、特定のコントロール パターンをサポートするコントロールによって公開されるプロパティです。 各コントロール パターンには、コントロールが公開する必要があるコントロール パターン プロパティの対応するセットがあります。 たとえば、 Grid コントロール パターンをサポートするコントロールでは、ColumnCount プロパティと RowCount プロパティが公開されます。 ほとんどのコントロール パターン プロパティは動的な値です。

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

プロパティ識別子

すべてのプロパティは、プロパティ識別子 (ID) と呼ばれる PROPERTYID 数値によって識別されます。 プロバイダーとクライアントは、 IRawElementProviderAdviseEvents::AdviseEventAddedIUIAutomationElement::GetCachedPropertyValue などのメソッド呼び出しで数値 ID を使用して、プロパティ要求を識別します。 各プロパティのデータ型と既定値など、各UI オートメーションプロパティ識別子の詳細については、「プロパティ識別子」を参照してください。

プロパティ値

すべてのプロパティは読み取り専用ですが、 IDockProvider::SetDockPosition (provider) や IUIAutomationDockPattern::SetDockPosition (クライアント) など、コントロールで動作するメソッドを使用して変更できます。

プロパティ値の取得については、「UI オートメーション要素からのプロパティの取得」を参照してください。

プロパティおよびイベント

UI オートメーションのプロパティに密接に関連付けられているのは、プロパティ変更イベントの概念です。 動的プロパティの場合、クライアント アプリケーションは、プロパティ値が変更されたことを知る方法を必要とするため、情報のキャッシュを更新したり、何らかの方法で新しい情報に対応したりすることができます。 クライアントは、任意のプロパティでプロパティ変更イベントをリッスンするために登録できます。

UI で何らかの変更が発生すると、プロバイダーはイベントを生成します。 たとえば、チェック ボックスをオンまたはオフにすると、 Toggle コントロール パターンのプロバイダー実装によってプロパティ変更イベントが発生します。 プロバイダーは、クライアントがイベントをリッスンしているのか、特定のイベントをリッスンしているのかに応じて、イベントを選択的に生成できます。

すべてのプロパティ変更がイベントを生成するわけではありません。これは完全に、該当する要素の UI オートメーション プロバイダーの実装に依存します。 たとえば、リスト ボックスの標準プロキシ プロバイダーは、Selection プロパティが変更されたときにプロパティ変更イベントを発生させません。 この場合、アプリケーションは、選択が変更されたときに発生したイベントをリッスンする必要があります (UIA_SelectionItem_ElementSelectedEventId)。

「UI オートメーション イベントのサブスクライブ」で説明されているように、クライアントはイベントをサブスクライブしてリッスンします。 プロパティが変更されたイベントの場合、クライアントは IUIAutomationPropertyChangedEventHandler を実装し、インターフェイスを IUIAutomation::AddPropertyChangedEventHandler または IUIAutomation::AddPropertyChangedEventHandlerNativeArray に渡す必要があります。

リファレンス

GetCurrentPropertyValue

GetCurrentPropertyValueEx

GetCachedPropertyValue

GetCachedPropertyValueEx

概念

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

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

UI オートメーション イベントの概要