Fonction GetMsgProc
-description
Fonction de rappel définie par l’application ou par la bibliothèque utilisée avec la fonction SetWindowsHookExA/SetWindowsHookExW. Le système appelle cette fonction chaque fois que la fonction GetMessage ou PeekMessageA/PeekMessageW a récupéré un message à partir d’une file d’attente de messages d’application. Avant de renvoyer le message récupéré à l’appelant, le système le transmet à la procédure de raccordement.
Le type HOOKPROC définit un pointeur vers cette fonction de rappel. GetMsgProc est un espace réservé pour le nom de fonction défini par l’application ou la bibliothèque.
LRESULT CALLBACK GetMsgProc(
_In_ int code,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
-paramètres
code [in]
Type : int
Spécifie si la procédure de hook doit traiter le message. Si le code est HC_ACTION, la procédure de hook doit traiter le message. Si le code est inférieur à zéro, la procédure de hook doit transmettre le message à la fonction CallNextHookEx sans traitement supplémentaire et retourner la valeur retournée par CallNextHookEx.
wParam [in]
Type : WPARAM
Spécifie si le message a été supprimé de la file d’attente. Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
PM_NOREMOVE 0x0000 | Le message n’a pas été supprimé de la file d’attente. (Une application a appelé la fonction PeekMessage, en spécifiant l’indicateur PM_NOREMOVE.) |
PM_REMOVE 0x0001 | Le message a été supprimé de la file d’attente. (Une application a appelé GetMessage ou la fonction PeekMessage, en spécifiant l’indicateur PM_REMOVE.) |
lParam [in]
Type : LPARAM
Pointeur vers une structure MSG qui contient des détails sur le message.
-valeur retournée
Si le code est inférieur à zéro, la procédure de hook doit retourner la valeur retournée par CallNextHookEx.
Si le code est supérieur ou égal à zéro, il est vivement recommandé d’appeler CallNextHookEx et de renvoyer la valeur retournée ; sinon, d’autres applications qui ont installé des hooks WH_GETMESSAGE ne recevront pas de notifications de hook et peuvent se comporter de manière incorrecte. Si la procédure de hook n’appelle pas CallNextHookEx, la valeur de retour doit être égale à zéro.
-remarques
La procédure de hook GetMsgProc peut examiner ou modifier le message.
Une fois que la procédure de hook retourne le contrôle au système, la fonction GetMessage ou PeekMessageA/PeekMessageW retourne le message, ainsi que les modifications apportées à l’application qui l’a appelée à l’origine.
Une application installe cette procédure de hook en spécifiant le type de hook WH_GETMESSAGE et un pointeur vers la procédure de hook dans un appel à la fonction SetWindowsHookExA/SetWindowsHookExW.