1

MSAA が COM ベースであるかどうか疑問に思っているのですが、CreateObject("Accessibility") を使用してインスタンスを作成し、そのメソッドを呼び出すことができるはずです。私はそれをすることに成功しませんでした。SYSTEM32 に「OLEACC.DLL」があり、Windows に登録されています。しかし、CreateObject は失敗します。

何かご意見は?

AccessibleObjectFromPoint() のような関数を使用して、特定の時点でコントロールの IAccessible オブジェクトを取得したいと思います。

誰もそのような経験をしたことがありますか?

ご意見をお寄せいただければ幸いです。

ありがとう、

カミル

4

1 に答える 1

2

MSAA は COM ベースです。ただし、共同作成可能なクラスは公開されておらず、インターフェイスのみが公開されています。それができない理由ですCreateObject()

AccessibleObjectFromPointおよびのような MSAA 公開 API は、AccessibleObjectFromWindowdll でエクスポートされた C++ メソッドです。適切なライブラリをリンクするかLoadLibrary/GetProcAddress、関数名を使用することにより、C++からそれらを使用できます。C# から、 Pinvoke.netからこれらの P/nvoke 宣言を取得できます。たとえば、これは の DllImport ですAccessibleObjectFromWindow

于 2009-12-15T00:39:34.480 に答える