...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

MSAA 2.0

http://www.microsoft.com/japan/msdn/accessibility/msaa/default.asp

Microsoft Active Accessibility 2.0 というものを見つけた.
技術調査が必要なのでメモしておこう.

MSAA は本来,障害者用のUI支援アプリケーションを開発するためのものである.
これにより様々なコモンコントロールのUI要素にアクセスすることが可能になる.

基本的なアーキテクチャは, MSAA サーバ と呼ばれる IAccessible COM インタフェース を公開する COM サーバアプリケーションと, MSAA クライアントと呼ばれる COM クライアントで構成される.
MSAA に対応するアプリケーションは,UI要素ごとに IAccessible インタフェースをインプリメントしている.

MSAA サーバに対して,MSAA クライアントが IAccessible オブジェクトを取得できるかどうか問い合わせ,インプリメントされていれば IAccessible オブジェクトを取得できる.
クライアントは,このオブジェクトを介してサーバ側アプリケーションのUI要素にアクセスすることができる.

Active Accessibility の動作原理

 
クライアントは次の4つの方法で UI 要素の IAccessible オブジェクトを取得できる.
 
・AccessibleObjectFromWindow を呼び出し,UI 要素のウィンドウ ハンドルを渡す.
・AccessibleObjectFromPoint を呼び出し,UI 要素の境界四角形内にある画面上の位置を渡す.
・WinEvent フックを設定し,通知を受信し,AccessibleObjectFromEvent を呼び出して,イベントを生成したUI 要素の IAccessible インターフェイス ポインタを取得する.
・accNavigate または get_accParent など,IAccessible のメソッドを呼び出し,別のIAccessible オブジェクトに移動する.
 
from: http://www.microsoft.com/japan/msdn/library/ja/jpmsaa/htm/editMSAAv2_5_1.asp?frame=true