SendMessageCallbackA-Funktion (winuser.h)

Sendet die angegebene Nachricht an ein Fenster oder Fenster. Es ruft die Fensterprozedur für das angegebene Fenster auf und gibt sofort zurück, wenn das Fenster zu einem anderen Thread gehört. Nachdem die Fensterprozedur die Nachricht verarbeitet hat, ruft das System die angegebene Rückruffunktion auf und übergibt das Ergebnis der Nachrichtenverarbeitung und einen von der Anwendung definierten Wert an die Rückruffunktion.

Syntax

BOOL SendMessageCallbackA(
  [in] HWND          hWnd,
  [in] UINT          Msg,
  [in] WPARAM        wParam,
  [in] LPARAM        lParam,
  [in] SENDASYNCPROC lpResultCallBack,
  [in] ULONG_PTR     dwData
);

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 vorhandener Fenster, überlappender Fenster und Popupfenster; 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 Systemdefinierte Nachrichten.

[in] wParam

Typ: WPARAM

Zusätzliche meldungsspezifische Informationen.

[in] lParam

Typ: LPARAM

Zusätzliche meldungsspezifische Informationen.

[in] lpResultCallBack

Typ: SENDASYNCPROC

Ein Zeiger auf eine Rückruffunktion, die das System aufruft, nachdem die Fensterprozedur die Nachricht verarbeitet hat. Weitere Informationen finden Sie unter SendAsyncProc.

Wenn hWndHWND_BROADCAST ((HWND)0xffff ist), ruft das System die Rückruffunktion SendAsyncProc einmal für jedes Fenster der obersten Ebene auf.

[in] dwData

Typ: ULONG_PTR

Ein anwendungsdefinierter Wert, der an die Rückruffunktion gesendet werden soll, auf die der lpCallBack-Parameter verweist.

Rückgabewert

Typ: BOOL

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Wenn das Zielfenster zum selben Thread wie der Aufrufer gehört, wird die Fensterprozedur synchron aufgerufen, und die Rückruffunktion wird sofort aufgerufen, nachdem die Fensterprozedur zurückgegeben wird. Wenn das Zielfenster zu einem anderen Thread als dem Aufrufer gehört, wird die Rückruffunktion nur aufgerufen, wenn der Thread , der SendMessageCallback aufgerufen hat, auch GetMessage, PeekMessage oder WaitMessage aufruft.

Wenn Sie eine Nachricht im folgenden Bereich WM_USER an die asynchronen Nachrichtenfunktionen (PostMessage, SendNotifyMessage und SendMessageCallback) senden, können die 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 über HWND_BROADCAST kommunizieren müssen, sollten die Funktion RegisterWindowMessage verwenden, um eine eindeutige Nachricht für die Kommunikation zwischen der Anwendung abzurufen.

Das System führt nur Marshalling für Systemmeldungen durch (solche 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 SendMessageCallback 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 nicht codierungsneutralem Code 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 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-message-l1-1-0 (eingeführt in Windows 8)

Siehe auch

Konzept

Nachrichten und Nachrichtenwarteschlangen

PostMessage

Referenz

RegisterWindowMessage

SendAsyncProc

SendMessageCallback

SendNotifyMessage