Hooks

Un hook est un point dans le mécanisme de gestion des messages système où une application peut installer une sous-routine pour surveiller le trafic des messages dans le système et traiter certains types de messages avant qu’ils n’atteignent la procédure de fenêtre cible.

Dans cette section

Name Description
Vue d’ensemble de Hook Explique comment les crochets doivent être utilisés.
Utilisation de hooks Montre comment effectuer des tâches associées aux hooks.
Informations de référence sur le hook Contient la référence API.

Fonctions de raccordement

Nom Description
CallMsgFilter Transmet le message et le code de raccordement spécifiés aux procédures de hook associées aux procédures de raccordement WH_SYSMSGFILTER et WH_MSGFILTER .
CallNextHookEx Transmet les informations de hook à la procédure de raccordement suivante dans la chaîne de raccordement actuelle. Une procédure de hook peut appeler cette fonction avant ou après le traitement des informations de hook.
CallWndProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction avant d’appeler la procédure de fenêtre pour traiter un message envoyé au thread.
CallWndRetProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction après l’appel de la fonction SendMessage . La procédure de raccordement peut examiner le message ; il ne peut pas le modifier.
CBTProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction avant d’activer, de créer, de détruire, de réduire, d’optimiser, de déplacer ou de dimensionner une fenêtre ; avant d’exécuter une commande système ; avant de supprimer un événement de souris ou de clavier de la file d’attente de messages système ; avant de définir le focus clavier ; ou avant la synchronisation avec la file d’attente des messages système. Une application d’entraînement basé sur l’ordinateur (CBT) utilise cette procédure de raccordement pour recevoir des notifications utiles du système.
DebugProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction avant d’appeler les procédures de hook associées à tout type de hook. Le système transmet des informations sur le hook à appeler à la procédure de hook DebugProc , qui examine les informations et détermine s’il faut autoriser l’appel du hook.
ForegroundIdleProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction chaque fois que le thread de premier plan est sur le point de devenir inactif.
GetMsgProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction chaque fois que la fonction GetMessage ou PeekMessage a récupéré un message d’une file d’attente de messages d’application. Avant de retourner le message récupéré à l’appelant, le système transmet le message à la procédure de raccordement.
JournalPlaybackProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . En règle générale, une application utilise cette fonction pour lire une série de messages de souris et de clavier enregistrés précédemment par la procédure de hook JournalRecordProc . Tant qu’une procédure de raccordement JournalPlaybackProc est installée, l’entrée normale de la souris et du clavier est désactivée.
JournalRecordProc 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 hook JournalPlaybackProc pour lire les messages.
KeyboardProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction chaque fois qu’une application appelle la fonction GetMessage ou PeekMessage et qu’un message clavier (WM_KEYUP ou WM_KEYDOWN) doit être traité.
LowLevelKeyboardProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction chaque fois qu’un nouvel événement d’entrée clavier est sur le point d’être publié dans une file d’attente d’entrée de thread.
LowLevelMouseProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction chaque fois qu’un nouvel événement d’entrée de souris est sur le point d’être publié dans une file d’attente d’entrée de thread.
MessageProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction après qu’un événement d’entrée se produit dans une boîte de dialogue, une boîte de message, un menu ou une barre de défilement, mais avant le traitement du message généré par l’événement d’entrée. La procédure de raccordement peut surveiller les messages d’une boîte de dialogue, d’une boîte de message, d’un menu ou d’une barre de défilement créée par une application particulière ou toutes les applications.
MouseProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction chaque fois qu’une application appelle la fonction GetMessage ou PeekMessage et qu’un message de souris doit être traité.
SetWindowsHookEx Installe une procédure de hook définie par l’application dans une chaîne de raccordement. Vous devez installer une procédure de raccordement pour surveiller le système pour certains types d’événements. Ces événements sont associés à un thread spécifique ou à tous les threads du même bureau que le thread appelant.
ShellProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . La fonction reçoit des notifications d’événements Shell du système.
SysMsgProc Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookEx . Le système appelle cette fonction après qu’un événement d’entrée se produit dans une boîte de dialogue, une boîte de message, un menu ou une barre de défilement, mais avant le traitement du message généré par l’événement d’entrée. La fonction peut surveiller les messages de n’importe quelle boîte de dialogue, boîte de message, menu ou barre de défilement dans le système.
UnhookWindowsHookEx Supprime une procédure de hook installée dans une chaîne de raccordement par la fonction SetWindowsHookEx .

Hook Notifications

Nom Description
WM_CANCELJOURNAL Publié dans une application lorsqu’un utilisateur annule les activités de journalisation de l’application. Le message est publié avec un handle de fenêtre NULL .
WM_QUEUESYNC Envoyé par une application CBT pour séparer les messages d’entrée utilisateur des autres messages envoyés par le biais de la procédure de WH_JOURNALPLAYBACK .

Structures de raccordement

Nom Description
CBT_CREATEWND Contient des informations transmises à une procédure de hook WH_CBT , CBTProc, avant la création d’une fenêtre.
CBTACTIVATESTRUCT Contient des informations transmises à une procédure de hook de WH_CBT , CBTProc, avant l’activation d’une fenêtre.
CWPRETSTRUCT Définit les paramètres de message passés à une procédure de hook WH_CALLWNDPROCRET , CallWndRetProc.
CWPSTRUCT Définit les paramètres de message passés à une procédure de hook WH_CALLWNDPROC , CallWndProc.
DEBUGHOOKINFO Contient des informations de débogage passées à une procédure de hook WH_DEBUG, DebugProc.
EVENTMSG Contient des informations sur un message matériel envoyé à la file d’attente de messages système. Cette structure est utilisée pour stocker les informations de message pour la fonction de rappel JournalPlaybackProc .
KBDLLHOOKSTRUCT Contient des informations sur un événement d’entrée clavier de bas niveau.
MOUSEHOOKSTRUCT Contient des informations sur un événement de souris passé à une procédure de hook WH_MOUSE , MouseProc.
MOUSEHOOKSTRUCTEX Contient des informations sur un événement de souris passé à une procédure de hook WH_MOUSE , MouseProc.
MSLLHOOKSTRUCT Contient des informations sur un événement d’entrée de souris de bas niveau.

SetWinEventHook