SendNotifyMessageA-Funktion (winuser.h)
Sendet die angegebene Nachricht an ein Fenster oder fenster. Wenn das Fenster vom aufrufenden Thread erstellt wurde, ruft SendNotifyMessage die Fensterprozedur für das Fenster auf und gibt erst zurück, wenn die Fensterprozedur die Nachricht verarbeitet hat. Wenn das Fenster von einem anderen Thread erstellt wurde, SendNotifyMessage die Nachricht an die Fensterprozedur weitergibt und sofort zurückgegeben wird; es wartet nicht, bis die Fensterprozedur die Verarbeitung der Nachricht abgeschlossen hat.
Syntax
BOOL SendNotifyMessageA(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam
);
Parameter
[in] hWnd
Typ: HWND-
Ein Handle für das Fenster, dessen Fensterprozedur die Nachricht empfängt. Wenn dieser Parameter HWND_BROADCAST ((HWND)0xffff ist), wird die Nachricht an alle Fenster der obersten Ebene im System gesendet, einschließlich deaktivierter oder unsichtbarer nicht verworfener Fenster, überlappenden Fenstern und Popupfenstern; die Nachricht wird jedoch nicht an untergeordnete Fenster gesendet.
[in] Msg
Typ: UINT-
Die zu sendende Nachricht.
Listen der vom System bereitgestellten Nachrichten finden Sie unter System-Defined Nachrichten.
[in] wParam
Typ: WPARAM-
Zusätzliche nachrichtenspezifische Informationen.
[in] lParam
Typ: LPARAM-
Zusätzliche nachrichtenspezifische Informationen.
Rückgabewert
Typ: BOOL-
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Wenn Sie eine Nachricht im folgenden Bereich WM_USER an die asynchronen Nachrichtenfunktionen senden (PostMessage, SendNotifyMessageund SendMessageCallback), können die zugehörigen Nachrichtenparameter keine Zeiger enthalten. Andernfalls schlägt der Vorgang fehl. Die Funktionen werden zurückgegeben, bevor der empfangende Thread die Möglichkeit hatte, die Nachricht zu verarbeiten, und der Absender gibt den Speicher frei, bevor er verwendet wird.
Anwendungen, die mithilfe von HWND_BROADCAST kommunizieren müssen, sollten die RegisterWindowMessage--Funktion verwenden, um eine eindeutige Nachricht für die Kommunikation zwischen Anwendungen zu erhalten.
Das System marshallt nur für Systemmeldungen (die im Bereich 0 bis (WM_USER-1)). Um andere Nachrichten (die >= WM_USER) an einen anderen Prozess zu senden, müssen Sie benutzerdefinierte Marshalling durchführen.
Anmerkung
Der winuser.h-Header definiert SendNotifyMessage als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante 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 |
---|---|
mindestens unterstützte Client- | Windows 2000 Professional [nur Desktop-Apps] |
mindestens unterstützte Server- | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | winuser.h (enthalten Windows.h) |
Library | User32.lib |
DLL- | User32.dll |
API-Satz | ext-ms-win-ntuser-message-l1-1-3 (eingeführt in Windows 10, Version 10.0.14393) |
Siehe auch
Konzeptionelle
Nachrichten- und Nachrichtenwarteschlangen
Referenz-