Fonction BroadcastSystemMessageExA (winuser.h)
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.
Syntaxe
long BroadcastSystemMessageExA(
[in] DWORD flags,
[in, out, optional] LPDWORD lpInfo,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[out, optional] PBSMINFO pbsmInfo
);
Paramètres
[in] flags
Type : DWORD
Option de diffusion. Ce paramètre peut prendre une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
Permet au destinataire de définir la fenêtre de premier plan lors du traitement du message. |
|
Vide le disque après que chaque destinataire a traité le message. |
|
Continue de diffuser le message, même si le délai d’expiration s’écoule ou si l’un des destinataires ne répond pas. |
|
N’envoie pas le message aux fenêtres qui appartiennent à la tâche actuelle. Cela empêche une application de recevoir son propre message. |
|
Si BSF_LUID est défini, le message est envoyé à la fenêtre qui a le même LUID que celui spécifié dans le membre luid de la structure BSMINFO .
Windows 2000 : Cet indicateur n’est pas pris en charge. |
|
Force une application qui ne répond pas à expirer. Si l’un des destinataires expire, ne continuez pas à diffuser le message. |
|
Attend une réponse au message, tant que le destinataire ne répond pas. N’expire pas. |
|
Publie le message. N’utilisez pas en combinaison avec BSF_QUERY. |
|
Si l’accès est refusé et que ce BSF_QUERY sont définis, BSMINFO retourne à la fois le handle de bureau et le handle de fenêtre. Si l’accès est refusé et que seul BSF_QUERY est défini, seul le handle de fenêtre est retourné par BSMINFO.
Windows 2000 : Cet indicateur n’est pas pris en charge. |
|
Envoie le message à un destinataire à la fois, en l’envoyant à un destinataire suivant uniquement si le destinataire actuel retourne TRUE. |
|
Envoie le message à l’aide de la fonction SendNotifyMessage . N’utilisez pas en combinaison avec BSF_QUERY. |
[in, out, optional] lpInfo
Type : LPDWORD
Pointeur vers une variable qui contient et reçoit des informations sur les destinataires du message.
Lorsque la fonction retourne, cette variable reçoit une combinaison de ces valeurs identifiant les destinataires qui ont réellement reçu le message.
Si ce paramètre a la valeur NULL, la fonction est diffusée sur tous les composants.
Ce paramètre peut prendre une ou plusieurs des valeurs suivantes.
Valeur | Signification |
---|---|
|
Diffuser sur tous les composants système. |
|
Diffuser sur tous les ordinateurs de bureau. Nécessite le privilège SE_TCB_NAME . |
|
Diffuser vers les applications. |
[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.
[out, optional] pbsmInfo
Type : PBSMINFO
Pointeur vers une structure BSMINFO qui contient des informations supplémentaires si la demande est refusée et si dwFlags est défini sur BSF_QUERY.
Valeur retournée
Type : long
Si la fonction réussit, la valeur de retour est une valeur positive.
Si la fonction ne parvient pas à diffuser le message, la valeur de retour est –1.
Si le paramètre dwFlags est BSF_QUERY et qu’au moins un destinataire a retourné BROADCAST_QUERY_DENY au message correspondant, la valeur de retour est zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
Si BSF_QUERY n’est pas spécifié, la fonction envoie le message spécifié à tous les destinataires demandés, en ignorant les valeurs retournées par ces destinataires.
Si le thread de l’appelant se trouve sur un bureau autre que celui de la fenêtre qui a refusé la demande, l’appelant doit appeler SetThreadDesktop(hdesk) pour interroger quelque chose dans cette fenêtre. En outre, l’appelant doit appeler CloseDesktop sur le handle hdesk retourné.
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 BroadcastSystemMessageEx 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 XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winuser.h (inclure Windows.h) |
Bibliothèque | User32.lib |
DLL | User32.dll |
Voir aussi
Conceptuel
Messages et files d’attente de messages
Référence