Funzione SendMessageCallbackW (winuser.h)
Invia il messaggio specificato a una finestra o a una finestra. Chiama la routine della finestra per la finestra specificata e restituisce immediatamente se la finestra appartiene a un altro thread. Dopo che la routine della finestra elabora il messaggio, il sistema chiama la funzione di callback specificata, passando il risultato dell'elaborazione del messaggio e un valore definito dall'applicazione alla funzione di callback.
Sintassi
BOOL SendMessageCallbackW(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[in] SENDASYNCPROC lpResultCallBack,
[in] ULONG_PTR dwData
);
Parametri
[in] hWnd
Tipo: HWND
Handle nella finestra la cui procedura della finestra riceverà il messaggio. Se questo parametro è HWND_BROADCAST ((HWND)0xffff), il messaggio viene inviato a tutte le finestre di primo livello del sistema, incluse finestre disabilitate o invisibili, finestre sovrapposte e finestre popup; ma il messaggio non viene inviato a finestre figlio.
[in] Msg
Tipo: UINT
Messaggio da inviare.
Per elenchi dei messaggi forniti dal sistema, vedere Messaggi definiti dal sistema.
[in] wParam
Tipo: WPARAM
Ulteriori informazioni specifiche del messaggio.
[in] lParam
Tipo: LPARAM
Ulteriori informazioni specifiche del messaggio.
[in] lpResultCallBack
Tipo: SENDASYNCPROC
Puntatore a una funzione di callback che il sistema chiama dopo che la routine della finestra elabora il messaggio. Per altre informazioni, vedere SendAsyncProc.
Se hWnd è HWND_BROADCAST ((HWND)0xffff), il sistema chiama la funzione di callback SendAsyncProc una volta per ogni finestra di primo livello.
[in] dwData
Tipo: ULONG_PTR
Valore definito dall'applicazione da inviare alla funzione callback a cui punta il parametro lpCallBack .
Valore restituito
Tipo: BOOL
Se la funzione ha esito positivo, il valore restituito è diverso da zero.
Se la funzione ha esito negativo, il valore restituito è zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
Se la finestra di destinazione appartiene allo stesso thread del chiamante, la procedura della finestra viene chiamata in modo sincrono e la funzione di callback viene chiamata immediatamente dopo la restituzione della routine della finestra. Se la finestra di destinazione appartiene a un thread diverso dal chiamante, la funzione di callback viene chiamata solo quando il thread denominato SendMessageCallback chiama anche GetMessage, PeekMessage o WaitMessage.
Se si invia un messaggio nell'intervallo seguente WM_USER alle funzioni di messaggio asincrone (PostMessage, SendNotifyMessage e SendMessageCallback), i parametri del messaggio non possono includere puntatori. altrimenti l'operazione non riesce. Le funzioni restituiranno prima che il thread di ricezione abbia avuto la possibilità di elaborare il messaggio e il mittente libera la memoria prima che venga usata.
Le applicazioni che devono comunicare usando HWND_BROADCAST devono usare la funzione RegisterWindowMessage per ottenere un messaggio univoco per la comunicazione tra applicazioni.
Il sistema esegue solo il marshalling per i messaggi di sistema (quelli inclusi 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 SendMessageCallback come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante preprocessore UNICODE. La combinazione dell'utilizzo dell'alias di codifica neutrale con il codice che non è neutrale dalla codifica può causare errori di corrispondenza che causano errori di compilazione o runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzione.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | winuser.h (include Windows.h) |
Libreria | User32.lib |
DLL | User32.dll |
Set di API | ext-ms-win-ntuser-message-l1-1-0 (introdotto in Windows 8) |
Vedi anche
Informazioni concettuali
Riferimento
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per