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 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 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 disabilitate 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 System-Defined Messaggi.
[in] wParam
Tipo: WPARAM
Informazioni aggiuntive specifiche del messaggio.
[in] lParam
Tipo: LPARAM
Informazioni aggiuntive specifiche del messaggio.
[in] lpResultCallBack
Tipo: SENDASYNCPROC
Puntatore a una funzione di callback chiamata dal sistema dopo che la routine della finestra elabora il messaggio. Per altre informazioni, vedere SendAsyncProc.
Se hWnd è HWND_BROADCAST ((HWND)0xffff), il sistema chiama SendAsyncProc funzione di callback 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 ottenere informazioni estese sull'errore, chiamare GetLastError.
Osservazioni
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 chiamato SendMessageCallback chiama anche GetMessage, PeekMessageo WaitMessage.
Se si invia un messaggio nell'intervallo seguente WM_USER alle funzioni di messaggio asincrone (PostMessage, SendNotifyMessagee SendMessageCallback), i parametri del messaggio non possono includere puntatori. In caso contrario, l'operazione avrà esito negativo. Le funzioni verranno restituite 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 tramite
Il sistema esegue solo il marshalling per i messaggi di sistema (quelli compresi 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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 2000 Professional [solo app desktop] |
server minimo supportato | Windows 2000 Server [solo app desktop] |
piattaforma di destinazione | Finestre |
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) |
Vedere anche
concettuale
riferimento