Partager via


Fonction JournalRecordProc

Description

Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . La fonction enregistre les messages que le système supprime de la file d’attente des messages système. Plus tard, une application peut utiliser une procédure de crochet JournalPlaybackProc pour lire les messages.

Le type HOOKPROC définit un pointeur vers cette fonction de rappel. JournalRecordProc est un espace réservé pour le nom de fonction défini par l’application ou la bibliothèque.

LRESULT CALLBACK JournalRecordProc(
  _In_ int    code,
       WPARAM wParam,
  _In_ LPARAM lParam
);

Paramètres

code [in]

Type : int

Spécifie comment traiter le message. Si le code est inférieur à zéro, la procédure de hook doit passer le message à la fonction CallNextHookEx sans traitement supplémentaire et doit retourner la valeur retournée par CallNextHookEx. Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
HC_ACTION 0 Le paramètre lParam est un pointeur vers une structure EVENTMSG contenant des informations sur un message supprimé de la file d’attente système. La procédure de hook doit enregistrer le contenu de la structure en les copiant dans une mémoire tampon ou un fichier.
HC_SYSMODALOFF 5 Une boîte de dialogue modale système a été détruite. La procédure de hook doit reprendre l’enregistrement.
HC_SYSMODALON 4 Une boîte de dialogue modale système s’affiche. Tant que la boîte de dialogue n’est pas détruite, la procédure de crochet doit arrêter l’enregistrement.

wParam

Type : WPARAM

Ce paramètre n'est pas utilisé.

lParam [in]

Type : LPARAM

Pointeur vers une structure EVENTMSG qui contient le message à enregistrer.

Retours

Type : LRESULT

La valeur de retour est ignorée.

Notes

Une procédure de crochet JournalRecordProc doit copier, mais pas modifier les messages. Une fois que la procédure de hook retourne le contrôle au système, le message continue d’être traité.

Installez la procédure de crochet JournalRecordProc en spécifiant le type WH_JOURNALRECORD et un pointeur vers la procédure de hook dans un appel à la fonction SetWindowsHookEx .

Une procédure de crochet JournalRecordProc n’a pas besoin de résider dans une bibliothèque de liens dynamiques. Une procédure de crochet JournalRecordProc peut se trouver dans l’application elle-même.

Contrairement à la plupart des autres procédures de hook global, les procédures de crochet JournalRecordProc et JournalPlaybackProc sont toujours appelées dans le contexte du thread qui définit le hook.

Une application qui a installé une procédure de crochet JournalRecordProc doit watch pour le code de touche virtuelle VK_CANCEL (qui est implémenté en tant que combinaison ctrl+TOUCHE BREAK sur la plupart des claviers). Ce code de clé virtuelle doit être interprété par l’application comme un signal indiquant que l’utilisateur souhaite arrêter l’enregistrement du journal. L’application doit répondre en mettant fin à la séquence d’enregistrement et en supprimant la procédure de crochet JournalRecordProc . La suppression est importante. Il empêche une application de journalisation de verrouiller le système en s’accrochant à l’intérieur d’une procédure de crochet.

Ce rôle en tant que signal d’arrêt de l’enregistrement journl signifie qu’une combinaison de touches CTRL+BREAK ne peut pas être enregistrée elle-même. Étant donné que la combinaison de touches CTRL+C n’a pas de rôle tel qu’un signal de journalisation, elle peut être enregistrée. Il existe deux autres combinaisons de touches qui ne peuvent pas être enregistrées : CTRL+ÉCHAP et CTRL+ALT+SUPPR. Ces deux combinaisons de touches entraînent l’arrêt de toutes les activités de journalisation (enregistrement ou lecture), la suppression de tous les crochets de journalisation et la publication d’un message WM_CANCELJOURNAL à l’application de journalisation.

Voir aussi

CallNextHookEx

EVENTMSG

JournalPlaybackProc

SetWindowsHookEx

WM_CANCELJOURNAL

Hooks