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 オートメーション イベントの概要