Condividi tramite


Funzione BroadcastSystemMessageA (winuser.h)

Invia un messaggio ai destinatari specificati. I destinatari possono essere applicazioni, driver installabili, driver di rete, driver di dispositivo a livello di sistema o qualsiasi combinazione di questi componenti di sistema.

Per ricevere informazioni aggiuntive se la richiesta è definita, usare la funzione BroadcastSystemMessageEx.

Sintassi

long BroadcastSystemMessageA(
  [in]                DWORD   flags,
  [in, out, optional] LPDWORD lpInfo,
  [in]                UINT    Msg,
  [in]                WPARAM  wParam,
  [in]                LPARAM  lParam
);

Parametri

[in] flags

Tipo: DWORD

Opzione broadcast. Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
BSF_ALLOWSFW
0x00000080
Consente al destinatario di impostare la finestra in primo piano durante l'elaborazione del messaggio.
BSF_FLUSHDISK
0x00000004
Scarica il disco dopo che ogni destinatario elabora il messaggio.
BSF_FORCEIFHUNG
0x00000020
Continua a trasmettere il messaggio, anche se il periodo di timeout scade o uno dei destinatari non risponde.
BSF_IGNORECURRENTTASK
0x00000002
Non invia il messaggio alle finestre che appartengono all'attività corrente. Ciò impedisce a un'applicazione di ricevere il proprio messaggio.
BSF_NOHANG
0x00000008
Forza il timeout di un'applicazione non risponde. Se uno dei destinatari raggiunge il timeout, non continuare a trasmettere il messaggio.
BSF_NOTIMEOUTIFNOTHUNG
0x00000040
Attende una risposta al messaggio, purché il destinatario non risponda. Non scade.
BSF_POSTMESSAGE
0x00000010
Pubblica il messaggio. Non usare in combinazione con BSF_QUERY.
BSF_QUERY
0x00000001
Invia il messaggio a un destinatario alla volta, inviando a un destinatario successivo solo se il destinatario corrente restituisce TRUE.
BSF_SENDNOTIFYMESSAGE
0x00000100
Invia il messaggio usando funzione SendNotifyMessage. Non usare in combinazione con BSF_QUERY.

[in, out, optional] lpInfo

Tipo: LPDWORD

Puntatore a una variabile che contiene e riceve informazioni sui destinatari del messaggio.

Quando la funzione viene restituita, questa variabile riceve una combinazione di questi valori che identificano i destinatari che hanno effettivamente ricevuto il messaggio.

Se questo parametro è NULL, la funzione trasmette a tutti i componenti.

Questo parametro può essere uno o più dei valori seguenti.

Valore Significato
BSM_ALLCOMPONENTS
0x00000000
Trasmissione a tutti i componenti di sistema.
BSM_ALLDESKTOPS
0x00000010
Trasmissione a tutti i desktop. Richiede il privilegio SE_TCB_NAME.
BSM_APPLICATIONS
0x00000008
Trasmissione alle applicazioni.

[in] Msg

Tipo: UINT

Messaggio da inviare.

Per gli elenchi dei messaggi forniti dal sistema, vedere System-Defined Messaggi.

[in] wParam

Tipo: WPARAM

Informazioni aggiuntive specifiche del messaggio.

[in] lParam

Tipo: LPARAM

Informazioni aggiuntive specifiche del messaggio.

Valore restituito

Tipo: long

Se la funzione ha esito positivo, il valore restituito è un valore positivo.

Se la funzione non è in grado di trasmettere il messaggio, il valore restituito è –1.

Se il parametro dwFlags è BSF_QUERY e almeno un destinatario ha restituito BROADCAST_QUERY_DENY al messaggio corrispondente, il valore restituito è zero. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

Se BSF_QUERY non viene specificato, la funzione invia il messaggio specificato a tutti i destinatari richiesti, ignorando i valori restituiti da tali destinatari.

Il sistema esegue solo il marshalling per i messaggi di sistema (quelli compresi nell'intervallo da 0 a (WM_USER-1)). Per inviare altri messaggi (quelli >= WM_USER) a un altro processo, è necessario eseguire il marshalling personalizzato.

Per un esempio, vedere Terminazione di un processo.

Nota

L'intestazione winuser.h definisce BroadcastSystemMessage come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione winuser.h (include Windows.h)
libreria User32.lib
dll User32.dll

Vedere anche

BroadcastSystemMessageEx

concettuale

messaggi e code di messaggi

riferimento

SendNotifyMessage