Fonction de rappel WNDPROC (winuser.h)
Fonction de rappel, que vous définissez dans votre application, qui traite les messages envoyés à une fenêtre. Le type WNDPROC définit un pointeur vers cette fonction de rappel. Le nom WndProc est un espace réservé pour le nom de la fonction que vous définissez dans votre application.
Syntaxe
WNDPROC Wndproc;
LRESULT Wndproc(
HWND unnamedParam1,
UINT unnamedParam2,
WPARAM unnamedParam3,
LPARAM unnamedParam4
)
{...}
Paramètres
unnamedParam1
Type : HWND
Handle de la fenêtre. Ce paramètre est généralement nommé hWnd.
unnamedParam2
Type : UINT
Message. Ce paramètre est généralement nommé uMsg.
Pour obtenir la liste des messages fournis par le système, consultez Messages définis par le système.
unnamedParam3
Type : WPARAM
Informations supplémentaires sur les messages. Ce paramètre est généralement nommé wParam.
Le contenu du paramètre wParam dépend de la valeur du paramètre uMsg .
unnamedParam4
Type : LPARAM
Informations supplémentaires sur les messages. Ce paramètre est généralement nommé lParam.
Le contenu du paramètre lParam dépend de la valeur du paramètre uMsg .
Valeur retournée
Type : LRESULT
La valeur renvoyée est le résultat du traitement du message et dépend du message envoyé.
Remarques
Si votre application s’exécute sur une version 32 bits du système d’exploitation Windows, les exceptions non interceptées du rappel sont transmises aux gestionnaires d’exceptions de niveau supérieur de votre application lorsqu’elles sont disponibles. Le système appelle ensuite le filtre d’exception non géré pour gérer l’exception avant de mettre fin au processus. Si le PCA est activé, il vous propose de résoudre le problème la prochaine fois que vous exécuterez l’application.
Toutefois, si votre application s’exécute sur une version 64 bits du système d’exploitation Windows ou WOW64, vous devez savoir qu’un système d’exploitation 64 bits gère les exceptions non interceptée différemment en fonction de son architecture de processeur 64 bits, de son architecture d’exception et de sa convention d’appel. Le tableau suivant récapitule toutes les façons possibles qu’un système d’exploitation Windows 64 bits ou WOW64 gère les exceptions non interceptée.
Type de comportement | Comment le système gère les exceptions non interceptables |
---|---|
1 | Le système supprime toutes les exceptions non interceptés. |
2 | Le système termine d’abord le processus, puis l’Assistant Compatibilité des programmes (PCA) propose de le corriger lors de la prochaine exécution de l’application. Vous pouvez désactiver l’atténuation du PCA en ajoutant une section Compatibilité au manifeste de l’application. |
3 | Le système appelle les filtres d’exceptions, mais supprime toutes les exceptions non interceptables lorsqu’il quitte l’étendue de rappel, sans appeler les gestionnaires associés. |
Le tableau suivant montre comment une version 64 bits du système d’exploitation Windows, et WOW64, gère les exceptions non interceptables. Notez que le type de comportement 2 s’applique uniquement à la version 64 bits du système d’exploitation Windows 7 et versions ultérieures.
Système d’exploitation | WOW64 | Windows 64 bits |
---|---|---|
Windows XP | 3 | 1 |
Windows Server 2003 | 3 | 1 |
Windows Vista | 3 | 1 |
Windows Vista SP1 | 1 | 1 |
Windows 7 et ultérieur | 1 | 2 |
Notes
Sur Windows 7 avec SP1 (32 bits, 64 bits ou WOW64), le système appelle le filtre d’exception non géré pour gérer l’exception avant de mettre fin au processus. Si l’Assistant Compatibilité des programmes (PCA) est activé, il vous propose de résoudre le problème la prochaine fois que vous exécuterez l’application.
Si vous devez gérer les exceptions dans votre application, vous pouvez utiliser la gestion structurée des exceptions pour ce faire. Pour plus d’informations sur l’utilisation de la gestion structurée des exceptions, consultez Gestion structurée des exceptions.
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] |
En-tête | winuser.h (inclure windows.h) |