Ranorex は、Windows 用のユーザー インターフェイス テスト ツールです。UI 要素が Microsoft Active Accessiblity (MSAA) をサポートしている場合、要素に関する豊富な情報を取得できます。これは、テスト スクリプトを記述するのに非常に役立ちます。
VB6 には、MSAA をサポートしていない多くのレガシー コードがあります。
次のように、VB6 UserControls の一部にこのサポートを追加しようとしています。
ATL を使用して C++ で ActiveX コンポーネントを作成しました。これには、インターフェイス IAccessible を実装するヘルパー クラスが含まれています。また、VB6 から呼び出すことができる初期化関数も含まれています。
VB6 UserControl はヘルパー オブジェクトを作成し、そのウィンドウ ハンドルと名前を初期化関数に渡します。ヘルパー オブジェクトはウィンドウをサブクラス化し、WM_GETOBJECT メッセージを処理して、ウィンドウに IAccessible インターフェイスを提供します。
私はコードをデバッグしましたが、私が知る限り、それは機能しています。Ranorex Spy ツールは IAccessible インターフェイスを取得し、インターフェイスのメソッドを呼び出します。
ただし、Ranorex は、このインターフェイスを介してフェッチしたように見える情報を実際には表示しません。
これは非常に特殊な問題であることは承知していますが、Ranorex や他の同様のテスト ツールで使用するために IAccessible を実装した経験のある人はいますか?
コードを提供できれば幸いですが、通常の投稿には多すぎると思います。