Partager via


SendMessageCallbackW, fonction (winuser.h)

Envoie le message spécifié à une ou plusieurs fenêtres. Il appelle la procédure de fenêtre pour la fenêtre spécifiée et retourne immédiatement si la fenêtre appartient à un autre thread. Une fois que la procédure de fenêtre traite le message, le système appelle la fonction de rappel spécifiée, en passant le résultat du traitement du message et une valeur définie par l’application à la fonction de rappel.

Syntaxe

BOOL SendMessageCallbackW(
  [in] HWND          hWnd,
  [in] UINT          Msg,
  [in] WPARAM        wParam,
  [in] LPARAM        lParam,
  [in] SENDASYNCPROC lpResultCallBack,
  [in] ULONG_PTR     dwData
);

Paramètres

[in] hWnd

Type : HWND

Handle de la fenêtre dont la procédure de fenêtre recevra le message. Si ce paramètre est HWND_BROADCAST ((HWND)0xffff), le message est envoyé à toutes les fenêtres de niveau supérieur du système, y compris les fenêtres non propriétaires désactivées ou invisibles, les fenêtres qui se chevauchent et les fenêtres contextuelles ; mais le message n’est pas envoyé aux fenêtres enfants.

[in] Msg

Type : UINT

Le message à envoyer.

Pour obtenir la liste des messages fournis par le système, consultez Messages définis par le système.

[in] wParam

Type : WPARAM

Informations supplémentaires spécifiques au message.

[in] lParam

Type : LPARAM

Informations supplémentaires spécifiques au message.

[in] lpResultCallBack

Type : SENDASYNCPROC

Pointeur vers une fonction de rappel que le système appelle après que la procédure de fenêtre traite le message. Pour plus d’informations, consultez SendAsyncProc.

Si hWnd est HWND_BROADCAST ((HWND)0xffff), le système appelle la fonction de rappel SendAsyncProc une fois pour chaque fenêtre de niveau supérieur.

[in] dwData

Type : ULONG_PTR

Valeur définie par l’application à envoyer à la fonction de rappel pointée par le paramètre lpCallBack .

Valeur retournée

Type : BOOL

Si la fonction réussit, la valeur de retour est différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.

Remarques

Si la fenêtre cible appartient au même thread que l’appelant, la procédure de fenêtre est appelée de manière synchrone et la fonction de rappel est appelée immédiatement après le retour de la procédure de fenêtre. Si la fenêtre cible appartient à un thread différent de l’appelant, la fonction de rappel est appelée uniquement lorsque le thread qui a appelé SendMessageCallback appelle également GetMessage, PeekMessage ou WaitMessage.

Si vous envoyez un message dans la plage ci-dessous WM_USER aux fonctions de message asynchrones (PostMessage, SendNotifyMessage et SendMessageCallback), ses paramètres de message ne peuvent pas inclure de pointeurs. Sinon, l’opération échoue. Les fonctions retournent avant que le thread de réception n’ait eu la possibilité de traiter le message et que l’expéditeur libère la mémoire avant d’être utilisé.

Les applications qui doivent communiquer à l’aide de HWND_BROADCAST doivent utiliser la fonction RegisterWindowMessage pour obtenir un message unique pour la communication entre applications.

Le système effectue uniquement le marshaling pour les messages système (ceux de la plage 0 à (WM_USER-1)). Pour envoyer d’autres messages (ceux >= WM_USER) à un autre processus, vous devez effectuer un marshaling personnalisé.

Notes

L’en-tête winuser.h définit SendMessageCallback comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

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
Ensemble d’API ext-ms-win-ntuser-message-l1-1-0 (introduit dans Windows 8)

Voir aussi

Conceptuel

Messages et files d’attente de messages

PostMessage

Référence

RegisterWindowMessage

SendAsyncProc

SendMessageCallback

SendNotifyMessage