Partager via


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)

Voir aussi