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


Регистрация функции-перехватчика

Клиентские приложения получают события WinEvent в функции обратного вызова WinEventProc . Действия, выполняемые функцией обратного вызова, определяются приложением, но синтаксис должен быть таким, как указано в прототипе.

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

При вызове SetWinEventHook клиент указывает, какие события следует получать и как их получать. Клиент может выбрать следующее:

  • Получение всех событий или определенного набора событий.
  • Получение событий из всех потоков или из определенного потока.
  • Получение событий из всех процессов или из определенного процесса.
  • Обработка событий в процессе или вне процесса.

При создании события, соответствующего указанным критериям, система вызывает функцию обратного вызова WinEventProc клиента (или "процедуру перехватчика"). Параметры, получаемые функцией-перехватчиком, сообщают клиенту о окне, объекте и возможном дочернем элементе, создавшим событие. Клиент использует эти параметры в вызове получения объекта, например AccessibleObjectFromEvent.