Fonction ShellProc
Description
Fonction de rappel définie par l’application ou définie par la bibliothèque utilisée avec la fonction SetWindowsHookExA/SetWindowsHookExW . La fonction reçoit des notifications des événements Shell du système.
Le type HOOKPROC définit un pointeur vers cette fonction de rappel. ShellProc est un espace réservé pour le nom de fonction défini par l’application ou défini par la bibliothèque.
LRESULT CALLBACK ShellProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
Paramètres
nCode [in]
Type : int
Code de hook.
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 |
---|---|
HSHELL_ACCESSIBILITYSTATE 11 | L’état d’accessibilité a changé. |
HSHELL_ACTIVATESHELLWINDOW 3 | L’interpréteur de commandes doit activer sa fenêtre main. |
HSHELL_APPCOMMAND 12 | L’utilisateur a terminé un événement d’entrée (par exemple, appuyant sur un bouton de commande d’application sur la souris ou une touche de commande d’application sur le clavier), et l’application n’a pas géré le message WM_APPCOMMAND généré par cette entrée. Si la procédure Shell gère le message WM_COMMAND , elle ne doit pas appeler CallNextHookEx. Pour plus d’informations, consultez la section Valeur de retour. |
HSHELL_GETMINRECT 5 | Une fenêtre est réduite ou agrandie. Le système a besoin des coordonnées du rectangle réduit pour la fenêtre. |
HSHELL_LANGUAGE 8 | La langue du clavier a été modifiée ou une nouvelle disposition du clavier a été chargée. |
HSHELL_REDRAW 6 | Le titre d’une fenêtre dans la barre des tâches a été redessiné. |
HSHELL_TASKMAN 7 | L’utilisateur a sélectionné la liste des tâches. Une application shell qui fournit une liste de tâches doit retourner TRUE pour empêcher Windows de démarrer sa liste de tâches. |
HSHELL_WINDOWACTIVATED 4 | L’activation est passée à une autre fenêtre de niveau supérieur, non propriétaire. |
HSHELL_WINDOWCREATED 1 | Une fenêtre de niveau supérieur non propriétaire a été créée. La fenêtre existe lorsque le système appelle ce crochet. |
HSHELL_WINDOWDESTROYED 2 | Une fenêtre de niveau supérieur non propriétaire est sur le point d’être détruite. La fenêtre existe toujours lorsque le système appelle ce crochet. |
HSHELL_WINDOWREPLACED 13 | Une fenêtre de niveau supérieur est en cours de remplacement. La fenêtre existe lorsque le système appelle ce crochet. |
wParam [in]
Type : WPARAM
Ce paramètre dépend de la valeur du paramètre nCode , comme indiqué dans le tableau suivant.
nCode | wParam |
---|---|
HSHELL_ACCESSIBILITYSTATE | Indique quelle fonctionnalité d’accessibilité a changé d’état. Cette valeur est l’une des suivantes : ACCESS_FILTERKEYS, ACCESS_MOUSEKEYS ou ACCESS_STICKYKEYS. |
HSHELL_APPCOMMAND | Indique où le message WM_APPCOMMAND a été envoyé à l’origine ; par exemple, le handle d’une fenêtre. Pour plus d’informations, consultez paramètre cmd dans WM_APPCOMMAND. |
HSHELL_GETMINRECT | Handle de la fenêtre réduite ou agrandie. |
HSHELL_LANGUAGE | Handle de la fenêtre. |
HSHELL_REDRAW | Handle de la fenêtre redessinée. |
HSHELL_WINDOWACTIVATED | Handle de la fenêtre activée. |
HSHELL_WINDOWCREATED | Handle de la fenêtre créée. |
HSHELL_WINDOWDESTROYED | Poignée de la fenêtre détruite. |
HSHELL_WINDOWREPLACED | Handle de la fenêtre en cours de remplacement. Windows 2000 : non pris en charge. |
lParam [in]
Type : LPARAM
Ce paramètre dépend de la valeur du paramètre nCode , comme indiqué dans le tableau suivant.
nCode | lParam |
---|---|
HSHELL_APPCOMMAND |
GET_APPCOMMAND_LPARAM(lParam) est la commande d’application correspondant à l’événement d’entrée.
GET_DEVICE_LPARAM(lParam) indique ce qui a généré l’événement d’entrée ; par exemple, la souris ou le clavier. Pour plus d’informations, consultez la description du paramètre uDevice sous WM_APPCOMMAND.
GET_FLAGS_LPARAM(lParam) dépend de la valeur cmd dans WM_APPCOMMAND. Par exemple, il peut indiquer quelles clés virtuelles ont été arrêtées lorsque le message WM_APPCOMMAND a été envoyé à l’origine. Pour plus d’informations, consultez le paramètre de description dwCmdFlags sous WM_APPCOMMAND. |
HSHELL_GETMINRECT | Pointeur vers une structure RECT . |
HSHELL_LANGUAGE | Poignée d’une disposition de clavier. |
HSHELL_MONITORCHANGED | Handle de la fenêtre qui s’est déplacée vers un autre moniteur. |
HSHELL_REDRAW | La valeur est TRUE si la fenêtre clignote, ou FALSE dans le cas contraire. |
HSHELL_WINDOWACTIVATED | La valeur est TRUE si la fenêtre est en mode plein écran ou FALSE dans le cas contraire. |
HSHELL_WINDOWREPLACED | Handle de la nouvelle fenêtre. Windows 2000 : non pris en charge. |
Retours
Type : LRESULT
La valeur de retour doit être égale à zéro, sauf si la valeur de nCode est HSHELL_APPCOMMAND et que la procédure d’interpréteur de commandes gère le message WM_COMMAND . Dans ce cas, le retour doit être différent de zéro.
Notes
Installez cette procédure de hook en spécifiant le type de hook WH_SHELL et un pointeur vers la procédure de hook dans un appel à la fonction SetWindowsHookEx .