Funzione BroadcastSystemMessageW (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 BroadcastSystemMessageW(
  [in]                DWORD   flags,
  [in, out, optional] LPDWORD lpInfo,
  [in]                UINT    Msg,
  [in]                WPARAM  wParam,
  [in]                LPARAM  lParam
);

Parametri

[in] flags

Tipo: DWORD

Opzione di trasmissione. 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 trascorso 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 rispondente. Se uno dei destinatari non esegue il timeout, non continuare a trasmettere il messaggio.
BSF_NOTIMEOUTIFNOTHUNG
0x00000040
Attende una risposta al messaggio, purché il destinatario non sia in grado di rispondere. Non timeout.
BSF_POSTMESSAGE
0x00000010
Invia 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 la funzione SendNotifyMessage . Non usare in combinazione con BSF_QUERY.

[in, out, optional] lpInfo

Tipo: LPDWORD

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

Quando la funzione restituisce, 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
Trasmettere a tutti i componenti di sistema.
BSM_ALLDESKTOPS
0x00000010
Trasmettere a tutti i desktop. Richiede il privilegio SE_TCB_NAME .
BSM_APPLICATIONS
0x00000008
Trasmettere alle applicazioni.

[in] Msg

Tipo: UINT

Messaggio da inviare.

Per elenchi dei messaggi forniti dal sistema, vedere Messaggi definiti dal sistema.

[in] wParam

Tipo: WPARAM

Ulteriori informazioni specifiche del messaggio.

[in] lParam

Tipo: LPARAM

Ulteriori informazioni 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 informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Se BSF_QUERY non è 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 inclusi nell'intervallo da 0 a (WM_USER-1)). Per inviare altri messaggi (quelli >= WM_USER) a un altro processo, è necessario eseguire il marshalling personalizzato.

Esempio

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 preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll

Vedi anche

BroadcastSystemMessageEx

Informazioni concettuali

Messaggi e code di messaggi

Riferimento

SendNotifyMessage