Поделиться через


Обмен данными между клиентом и сервером

Механизм WinEvents позволяет серверам легко взаимодействовать с клиентами Microsoft Active Accessibility. Клиенты часто собирают информацию, реагируя на WinEvents (например, после фокуса), но они могут запрашивать информацию с сервера в любое время.

Чтобы запросить сведения о доступном объекте, который создает WinEvent, клиент должен обработать событие и установить подключение к соответствующему объекту со специальными возможностями. Для этого клиент выполняет следующие шесть шагов:

  • Сервер вызывает NotifyWinEvent для создания уведомления WinEvent для каждого изменения элементов пользовательского интерфейса.
  • Код управления WinEvent в USER определяет, зарегистрирована ли функция перехватчика WinEventс помощью SetWinEventHook и вызывает зарегистрированную функцию обратного вызова.
  • В функции обратного вызова клиент запрашивает доступ к объекту, который создал событие путем вызова AccessObjectFromEvent или других функций извлечения объектов. Дополнительные сведения см. в полученииобъекта IAccessible.
  • Этот API microsoft Active Accessibility отправляет серверное приложение WM_GETOBJECT сообщение, чтобы получить доступный объект.
  • В ответ на WM_GETOBJECTсерверное приложение возвращает ноль или возвращает значение, которое выступает в качестве однократной ссылки на объект, создающий событие.
  • Если сервер возвращает ноль, Microsoft Active Accessibility создает прокси-объект и предоставляет клиенту свой адрес. В противном случае Microsoft Active Accessibility использует эту ссылку для получения адреса интерфейса объекта, например IAccessible или IDispatch, и предоставляет этот адрес клиенту.

После того как клиент имеет адрес интерфейса, он может вызвать IAccessible свойства и методы доступного объекта для получения информации.

В этом разделе