Funzione BroadcastSystemMessageExA (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.
Questa funzione è simile a BroadcastSystemMessage ad eccezione del fatto che questa funzione può restituire altre informazioni dai destinatari.
Sintassi
long BroadcastSystemMessageExA(
[in] DWORD flags,
[in, out, optional] LPDWORD lpInfo,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[out, optional] PBSMINFO pbsmInfo
);
Parametri
[in] flags
Tipo: DWORD
Opzione broadcast. Questo parametro può essere uno o più dei valori seguenti.
Valore | Significato |
---|---|
|
Consente al destinatario di impostare la finestra in primo piano durante l'elaborazione del messaggio. |
|
Scarica il disco dopo che ogni destinatario elabora il messaggio. |
|
Continua a trasmettere il messaggio, anche se il periodo di timeout scade o uno dei destinatari non risponde. |
|
Non invia il messaggio alle finestre che appartengono all'attività corrente. Ciò impedisce a un'applicazione di ricevere il proprio messaggio. |
|
Se Windows 2000: Questo flag non è supportato. |
|
Forza il timeout di un'applicazione non risponde. Se uno dei destinatari raggiunge il timeout, non continuare a trasmettere il messaggio. |
|
Attende una risposta al messaggio, purché il destinatario non risponda. Non scade. |
|
Pubblica il messaggio. Non usare in combinazione con BSF_QUERY. |
|
Se l'accesso viene negato e vengono impostati sia questo che BSF_QUERY, BSMINFO restituisce sia l'handle desktop che l'handle della finestra. Se l'accesso viene negato e viene impostato solo BSF_QUERY, solo l'handle di finestra viene restituito da BSMINFO.
Windows 2000: Questo flag non è supportato. |
|
Invia il messaggio a un destinatario alla volta, inviando a un destinatario successivo solo se il destinatario corrente restituisce TRUE. |
|
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 |
---|---|
|
Trasmissione a tutti i componenti di sistema. |
|
Trasmissione a tutti i desktop. Richiede il privilegio SE_TCB_NAME. |
|
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.
[out, optional] pbsmInfo
Tipo: PBSMINFO
Puntatore a una struttura di BSMINFO
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.
Se il thread del chiamante si trova su un desktop diverso da quello della finestra che ha negato la richiesta, il chiamante deve chiamare SetThreadDesktop(hdesk) per eseguire query su qualsiasi elemento in tale finestra. Inoltre, il chiamante deve chiamare
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.
Nota
L'intestazione winuser.h definisce BroadcastSystemMessageEx 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 XP [solo app desktop] |
server minimo supportato | Windows Server 2003 [solo app desktop] |
piattaforma di destinazione | Finestre |
intestazione |
winuser.h (include Windows.h) |
libreria |
User32.lib |
dll | User32.dll |
Vedere anche
concettuale
riferimento