次の方法で共有


IAccessible プロキシ

IAccessible プロキシは、標準 UI 要素 (USER コントロール、USER メニュー、COMCTL および COMCTL32 の共通コントロール) の既定のアクセシビリティ情報を提供します。 この既定のサポートは、Oleacc.dll によって作成された IAccessible オブジェクトを通じて公開され、追加のサーバー開発作業なしで Microsoft Active Accessibility サポートを提供します。 サーバーは、動的注釈 API を使用して、Oleacc.dllによって公開される情報の多くを変更できますが、完全には制御できません。

プロキシの作成

UI 要素が IAccessibleインターフェイスネイティブにサポートされているかどうかを判断するには、Oleacc.dll WM_GETOBJECT メッセージを送信します。 0 以外の戻り値は、要素がネイティブに Microsoft Active Accessibility をサポートし、独自の IAccessible サポートを提供することを意味します。 ただし、戻り値が 0 の場合、Oleacc.dll は UI 要素のプロキシ オブジェクトを提供し、その代わりに意味のある情報を返そうとします。 WM_GETOBJECTの詳細については、「WM_GETOBJECTのしくみ」を参照してください。

公開される情報

Oleacc.dll は、UI 要素の Windows クラス名を使用して、IAccessible プロパティごとに公開する必要がある情報とその情報の収集方法を決定します。 たとえば、Oleacc.dll は、GetWindowText 関数を呼び出して標準のプッシュ ボタンの Name プロパティを取得しますが、この同じ関数を呼び出して、標準の編集コントロールの Value プロパティを取得します。 実際には、Oleacc.dll は、各 IAccessible メソッドを適切な Microsoft Win32 またはコントロール固有のメッセージまたは関数呼び出しにマッピングします。 このクラス名ベースの特殊な大文字と小文字を使用すると、サーバーで Microsoft Active Accessibility のサポートなしで、IAccessible プロキシ 通じて意味のある情報を返すことができます。

標準の UI 要素を使用してビルドされたアプリケーションでは、通常、追加の開発作業なしで Microsoft Active Accessibility の完全なサポートを受けられます。 この規則の例外は、サブクラス化されたコントロール、独自の文字列を格納しないコントロール (HASSTRINGS スタイルがない)、または所有者が描画するコントロールです。 このような場合、Oleacc.dll 情報はコントロールの外部に格納されるため、必要な情報を収集できません。 ただし、これらのシナリオの多く、確立された回避策、または動的注釈の使用により、サーバーは Oleacc.dllによって提供されるプロキシと連携できます。

汎用プロキシ オブジェクト

Oleacc.dll UI 要素のクラス名を認識しない場合は、できるだけ多くの情報を公開する汎用プロキシが作成されます。 これには、オブジェクトの外接する四角形、親オブジェクト、名前 (WM_GETTEXTから)、ウィンドウ階層内のすべての子が含まれます。