Registrando uma função hook

Os aplicativos cliente recebem WinEvents em uma função de retorno de chamada WinEventProc . As ações executadas pela função de retorno de chamada são definidas pelo aplicativo, mas a sintaxe deve ser conforme especificado no protótipo.

Antes de receber eventos, a função deve ser registrada chamando SetWinEventHook. O cliente pode chamar SetWinEventHook mais de uma vez para registrar diferentes funções de gancho ou para definir eventos adicionais para uma função de gancho registrada anteriormente.

Ao chamar SetWinEventHook , o cliente especifica quais eventos receber e como recebê-los. O cliente pode optar por:

  • Receber todos os eventos ou um conjunto específico de eventos.
  • Receber eventos de todos os threads ou de um thread específico.
  • Receber eventos de todos os processos ou de um processo específico.
  • Manipular eventos em processo ou fora do processo.

Quando um evento é gerado que corresponde aos critérios especificados, o sistema chama a função de retorno de chamada WinEventProc do cliente (ou "procedimento de gancho"). Os parâmetros que a função hook recebe informam ao cliente sobre a janela, o objeto e o possível elemento filho que gerou o evento. Um cliente usa esses parâmetros em uma chamada de recuperação de objeto, como AccessibleObjectFromEvent.