Fonction SysMsgProc
Description
Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookExA/SetWindowsHookExW . 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 que le message généré par l’événement d’entrée ne soit traité. La fonction peut surveiller les messages pour n’importe quelle boîte de dialogue, boîte de message, menu ou barre de défilement dans le système.
Le type HOOKPROC définit un pointeur vers cette fonction de rappel. SysMsgProc est un espace réservé pour le nom de fonction défini par l’application ou défini par la bibliothèque.
LRESULT CALLBACK SysMsgProc(
_In_ int nCode,
WPARAM wParam,
_In_ LPARAM lParam
);
Paramètres
nCode [in]
Type : int
Type d’événement d’entrée qui a généré le message.
Si nCode est inférieur à zéro, la procédure de crochet 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 |
---|---|
MSGF_DIALOGBOX 0 | L’événement d’entrée s’est produit dans une boîte de message ou une boîte de dialogue. |
MSGF_MENU 2 | L’événement d’entrée s’est produit dans un menu. |
MSGF_SCROLLBAR 5 | L’événement d’entrée s’est produit dans une barre de défilement. |
wParam
Type : WPARAM
Ce paramètre n'est pas utilisé.
lParam [in]
Type : LPARAM
Pointeur vers une structure de message MSG .
Retours
Type : LRESULT
Si nCode est inférieur à zéro, la procédure de hook doit retourner la valeur retournée par CallNextHookEx.
Si nCode est supérieur ou égal à zéro et que la procédure de hook n’a pas traité le message, il est vivement recommandé d’appeler CallNextHookEx et de retourner la valeur qu’il retourne ; dans le cas contraire, d’autres applications qui ont installé WH_SYSMSGFILTER hooks ne recevront pas de notifications de hook et peuvent se comporter incorrectement en conséquence.
Si la procédure de hook a traité le message, elle peut renvoyer une valeur différente de zéro pour empêcher le système de transmettre le message à la procédure de fenêtre cible.
Notes
Une application installe la procédure de hook en spécifiant le type de hook WH_SYSMSGFILTER et un pointeur vers la procédure de hook dans un appel à la fonction SetWindowsHookExA/SetWindowsHookExW .