Freigeben über


SendMessageCallbackW-Funktion (winuser.h)

Sendet die angegebene Nachricht an ein Fenster oder fenster. Sie 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, übergibt das Ergebnis der Nachrichtenverarbeitung und einen anwendungsdefinierten Wert an die Rückruffunktion.

Syntax

BOOL SendMessageCallbackW(
  [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 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.

[in] lpResultCallBack

Typ: SENDASYNCPROC-

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

Wenn hWnd-HWND_BROADCAST ((HWND)0xffff ist), ruft das System die SendAsyncProc Rückruffunktion 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 fehlschlägt, ist der Rückgabewert null. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Wenn das Zielfenster zum gleichen Thread wie der Aufrufer gehört, wird die Fensterprozedur synchron aufgerufen, und die Rückruffunktion wird unmittelbar nach dem Zurückgeben der Fensterprozedur aufgerufen. Wenn das Zielfenster zu einem anderen Thread vom Aufrufer gehört, wird die Rückruffunktion nur aufgerufen, wenn der Thread, der SendMessageCallback aufgerufen auch GetMessage, PeekMessageoder WaitMessageaufruft.

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 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 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-0 (eingeführt in Windows 8)

Siehe auch

Konzeptionelle

Nachrichten- und Nachrichtenwarteschlangen

PostMessage-

Referenz-

RegisterWindowMessage

SendAsyncProc-

SendMessageCallback-

SendNotifyMessage-