次の方法で共有


クライアント/サーバー通信

WinEvents メカニズムは、サーバーが Microsoft Active Accessibility クライアントと簡単に通信する方法を提供します。 多くの場合、クライアントは WinEvents に反応して情報を収集します (たとえば、フォーカスに従います)、いつでもサーバーに情報を要求できます。

WinEvent を生成するアクセス可能なオブジェクトの情報を要求するには、クライアントがイベントを処理し、関連するアクセス可能なオブジェクトとの接続を確立する必要があります。 これを行うには、クライアントは次の 6 つの手順を実行します。

  • サーバーは NotifyWinEvent を呼び出して、ユーザー インターフェイス要素に対する変更ごとに WinEvent 通知を生成します。
  • USER の WinEvent 管理コードは、クライアント アプリケーションが SetWinEventHook を使用して WinEvent フック関数を登録し、登録済みのコールバック関数を呼び出すかどうかを判断します。
  • クライアントはコールバック関数で、 AccessibleObjectFromEvent またはその他のアクセス可能なオブジェクト取得関数を呼び出すことによって、イベントを生成したオブジェクトへのアクセスを要求します。 詳細については、「 IAccessible オブジェクトの取得」を参照してください。
  • この Microsoft Active Accessibility API は、アクセス可能なオブジェクトを取得するための WM_GETOBJECT メッセージをサーバー アプリケーションに送信します。
  • WM_GETOBJECTに応答して、サーバー アプリケーションは 0 を返すか、イベントを生成したオブジェクトへの 1 回限りの参照として機能する値を返します。
  • サーバーから 0 が返された場合、Microsoft Active Accessibility はプロキシ オブジェクトを作成し、そのアドレスをクライアントに渡します。 それ以外の場合、Microsoft Active Accessibility はこの参照を使用して 、IAccessibleIDispatch などのオブジェクト インターフェイスのアドレスを取得し、そのアドレスをクライアントに提供します。

クライアントは、インターフェイス アドレスを取得したら、アクセス 可能なオブジェクトの IAccessible プロパティとメソッドを呼び出して情報を取得できます。

このセクションの内容