Partager via


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 décrit les messages Windows et les files d’attente de messages.
à l’aide 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 Windows et aux files d’attente de messages.
de référence de message Contient la référence de l’API.

messages System-Provided

Pour obtenir des listes des messages fournis par le système, consultez System-Defined Messages.

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 requête 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 Répartit un message dans 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 souris ou de clavier dans la file d’attente des messages du thread appelant.
GetMessage Récupère un message à partir 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 la récupération.
Contrairement à getMessage, la fonction PeekMessage n’attend pas qu’un message soit publié avant de retourner.
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 message pour le dernier message récupéré par la fonction GetMessage. L’heure est un entier long qui spécifie le temps écoulé, en millisecondes, du moment où le système a commencé à l’heure de création du message (autrement dit, placé dans la file d’attente de messages du thread).
GetQueueStatus Indique le type de messages trouvés dans la file d’attente des messages du thread appelant.
InSendMessage 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 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 actuelle traite un message envoyé à partir d’un autre thread (dans le même processus ou un autre processus).
PeekMessage Répartit 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 de fin (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 être unique dans tout le 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 appelée 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 fenêtre ou à une fenêtre. 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 fonctionSendMessageCallbackou SendNotifyMessage. Pour publier un message dans la file d’attente de messages d’un thread et retourner immédiatement, utilisez la fonction PostMessage ou Fonction PostThreadMessage.
sendMessageCallback Envoie le message spécifié à une fenêtre ou à une fenêtre. 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 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.
SendMessageTimeout Envoie le message spécifié à l’une des fenêtres supplémentaires.
SendNotifyMessage Envoie le message spécifié à une fenêtre ou à une fenêtre. 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 de clé virtuelle en messages de caractères. Les messages de 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 GetMessage ou fonction 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 de 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ée.
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ée.

Message Structures

Nom Description
BSMINFO Contient des informations sur une fenêtre qui a refusé une demande de BroadcastSystemMessageEx.
msg Contient des informations de message à partir de la file d’attente de messages d’un thread.