Compartilhar via


Ganchos

Um gancho é um ponto no mecanismo de tratamento de mensagens do sistema em que um aplicativo pode instalar uma sub-rotina para monitorar o tráfego de mensagens no sistema e processar determinados tipos de mensagens antes de alcançar o procedimento de janela de destino.

Nesta seção

Nome Descrição
Visão geral do gancho Discute como os ganchos devem ser usados.
Usando ganchos Demonstra como executar tarefas associadas a ganchos.
Referência de gancho Contém a referência de API.

Funções de gancho

Nome Descrição
CallMsgFilter Passa a mensagem especificada e o código de gancho para os procedimentos de gancho associados aos procedimentos de gancho WH_SYSMSGFILTER e WH_MSGFILTER .
CallNextHookEx Passa as informações do gancho para o próximo procedimento de gancho na cadeia de gancho atual. Um procedimento de gancho pode chamar essa função antes ou depois de processar as informações do gancho.
CallWndProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função antes de chamar o procedimento de janela para processar uma mensagem enviada para o thread.
CallWndRetProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função depois que a função SendMessage é chamada. O procedimento de gancho pode examinar a mensagem; ele não pode modificá-lo.
CBTProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função antes de ativar, criar, destruir, minimizar, maximizar, mover ou dimensionar uma janela; antes de concluir um comando do sistema; antes de remover um evento de mouse ou teclado da fila de mensagens do sistema; antes de definir o foco do teclado; ou antes de sincronizar com a fila de mensagens do sistema. Um aplicativo CBT (treinamento baseado em computador) usa esse procedimento de gancho para receber notificações úteis do sistema.
DebugProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função antes de chamar os procedimentos de gancho associados a qualquer tipo de gancho. O sistema passa informações sobre o gancho a ser chamado para o procedimento de gancho DebugProc , que examina as informações e determina se o gancho deve ser chamado.
ForegroundIdleProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função sempre que o thread em primeiro plano está prestes a ficar ocioso.
GetMsgProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função sempre que a função GetMessage ou PeekMessage recupera uma mensagem de uma fila de mensagens do aplicativo. Antes de retornar a mensagem recuperada ao chamador, o sistema passa a mensagem para o procedimento de gancho.
JournalPlaybackProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . Normalmente, um aplicativo usa essa função para reproduzir uma série de mensagens de mouse e teclado gravadas anteriormente pelo procedimento de gancho JournalRecordProc . Enquanto um procedimento de gancho JournalPlaybackProc estiver instalado, a entrada regular do mouse e do teclado será desabilitada.
JournalRecordProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . A função registra mensagens que o sistema remove da fila de mensagens do sistema. Posteriormente, um aplicativo pode usar um procedimento de gancho JournalPlaybackProc para reproduzir as mensagens.
KeyboardProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função sempre que um aplicativo chama a função GetMessage ou PeekMessage e há uma mensagem de teclado (WM_KEYUP ou WM_KEYDOWN) a ser processada.
LowLevelKeyboardProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função sempre que um novo evento de entrada de teclado está prestes a ser postado em uma fila de entrada de thread.
LowLevelMouseProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função sempre que um novo evento de entrada do mouse está prestes a ser postado em uma fila de entrada de thread.
MessageProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função depois que um evento de entrada ocorre em uma caixa de diálogo, caixa de mensagem, menu ou barra de rolagem, mas antes que a mensagem gerada pelo evento de entrada seja processada. O procedimento de gancho pode monitorar mensagens para uma caixa de diálogo, caixa de mensagem, menu ou barra de rolagem criada por um aplicativo específico ou todos os aplicativos.
MouseProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função sempre que um aplicativo chama a função GetMessage ou PeekMessage e há uma mensagem do mouse a ser processada.
SetWindowsHookEx Instala um procedimento de gancho definido pelo aplicativo em uma cadeia de ganchos. Você instalaria um procedimento de gancho para monitorar o sistema para determinados tipos de eventos. Esses eventos são associados a um thread específico ou a todos os threads na mesma área de trabalho que o thread de chamada.
ShellProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . A função recebe notificações de eventos do Shell do sistema.
SysMsgProc Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookEx . O sistema chama essa função depois que um evento de entrada ocorre em uma caixa de diálogo, caixa de mensagem, menu ou barra de rolagem, mas antes que a mensagem gerada pelo evento de entrada seja processada. A função pode monitorar mensagens para qualquer caixa de diálogo, caixa de mensagem, menu ou barra de rolagem no sistema.
UnhookWindowsHookEx Remove um procedimento de gancho instalado em uma cadeia de ganchos pela função SetWindowsHookEx .

Notificações de gancho

Nome Descrição
WM_CANCELJOURNAL Postado em um aplicativo quando um usuário cancela as atividades de registro no diário do aplicativo. A mensagem é postada com um identificador de janela NULL .
WM_QUEUESYNC Enviado por um aplicativo CBT para separar mensagens de entrada do usuário de outras mensagens enviadas por meio do procedimento WH_JOURNALPLAYBACK .

Estruturas de gancho

Nome Descrição
CBT_CREATEWND Contém informações passadas para um procedimento de gancho de WH_CBT , CBTProc, antes de uma janela ser criada.
CBTACTIVATESTRUCT Contém informações passadas para um procedimento de gancho de WH_CBT , CBTProc, antes que uma janela seja ativada.
CWPRETSTRUCT Define os parâmetros de mensagem passados para um procedimento de gancho de WH_CALLWNDPROCRET , CallWndRetProc.
CWPSTRUCT Define os parâmetros de mensagem passados para um procedimento de gancho de WH_CALLWNDPROC , CallWndProc.
DEBUGHOOKINFO Contém informações de depuração passadas para um procedimento de gancho de WH_DEBUG , DebugProc.
EVENTMSG Contém informações sobre uma mensagem de hardware enviada para a fila de mensagens do sistema. Essa estrutura é usada para armazenar informações de mensagem para a função de retorno de chamada JournalPlaybackProc .
KBDLLHOOKSTRUCT Contém informações sobre um evento de entrada de teclado de baixo nível.
MOUSEHOOKSTRUCT Contém informações sobre um evento do mouse passado para um procedimento de gancho de WH_MOUSE , MouseProc.
MOUSEHOOKSTRUCTEX Contém informações sobre um evento do mouse passado para um procedimento de gancho de WH_MOUSE , MouseProc.
MSLLHOOKSTRUCT Contém informações sobre um evento de entrada de mouse de baixo nível.

SetWinEventHook