Funzione SendMessageCallbackA (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 window 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 SendMessageCallbackA(
[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 per la finestra la cui routine 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 disattivate o invisibili, finestre sovrapposte e finestre popup; ma il messaggio non viene inviato alle finestre figlio.
[in] Msg
Tipo: UINT
Messaggio da inviare.
Per gli 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 a cui inviare la funzione di 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 routine 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 che ha chiamato 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 verranno restituite prima che il thread ricevente 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 del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
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