BroadcastSystemMessageExW-Funktion (winuser.h)
Sendet eine Nachricht an die angegebenen Empfänger. Die Empfänger können Anwendungen, installierbare Treiber, Netzwerktreiber, Gerätetreiber auf Systemebene oder eine beliebige Kombination dieser Systemkomponenten sein.
Diese Funktion ähnelt BroadcastSystemMessage , mit der Ausnahme, dass diese Funktion mehr Informationen von den Empfängern zurückgeben kann.
Syntax
long BroadcastSystemMessageExW(
[in] DWORD flags,
[in, out, optional] LPDWORD lpInfo,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[out, optional] PBSMINFO pbsmInfo
);
Parameter
[in] flags
Art: DWORD
Die Broadcastoption. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.
Wert | Bedeutung |
---|---|
|
Ermöglicht dem Empfänger, das Vordergrundfenster während der Verarbeitung der Nachricht festzulegen. |
|
Leert den Datenträger, nachdem jeder Empfänger die Nachricht verarbeitet hat. |
|
Die Nachricht wird weiterhin gesendet, auch wenn der Timeoutzeitraum abgelaufen ist oder einer der Empfänger nicht mehr antwortet. |
|
Sendet die Nachricht nicht an Fenster, die zur aktuellen Aufgabe gehören. Dadurch wird verhindert, dass eine Anwendung eine eigene Nachricht empfängt. |
|
Wenn BSF_LUID festgelegt ist, wird die Nachricht an das Fenster gesendet, das dieselbe LUID wie im luid-Element der BSMINFO-Struktur angegeben hat.
Windows 2000: Dieses Flag wird nicht unterstützt. |
|
Erzwingt ein Timeout für eine nicht reagierende Anwendung. Wenn bei einem der Empfänger ein Zeitüberschreitungsüberschreitung besteht, sollten Sie die Übertragung der Nachricht nicht fortsetzen. |
|
Wartet auf eine Antwort auf die Nachricht, solange der Empfänger nicht reagiert. Gibt kein Timeout an. |
|
Postet die Nachricht. Verwenden Sie nicht in Kombination mit BSF_QUERY. |
|
Wenn der Zugriff verweigert wird und sowohl dieser als auch BSF_QUERY festgelegt sind, gibt BSMINFO sowohl das Desktophandle als auch das Fensterhandle zurück. Wenn der Zugriff verweigert und nur BSF_QUERY festgelegt wird, wird nur das Fensterhandle von BSMINFO zurückgegeben.
Windows 2000: Dieses Flag wird nicht unterstützt. |
|
Sendet die Nachricht jeweils an einen Empfänger, der nur dann an einen nachfolgenden Empfänger gesendet wird, wenn der aktuelle Empfänger TRUE zurückgibt. |
|
Sendet die Nachricht mithilfe der SendNotifyMessage-Funktion . Verwenden Sie nicht in Kombination mit BSF_QUERY. |
[in, out, optional] lpInfo
Typ: LPDWORD
Ein Zeiger auf eine Variable, die Informationen über die Empfänger der Nachricht enthält und empfängt.
Wenn die Funktion zurückgegeben wird, empfängt diese Variable eine Kombination dieser Werte, die angibt, welche Empfänger die Nachricht tatsächlich empfangen haben.
Wenn dieser Parameter NULL ist, wird die Funktion an alle Komponenten übertragen.
Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen.
Wert | Bedeutung |
---|---|
|
Übertragung an alle Systemkomponenten. |
|
Übertragen auf alle Desktops. Erfordert die Berechtigung SE_TCB_NAME . |
|
Übertragen an Anwendungen. |
[in] Msg
Typ: UINT
Die zu sendende Nachricht.
Listen der vom System bereitgestellten Nachrichten finden Sie unter Systemdefinierte Nachrichten.
[in] wParam
Typ: WPARAM
Zusätzliche meldungsspezifische Informationen.
[in] lParam
Typ: LPARAM
Zusätzliche meldungsspezifische Informationen.
[out, optional] pbsmInfo
Typ: PBSMINFO
Ein Zeiger auf eine BSMINFO-Struktur , die zusätzliche Informationen enthält, wenn die Anforderung abgelehnt und dwFlags auf BSF_QUERY festgelegt ist.
Rückgabewert
Typ: long
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein positiver Wert.
Wenn die Funktion die Nachricht nicht übertragen kann, ist der Rückgabewert –1.
Wenn der dwFlags-ParameterBSF_QUERY ist und mindestens ein Empfänger BROADCAST_QUERY_DENY an die entsprechende Nachricht zurückgegeben hat, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Hinweise
Wenn BSF_QUERY nicht angegeben ist, sendet die Funktion die angegebene Nachricht an alle angeforderten Empfänger, wobei die von diesen Empfängern zurückgegebenen Werte ignoriert werden.
Wenn sich der Thread des Aufrufers auf einem anderen Desktop als dem des Fensters befindet, das die Anforderung abgelehnt hat, muss der Aufrufer SetThreadDesktop(hdesk) aufrufen, um etwas in diesem Fenster abzufragen. Außerdem muss der Aufrufer CloseDesktop für das zurückgegebene hdesk-Handle aufrufen.
Das System führt nur Marshalling für Systemmeldungen durch (die im Bereich von 0 bis (WM_USER-1)). Um andere Nachrichten (diese >= WM_USER) an einen anderen Prozess zu senden, müssen Sie benutzerdefiniertes Marshalling durchführen.
Hinweis
Der winuser.h-Header definiert BroadcastSystemMessageEx als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (einschließlich Windows.h) |
Bibliothek | User32.lib |
DLL | User32.dll |
Weitere Informationen
Konzept
Nachrichten und Nachrichtenwarteschlangen
Referenz