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 .

Voir aussi

CallNextHookEx

SendMessage

SetWindowsHookEx

WM_APPCOMMAND

WM_COMMAND

Hooks