Função MessageProc
Descrição
Uma função de retorno de chamada definida pelo aplicativo ou definida pela biblioteca usada com a função SetWindowsHookExA/SetWindowsHookExW . 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.
O tipo HOOKPROC define um ponteiro para essa função de retorno de chamada. MessageProc é um espaço reservado para o nome da função definida pelo aplicativo ou pela biblioteca.
LRESULT CALLBACK MessageProc(
_In_ int code,
WPARAM wParam,
_In_ LPARAM lParam
);
Parâmetros
code [in]
Tipo: int
O tipo de evento de entrada que gerou a mensagem.
Se o código for menor que zero, o procedimento de gancho deverá passar a mensagem para a função CallNextHookEx sem processamento adicional e retornar o valor retornado por CallNextHookEx.
Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
MSGF_DDEMGR 0x8001 | O evento de entrada ocorreu enquanto a DDEML (Dynamic Data Exchange Management Library) aguardava a conclusão de uma transação síncrona. Para obter mais informações sobre DDEML, consulte Dynamic Data Exchange Management Library. |
MSGF_DIALOGBOX 0 | O evento de entrada ocorreu em uma caixa de mensagem ou caixa de diálogo. |
MSGF_MENU 2 | O evento de entrada ocorreu em um menu. |
MSGF_SCROLLBAR 5 | O evento de entrada ocorreu em uma barra de rolagem. |
wParam
Tipo: WPARAM
Este parâmetro não é usado.
lParam [in]
Tipo: LPARAM
Um ponteiro para uma estrutura MSG .
Retornos
Tipo: LRESULT
Se o código for menor que zero, o procedimento de gancho deverá retornar o valor retornado por CallNextHookEx.
Se o código for maior ou igual a zero e o procedimento de gancho não processar a mensagem, é altamente recomendável que você chame CallNextHookEx e retorne o valor retornado; caso contrário, outros aplicativos instalados WH_MSGFILTER ganchos não receberão notificações de gancho e poderão se comportar incorretamente como resultado. Se o procedimento de gancho tiver processado a mensagem, ele poderá retornar um valor diferente de zero para impedir que o sistema passe a mensagem para o restante da cadeia de ganchos ou o procedimento da janela de destino.
Comentários
Um aplicativo instala o procedimento de gancho especificando o tipo de gancho WH_MSGFILTER e um ponteiro para o procedimento de gancho em uma chamada para a função SetWindowsHookExA/SetWindowsHookExW .
Se um aplicativo que usa o DDEML e executa transações síncronas precisar processar mensagens antes de serem expedidas, ele deverá usar o gancho de WH_MSGFILTER .