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,

Другие вопросы по тегам