次の方法で共有


制御パターンの呼び出し

メソッドに関する情報など、IInvokeProviderを実装するためのガイドラインと規則について説明します。 呼び出し コントロール パターンは、アクティブ化されたときに状態を維持せず、単一の明確なアクションを開始または実行するコントロールをサポートするために使用されます。

チェック ボックスやラジオ ボタンなどの状態を維持するコントロールは、代わりに IToggleProvider実装し、ISelectionProviderをそれぞれする必要があります。 このコントロール パターンを実装するコントロールの例については、「コントロールの種類とサポートされるコントロール パターンの」を参照してください。

このトピックには、次のセクションが含まれています。

実装のガイドラインと規則

Invoke コントロール パターンを実装する場合は、次のガイドラインと規則に注意してください。

  • 同じ動作が別のコントロール パターン プロバイダーを介して公開されない場合、コントロールは IInvokeProvider実装します。 たとえば、コントロールの IUIAutomationInvokePattern::Invoke メソッドが、IUIAutomationExpandCollapsePattern::Expand メソッドまたは Collapse メソッドと同じアクションを実行する場合、コントロールは IInvokeProvider 実装しないでください。

  • 通常、コントロールの呼び出しは、Enter キー、定義済みのキーボード ショートカット、またはキーストロークの代替の組み合わせをクリックまたはダブルクリックまたは押すことによって実行されます。

  • 呼び出された イベント (UIA_Invoke_InvokedEventId) イベントは、アクティブ化されたコントロール (関連付けられたアクションを実行するコントロールへの応答として) で発生します。 可能であれば、コントロールがアクションを完了し、ブロックせずに返された後にイベントを発生させる必要があります。 呼び出された イベント (UIA_Invoke_InvokedEventId) は、次のシナリオで 呼び出し 要求を処理する前に発生する必要があります。

    • アクションが完了するまで待機することはできません。または実用的ではありません。
    • アクションにはユーザーの操作が必要です。
    • このアクションには時間がかかり、呼び出し元のクライアントが長時間ブロックされます。
  • コントロールの呼び出しに重大な副作用がある場合は、HelpText プロパティを介してそれらの副作用を公開する必要があります。 たとえば、IUIAutomationInvokePattern::Invoke が選択に関連付けられていない場合でも、呼び出、別のコントロールが選択される可能性があります。

  • ホバー (またはマウス オーバー) 効果は、通常、呼び出された イベント を構成しません。 ただし、ホバー状態に基づいて (視覚効果を引き起こすのではなく) アクションを実行するコントロールは、呼び出し コントロール パターンをサポートする必要があります。

    手記

    この実装は、マウス関連の副作用の結果としてのみコントロールを呼び出すことができる場合、アクセシビリティの問題と見なされます。

  • コントロールの呼び出しは、項目の選択とは異なります。 ただし、コントロールによっては、それを呼び出すと、項目が副作用として選択される可能性があります。 たとえば、[マイ ドキュメント] フォルダーで Microsoft Word 文書リスト アイテムを呼び出すと、アイテムが選択され、文書が開きます。

  • 要素は、呼び出されるとすぐに Microsoft UI オートメーション ツリーから消える可能性があります。 イベント コールバックによって提供される要素からの情報の要求は、結果として失敗する可能性があります。 キャッシュされた情報を事前にフェッチすることをお勧めします。

  • コントロールは、複数のコントロール パターンを実装できます。 たとえば、Microsoft Excel ツール バーの Fill Color コントロールは、Invoke コントロールと ExpandCollapse コントロール パターンの両方を実装します。 ExpandCollapse コントロール パターンはメニューを公開し、呼び出し コントロール パターンは、選択した色でアクティブな選択範囲を塗りつぶします。

IInvokeProvider に必要なメンバー

IInvokeProvider インターフェイスを実装する場合は、次のメソッドが必要です。

必須メンバー メンバーの種類 筆記
呼び出し 方式 呼び出し は非同期呼び出しであり、ブロックせずにすぐに戻る必要があります。
この動作は、呼び出されたときにモーダル ダイアログを直接または間接的に起動するコントロールにとって特に重要です。 イベントを引き起こした UI オートメーション クライアントは、モーダル ダイアログが閉じられるまでブロックされたままになります。

このコントロール パターンには、関連付けられたプロパティやイベントはありません。

コントロールの種類とサポートされているコントロール パターン

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

UI オートメーション ツリーの概要

UIA_Invoke_InvokedEventId