次の方法で共有


IAccessible オブジェクトの取得

Microsoft Active Accessibility には、クライアントがアクセス可能なオブジェクトを取得できるようにする AccessibleObjectFromWindowAccessibleObjectFromPoint などの関数が用意されています。 これらの関数は、クライアントがアクセス可能なオブジェクトに関する情報を取得する IDispatch または IAccessible インターフェイス ポインターを返します。

クライアントがオブジェクトへのインターフェイスを取得する AccessibleObjectFromWindow またはその他の AccessibleObjectFromX 関数を呼び出すと、Microsoft Active Accessibility は、適切なアプリケーション内の該当するウィンドウ プロシージャに WM_GETOBJECT ウィンドウ メッセージを送信します。 クライアントに情報を提供するには、サーバーが WM_GETOBJECT メッセージに応答する必要があります。

UI 要素に関する特定の情報を収集するには、クライアントは最初に 要素の IAccessible インターフェイスを取得する必要があります。 要素の IAccessible オブジェクトを取得するために、クライアントは次のいずれかの関数を使用できます。

IAccessible インターフェイス ポインターを取得するには

  1. クライアントは、 AccessibleObjectFromX 関数のいずれかを呼び出します。

  2. Oleacc.dllは、サーバーに WM_GETOBJECT メッセージを送信します。

  3. サーバーは、要求に対応する UI 要素を決定します。

  4. サーバーは 0 を返して、Oleacc.dll プロキシを要求します。

    または

    IAccessible オブジェクト (ネイティブ実装) を返します。 これを行うには、次のようにします。

    • 要素の IAccessible オブジェクトを構築します。
    • LresultFromObject を呼び出して、オブジェクトのポインターをマーシャリングします。
    • LRESULT をOleacc.dllに返します。
  5. Oleacc.dllは、WM_GETOBJECTからの戻り値 調べます。

    0 の場合、Oleacc.dllはプロキシ オブジェクトを構築し、クライアントに返します。

    または

    0 以外の場合、Oleacc.dllは ObjectFromLresult を 呼び出して、ネイティブ IAccessible オブジェクト ポインターのマーシャリングを解除し、クライアントに返します。