Я занимаюсь разработкой приложения, подобного Narrator (программа, которая читает текст из некоторого windows). Платформа Windows.
Я использую Microsoft Active Accessibility для реализации этой функции. У меня было окно, которое отображало некоторые сообщения. Рассказчик мог прочитать их как «IEMsgView ... (содержащиеся сообщения)». Я вскоре получил интерфейс IAccessible
этого Доступного объекта «IEMsgView». И я подтвердил, что есть только один такой объект, сравнивая его имя и местоположение.
// Let IAccessible *pList represent the one I got.
Позвонив по номеру pList->get_accChildCount()
, я подтвердил, что у него было несколько дочерних объектов. Тем не менее pList->get_accChild()
возвращает S_FALSE
, когда я передал ему действительный дочерний идентификатор, что означало, что его дочерние элементы были элементами, а сам pList
содержал информацию о них, согласно MSDN.
Однако после вызова каждого метода из pList
, который мог бы дать мне что-то, но я все еще не мог получить сообщения, отображаемые в окне. Но Рассказчик действительно зачитал их! Поэтому должен быть какой-то способ получить его.
Может кто-нибудь сказать мне, как я могу получить эти сообщения? Мне нужно IAccessible
или что-то еще?