Partager via


Fonction RegisterShellHookWindow (winuser.h)

[Cette fonction n’est pas destinée à une utilisation générale. Il peut être modifié ou indisponible dans les versions ultérieures de Windows.]

Inscrit une fenêtre Shell spécifiée pour recevoir certains messages pour les événements ou notifications utiles aux applications Shell.

Les messages d’événement reçus sont uniquement ceux envoyés à la fenêtre Shell associée au bureau de la fenêtre spécifiée. La plupart des messages sont identiques à ceux qui peuvent être reçus après avoir appelé la fonction SetWindowsHookEx et spécifié WH_SHELL pour le type de hook. La différence avec RegisterShellHookWindow est que les messages sont reçus via le WindowProc de la fenêtre spécifiée et non par le biais d’une procédure de rappel.

Syntaxe

BOOL RegisterShellHookWindow(
  [in] HWND hwnd
);

Paramètres

[in] hwnd

Type : HWND

Handle dans la fenêtre pour inscrire les messages de hook shell.

Valeur retournée

Type : BOOL

TRUE si la fonction réussit ; sinon, FALSE.

Remarques

Comme pour les messages de fenêtre normaux, le deuxième paramètre de la procédure de fenêtre identifie le message en tant que WM_SHELLHOOKMESSAGE. Toutefois, pour ces messages de hook Shell, la valeur du message n’est pas une constante prédéfinie comme d’autres ID de message, tels que WM_COMMAND. La valeur doit être obtenue dynamiquement à l’aide d’un appel à RegisterWindowMessage , comme indiqué ici :

RegisterWindowMessage(TEXT("SHELLHOOK"));

Cela empêche la gestion de ces messages à l’aide d’une instruction switch traditionnelle qui nécessite des valeurs d’ID connues au moment de la compilation. Pour gérer les messages de hook Shell, la pratique normale consiste à coder une instruction If dans la section par défaut de votre instruction switch, puis à gérer le message si la valeur de l’ID de message est identique à la valeur obtenue à partir de l’appel RegisterWindowMessage .

Le tableau suivant décrit les valeurs des paramètres wParam et lParam passées à la procédure de fenêtre pour les messages de hook Shell.

wParam lParam
HSHELL_GETMINRECT Pointeur vers une structure SHELLHOOKINFO .
HSHELL_WINDOWACTIVATED Handle de la fenêtre activée.
HSHELL_RUDEAPPACTIVATED Handle de la fenêtre activée.
HSHELL_WINDOWREPLACING Handle de la fenêtre qui remplace la fenêtre de niveau supérieur.
HSHELL_WINDOWREPLACED Handle de la fenêtre en cours de remplacement.
HSHELL_WINDOWCREATED Handle de la fenêtre en cours de création.
HSHELL_WINDOWDESTROYED Handle de la fenêtre de niveau supérieur en cours de destruction.
HSHELL_ACTIVATESHELLWINDOW Non utilisé.
HSHELL_TASKMAN Peut être ignoré.
HSHELL_REDRAW Poignée de la fenêtre qui doit être redessinée.
HSHELL_FLASH Poignée de la fenêtre qui doit être flashée.
HSHELL_ENDTASK Handle de la fenêtre qui doit être forcé à quitter.
HSHELL_APPCOMMAND APPCOMMAND qui n’a pas été pris en charge par l’application ou d’autres hooks. Consultez WM_APPCOMMAND et utilisez la macro GET_APPCOMMAND_LPARAM pour récupérer ce paramètre.
HSHELL_MONITORCHANGED Handle de la fenêtre qui s’est déplacée vers un autre moniteur.
 

Cette fonction n’a pas été incluse dans les bibliothèques et en-têtes du KIT de développement logiciel (SDK) avant Windows XP avec Service Pack 1 (SP1) et Windows Server 2003. Si vous n’avez pas de fichier d’en-tête et de bibliothèque d’importation pour cette fonction, vous pouvez appeler la fonction en utilisant LoadLibrary et GetProcAddress.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winuser.h (inclure Windows.h)
Bibliothèque User32.lib
DLL User32.dll

Voir aussi

Conceptuel

DeregisterShellHookWindow

Autres ressources

Référence

SetWindowsHookEx

ShellProc

Utilisation de messages et de files d’attente de messages

WinEvents

WindowProc

Windows