Função de retorno de chamada CBTProc
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 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.
LRESULT CALLBACK CBTProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
nCode [in]
Tipo: intO código que o procedimento de gancho usa para determinar como processar a mensagem. Se nCode for menor que zero, o procedimento de gancho deverá passar a mensagem para a função CallNextHookEx sem processamento adicional e deverá retornar o valor retornado por CallNextHookEx. Esse parâmetro pode usar um dos valores a seguir.
Valor Significado HCBT_ACTIVATE 5 O sistema está prestes a ativar uma janela.
HCBT_CLICKSKIPPED 6 O sistema removeu uma mensagem do mouse da fila de mensagens do sistema. Ao receber esse código de gancho, um aplicativo CBT deve instalar um procedimento de gancho WH_JOURNALPLAYBACK em resposta à mensagem do mouse.
HCBT_CREATEWND 3 Uma janela está prestes a ser criada. O sistema chama o procedimento de gancho antes de enviar a mensagem WM_CREATE ou WM_NCCREATE para a janela. Se o procedimento de gancho retornar um valor diferente de zero, o sistema destruirá a janela; A função CreateWindow retorna NULL, mas a mensagem WM_DESTROY não é enviada para a janela. Se o procedimento de gancho retornar zero, a janela será criada normalmente.
No momento da notificação de HCBT_CREATEWND , a janela foi criada, mas seu tamanho e posição finais podem não ter sido determinados e sua janela pai pode não ter sido estabelecida. É possível enviar mensagens para a janela recém-criada, embora ainda não tenha recebido mensagens de WM_NCCREATE ou WM_CREATE . Também é possível alterar a posição na ordem z da janela recém-criada modificando o membro hwndInsertAfter da estrutura CBT_CREATEWND .
HCBT_DESTROYWND 4 Uma janela está prestes a ser destruída.
HCBT_KEYSKIPPED 7 O sistema removeu uma mensagem de teclado da fila de mensagens do sistema. Ao receber esse código de gancho, um aplicativo CBT deve instalar um procedimento de gancho WH_JOURNALPLAYBACK em resposta à mensagem de teclado.
HCBT_MINMAX 1 Uma janela está prestes a ser minimizada ou maximizada.
HCBT_MOVESIZE 0 Uma janela está prestes a ser movida ou dimensionada.
HCBT_QS 2 O sistema recuperou uma mensagem WM_QUEUESYNC da fila de mensagens do sistema.
HCBT_SETFOCUS 9 Uma janela está prestes a receber o foco do teclado.
HCBT_SYSCOMMAND 8 Um comando do sistema está prestes a ser executado. Isso permite que um aplicativo CBT impeça a troca de tarefas por meio de teclas de acesso.
wParam [in]
Tipo: WPARAMDepende do parâmetro nCode . Para obter detalhes, consulte a seção Comentários a seguir.
lParam [in]
Tipo: LPARAMDepende do parâmetro nCode . Para obter detalhes, consulte a seção Comentários a seguir.
Retornar valor
Tipo:****
Tipo: LRESULT
O valor retornado pelo procedimento de gancho determina se o sistema permite ou impede uma dessas operações. Para operações correspondentes aos seguintes códigos de gancho CBT, o valor retornado deve ser 0 para permitir a operação ou 1 para impedi-la.
- HCBT_ACTIVATE
- HCBT_CREATEWND
- HCBT_DESTROYWND
- HCBT_MINMAX
- HCBT_MOVESIZE
- HCBT_SETFOCUS
- HCBT_SYSCOMMAND
Para operações correspondentes aos seguintes códigos de gancho CBT, o valor retornado é ignorado.
- HCBT_CLICKSKIPPED
- HCBT_KEYSKIPPED
- HCBT_QS
Comentários
O tipo HOOKPROC define um ponteiro para essa função de retorno de chamada. CBTProc é um espaço reservado para o nome da função definida pelo aplicativo ou pela biblioteca.
O procedimento de gancho não deve instalar um procedimento de gancho de WH_JOURNALPLAYBACK , exceto nas situações descritas na lista anterior de códigos de gancho.
Um aplicativo instala o procedimento de gancho especificando o tipo de gancho WH_CBT e um ponteiro para o procedimento de gancho em uma chamada para a função SetWindowsHookExA/SetWindowsHookExW .
A tabela a seguir descreve os parâmetros wParam e lParam para cada código de gancho HCBT_ .
Valor wParam lParam HCBT_ACTIVATE Especifica o identificador para a janela prestes a ser ativada. Especifica um ponteiro longo para uma estrutura CBTACTIVATESTRUCT que contém o identificador para a janela ativa e especifica se a ativação está mudando devido a um clique do mouse. HCBT_CLICKSKIPPED Especifica a mensagem do mouse removida da fila de mensagens do sistema. Especifica um ponteiro longo para uma estrutura MOUSEHOOKSTRUCT que contém o código de teste de clique e o identificador para a janela para a qual a mensagem do mouse se destina. O valor HCBT_CLICKSKIPPED será enviado para um procedimento de gancho CBTProc somente se um gancho de WH_MOUSE estiver instalado. Para obter uma lista de códigos de teste de clique, consulte WM_NCHITTEST.
HCBT_CREATEWND Especifica o identificador para a nova janela. Especifica um ponteiro longo para uma estrutura CBT_CREATEWND que contém parâmetros de inicialização para a janela. Os parâmetros incluem as coordenadas e dimensões da janela. Ao alterar esses parâmetros, um procedimento de gancho CBTProc pode definir o tamanho inicial e a posição da janela. HCBT_DESTROYWND Especifica o identificador para a janela prestes a ser destruída. É indefinido e deve ser definido como zero. HCBT_KEYSKIPPED Especifica o código de chave virtual. Especifica a contagem de repetição, o código de verificação, o código de transição de chave, o estado da chave anterior e o código de contexto. O valor HCBT_KEYSKIPPED será enviado para um procedimento de gancho CBTProc somente se um gancho de WH_KEYBOARD estiver instalado. Para obter mais informações, consulte WM_KEYUP ou WM_KEYDOWN. HCBT_MINMAX Especifica o identificador para a janela que está sendo minimizada ou maximizada. Especifica, na palavra de baixa ordem, um valor de janela de exibição (SW_) que especifica a operação. Para obter uma lista de valores de janela de exibição, consulte ShowWindow. A palavra de alta ordem é indefinida. HCBT_MOVESIZE Especifica o identificador para a janela a ser movida ou dimensionada. Especifica um ponteiro longo para uma estrutura RECT que contém as coordenadas da janela. Alterando os valores na estrutura, um procedimento de gancho CBTProc pode definir as coordenadas finais da janela. HCBT_QS É indefinido e deve ser zero. É indefinido e deve ser zero. HCBT_SETFOCUS Especifica o identificador para a janela que ganha o foco do teclado. Especifica o identificador para a janela que perde o foco do teclado. HCBT_SYSCOMMAND Especifica um valor de comando do sistema (SC_) especificando o comando do sistema. Para obter mais informações sobre valores de comando do sistema, consulte WM_SYSCOMMAND. Contém os mesmos dados que o valor lParam de uma mensagem WM_SYSCOMMAND : se um comando de menu do sistema for escolhido com o mouse, a palavra de baixa ordem conterá a coordenada x do cursor, nas coordenadas da tela e a palavra de alta ordem contiver a coordenada y; caso contrário, o parâmetro não será usado. Para obter mais detalhes, consulte Eventos do Windows.
Requisitos
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Winuser.h (inclui Windows.h) Confira também