Partager via


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 être une ou plusieurs des valeurs suivantes.

Valeur Signification
BSF_ALLOWSFW
0x00000080
Permet au destinataire de définir la fenêtre de premier plan lors du traitement du message.
BSF_FLUSHDISK
0x00000004
Vide le disque après que chaque destinataire traite le message.
BSF_FORCEIFHUNG
0x00000020
Continue de diffuser le message, même si le délai d’attente s’écoule ou si l’un des destinataires ne répond pas.
BSF_IGNORECURRENTTASK
0x00000002
N’envoie pas le message aux fenêtres qui appartiennent à la tâche actuelle. Cela empêche une application de recevoir son propre message.
BSF_LUID
0x00000400
Si BSF_LUID est défini, le message est envoyé à la fenêtre qui a le même LUID que spécifié dans le membre luid de la structure BSMINFO.

Windows 2000 : Cet indicateur n’est pas pris en charge.

BSF_NOHANG
0x00000008
Force une application non répondive à expirer. Si l’un des destinataires expire, ne continuez pas à diffuser le message.
BSF_NOTIMEOUTIFNOTHUNG
0x00000040
Attend une réponse au message, tant que le destinataire ne répond pas. N’expire pas.
BSF_POSTMESSAGE
0x00000010
Publie le message. N’utilisez pas en combinaison avec BSF_QUERY.
BSF_RETURNHDESK
0x00000200
Si l’accès est refusé et que cela et 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.

BSF_QUERY
0x00000001
Envoie le message à un destinataire à la fois, en envoyant à un destinataire ultérieur uniquement si le destinataire actuel retourne TRUE.
BSF_SENDNOTIFYMESSAGE
0x00000100
Envoie le message à l’aide de 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 est retournée, cette variable reçoit une combinaison de ces valeurs identifiant les destinataires qui ont reçu le message.

Si ce paramètre est NULL, la fonction diffuse vers tous les composants.

Ce paramètre peut être une ou plusieurs des valeurs suivantes.

Valeur Signification
BSM_ALLCOMPONENTS
0x00000000
Diffuser sur tous les composants système.
BSM_ALLDESKTOPS
0x00000010
Diffuser sur tous les ordinateurs de bureau. Nécessite le privilège SE_TCB_NAME.
BSM_APPLICATIONS
0x00000008
Diffuser vers des applications.

[in] Msg

Type : uiNT

Message à envoyer.

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

[in] wParam

Type : WPARAM

Informations supplémentaires spécifiques aux messages.

[in] lParam

Type : LPARAM

Informations supplémentaires spécifiques aux messages.

[out, optional] pbsmInfo

Type : PBSMINFO

Pointeur vers une structure BSMINFO qui contient des informations supplémentaires si la demande est refusée et dwFlags est défini sur BSF_QUERY.

Valeur de retour

Type : longue

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 égale à zéro. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Remarques

Si BSF_QUERY n’est pas spécifié, la fonction envoie le message spécifié à tous les destinataires demandés, 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 quoi que ce soit sur cette fenêtre. En outre, l’appelant doit appeler closeDesktop sur le handle de 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 (ces >= WM_USER) à un autre processus, vous devez effectuer un marshaling personnalisé.

Note

L’en-tête winuser.h définit BroadcastSystemMessageEx comme 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows XP [applications de bureau uniquement]
serveur minimum pris en charge Windows Server 2003 [applications de bureau uniquement]
plateforme cible Windows
d’en-tête winuser.h (include Windows.h)
bibliothèque User32.lib
DLL User32.dll

Voir aussi

BSMINFO

BroadcastSystemMessage

conceptuelle

messages et files d’attente de messages

de référence

SendNotifyMessage