MSAA на основе COM?
Мне интересно, если MSAA основан на COM, то можно использовать CreateObject("Доступность") для создания экземпляра и вызова его методов. У меня не было успеха в этом. У меня есть "OLEACC.DLL" в SYSTEM32, и он зарегистрирован в Windows. Но CreateObject не работает.
Какие-нибудь мысли?
Я хотел бы использовать функции, такие как AccessibleObjectFromPoint(), чтобы получить объект IAccessible элемента управления в данной точке.
У кого-нибудь был такой опыт?
Любой вклад будет высоко оценен,
Спасибо,
Камиль
1 ответ
MSAA основывается на COM. Тем не менее, не существует совместно созданного класса, он предоставляет только интерфейсы. Вот почему вы не можете сделать CreateObject()
,
Представленные MSAA API, такие как AccessibleObjectFromPoint
а также AccessibleObjectFromWindow
являются экспортируемыми dll методами C++. Вы можете использовать их из C++, связывая соответствующую библиотеку или делая LoadLibrary/GetProcAddress
с именем функции. Из C# вы можете получить объявление P/nvoke для них от http://pinvoke.net/. Например, вот DllImport для AccessibleObjectFromWindow
,