Função JournalRecordProc
Descrição
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.
O tipo HOOKPROC define um ponteiro para essa função de retorno de chamada. JournalRecordProc é um espaço reservado para o nome da função definida pelo aplicativo ou definida pela biblioteca.
LRESULT CALLBACK JournalRecordProc(
_In_ int code,
WPARAM wParam,
_In_ LPARAM lParam
);
Parâmetros
code [in]
Tipo: int
Especifica como processar 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 deverá retornar o valor retornado por CallNextHookEx. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
HC_ACTION 0 | O parâmetro lParam é um ponteiro para uma estrutura EVENTMSG que contém informações sobre uma mensagem removida da fila do sistema. O procedimento de gancho deve registrar o conteúdo da estrutura copiando-os para um buffer ou arquivo. |
HC_SYSMODALOFF 5 | Uma caixa de diálogo modal do sistema foi destruída. O procedimento de gancho deve retomar a gravação. |
HC_SYSMODALON 4 | Uma caixa de diálogo modal do sistema está sendo exibida. Até que a caixa de diálogo seja destruída, o procedimento de gancho deve parar a gravação. |
wParam
Tipo: WPARAM
Este parâmetro não é usado.
lParam [in]
Tipo: LPARAM
Um ponteiro para uma estrutura EVENTMSG que contém a mensagem a ser gravada.
Retornos
Tipo: LRESULT
O valor retornado é ignorado.
Comentários
Um procedimento de gancho JournalRecordProc deve copiar, mas não modificar as mensagens. Depois que o procedimento de gancho retorna o controle para o sistema, a mensagem continua a ser processada.
Instale o procedimento de gancho JournalRecordProc especificando o tipo de WH_JOURNALRECORD e um ponteiro para o procedimento de gancho em uma chamada para a função SetWindowsHookEx .
Um procedimento de gancho JournalRecordProc não precisa residir em uma biblioteca de vínculo dinâmico. Um procedimento de gancho JournalRecordProc pode residir no próprio aplicativo.
Ao contrário da maioria dos outros procedimentos de gancho global, os procedimentos de gancho JournalRecordProc e JournalPlaybackProc são sempre chamados no contexto do thread que define o gancho.
Um aplicativo que instalou um procedimento de gancho JournalRecordProc deve watch para o VK_CANCEL código de chave virtual (que é implementado como a combinação de teclas CTRL+BREAK na maioria dos teclados). Esse código de chave virtual deve ser interpretado pelo aplicativo como um sinal de que o usuário deseja interromper a gravação de diário. O aplicativo deve responder encerrando a sequência de gravação e removendo o procedimento de gancho JournalRecordProc . A remoção é importante. Ele impede que um aplicativo de registro em diário bloqueie o sistema travando dentro de um procedimento de gancho.
Essa função como um sinal para interromper a gravação de journl significa que uma combinação de teclas CTRL+BREAK não pode ser registrada. Como a combinação de teclas CTRL+C não tem essa função como um sinal de registro em diário, ela pode ser registrada. Há duas outras combinações de chaves que não podem ser registradas: CTRL+ESC e CTRL+ALT+DEL. Essas duas combinações de teclas fazem com que o sistema interrompa todas as atividades de registro em diário (registro ou reprodução), remova todos os ganchos de registro em diário e poste uma mensagem WM_CANCELJOURNAL no aplicativo de registro em diário.