Messages et files d’attente de messages

Cette section décrit les messages et les files d’attente de messages et comment les utiliser dans vos applications.

Dans cette section

Nom Description
À propos des messages et des files d’attente de messages Cette section traite des messages Windows et des files d’attente de messages.
Utilisation de messages et de files d’attente de messages Les exemples de code suivants montrent comment effectuer les tâches suivantes associées aux messages et aux files d’attente de messages Windows.
Informations de référence sur les messages Contient la référence d’API.

System-Provided Messages

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

Fonctions de message

Nom Description
BroadcastSystemMessage Envoie un message aux destinataires spécifiés. Les destinataires peuvent être des applications, des pilotes installables, des pilotes réseau, des pilotes de périphérique au niveau du système ou toute combinaison de ces composants système.
Pour recevoir des informations supplémentaires si la demande est définie, utilisez la fonction BroadcastSystemMessageEx .
BroadcastSystemMessageEx Envoie un message aux destinataires spécifiés. Les destinataires peuvent être des applications, des pilotes installables, des pilotes réseau, des pilotes de périphérique au niveau du système ou toute combinaison de ces composants système.
Cette fonction est similaire à BroadcastSystemMessage, sauf que cette fonction peut retourner plus d’informations à partir des destinataires.
DispatchMessage Distribue un message à une procédure de fenêtre. Il est généralement utilisé pour distribuer un message récupéré par la fonction GetMessage .
GetInputState Détermine s’il existe des messages de bouton de la souris ou du clavier dans la file d’attente de messages du thread appelant.
GetMessage Récupère un message de la file d’attente de messages du thread appelant. La fonction distribue les messages envoyés entrants jusqu’à ce qu’un message publié soit disponible pour récupération.
Contrairement à GetMessage, la fonction PeekMessage n’attend pas qu’un message soit publié avant de revenir.
GetMessageExtraInfo Récupère les informations de message supplémentaires pour le thread actuel. Les informations de message supplémentaires sont une valeur définie par l’application ou le pilote associée à la file d’attente de messages du thread actuel.
GetMessagePos Récupère la position du curseur pour le dernier message récupéré par la fonction GetMessage .
Pour déterminer la position actuelle du curseur, utilisez la fonction GetCursorPos .
GetMessageTime Récupère l’heure du dernier message récupéré par la fonction GetMessage . L’heure est un entier long qui spécifie le temps écoulé, en millisecondes, entre le démarrage du système et le moment où le message a été créé (c’est-à-dire placé dans la file d’attente de messages du thread).
GetQueueStatus Indique le type de messages trouvés dans la file d’attente de messages du thread appelant.
InSendMessage Détermine si la procédure de fenêtre active traite un message qui a été envoyé à partir d’un autre thread (dans le même processus ou un autre processus) par un appel à la fonction SendMessage .
Pour obtenir des informations supplémentaires sur la façon dont le message a été envoyé, utilisez la fonction InSendMessageEx .
InSendMessageEx Détermine si la procédure de fenêtre active traite un message envoyé à partir d’un autre thread (dans le même processus ou dans un autre processus).
PeekMessage Distribue les messages envoyés entrants, vérifie la file d’attente des messages de thread pour un message publié et récupère le message (le cas échéant).
PostMessage Publie un message dans la file d’attente de messages associée au thread qui a créé la fenêtre spécifiée et retourne sans attendre que le thread traite le message.
Pour publier un message dans la file d’attente de messages associée à un thread, utilisez la fonction PostThreadMessage .
PostQuitMessage Indique au système qu’un thread a effectué une demande d’arrêt (quitter). Il est généralement utilisé en réponse à un message WM_DESTROY .
PostThreadMessage Publie un message dans la file d’attente de messages du thread spécifié. Elle retourne sans attendre que le thread traite le message.
RegisterWindowMessage Définit un nouveau message de fenêtre qui est garanti comme étant unique dans l’ensemble du système. La valeur du message peut être utilisée lors de l’envoi ou de la publication de messages.
ReplyMessage Répond à un message envoyé via la fonction SendMessage sans retourner le contrôle à la fonction qui a appelé SendMessage.
SendAsyncProc Fonction de rappel définie par l’application utilisée avec la fonction SendMessageCallback . Le système transmet le message à la fonction de rappel après avoir transmis le message à la procédure de fenêtre de destination. Le type SENDASYNCPROC définit un pointeur vers cette fonction de rappel. SendAsyncProc est un espace réservé pour le nom de la fonction définie par l’application.
SendMessage Envoie le message spécifié à une ou plusieurs fenêtres. La fonction SendMessage appelle la procédure de fenêtre pour la fenêtre spécifiée et ne retourne pas tant que la procédure de fenêtre n’a pas traité le message.
Pour envoyer un message et retourner immédiatement, utilisez la fonction SendMessageCallback ou SendNotifyMessage . Pour publier un message dans la file d’attente de messages d’un thread et le retourner immédiatement, utilisez la fonction PostMessage ou PostThreadMessage .
SendMessageCallback 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. Une fois que la procédure de fenêtre a traité 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.
SendMessageTimeout Envoie le message spécifié à l’une des autres fenêtres.
SendNotifyMessage Envoie le message spécifié à une ou plusieurs fenêtres. Si la fenêtre a été créée par le thread appelant, SendNotifyMessage appelle la procédure de fenêtre pour la fenêtre et ne retourne pas tant que la procédure de fenêtre n’a pas traité le message. Si la fenêtre a été créée par un autre thread, SendNotifyMessage transmet le message à la procédure de fenêtre et retourne immédiatement ; il n’attend pas que la procédure de fenêtre termine le traitement du message.
SetMessageExtraInfo Définit les informations de message supplémentaires pour le thread actuel. Les informations de message supplémentaires sont une valeur définie par l’application ou le pilote associée à la file d’attente de messages du thread actuel. Une application peut utiliser la fonction GetMessageExtraInfo pour récupérer les informations de message supplémentaires d’un thread.
TranslateMessage Convertit les messages à clé virtuelle en messages caractères. Les messages caractères sont publiés dans la file d’attente des messages du thread appelant, pour être lus la prochaine fois que le thread appelle la fonction GetMessage ou PeekMessage .
WaitMessage Renvoie le contrôle à d’autres threads lorsqu’un thread n’a pas d’autres messages dans sa file d’attente de messages. La fonction WaitMessage suspend le thread et ne retourne pas tant qu’un nouveau message n’est pas placé dans la file d’attente des messages du thread.

Constantes de message

Nom Description
OCM__BASE Utilisé pour définir des messages privés à utiliser par des classes de fenêtre privées.
WM_APP Utilisé pour définir des messages privés.
WM_USER Utilisé pour définir des messages privés à utiliser par des classes de fenêtre privées.

Message Structures

Nom Description
BSMINFO Contient des informations sur une fenêtre qui a refusé une demande de BroadcastSystemMessageEx.
MSG Contient des informations sur les messages de la file d'attente de messages d'un thread.