Funzione AttachThreadInput (winuser.h)
Collega o scollega il meccanismo di elaborazione di input di un thread a quello di un altro thread.
Sintassi
BOOL AttachThreadInput(
[in] DWORD idAttach,
[in] DWORD idAttachTo,
[in] BOOL fAttach
);
Parametri
[in] idAttach
Identificatore del thread da collegare a un altro thread. Il thread da collegare non può essere un thread di sistema.
[in] idAttachTo
Identificatore del thread a cui verrà collegato idAttach . Questo thread non può essere un thread di sistema.
Un thread non può collegarsi a se stesso. Pertanto , idAttachTo non può essere uguale a idAttach.
[in] fAttach
Se questo parametro è TRUE, i due thread vengono collegati. Se il parametro è FALSE, i thread vengono scollegati.
Valore restituito
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.
Windows Server 2003 e Windows XP: Non sono presenti informazioni di errore estese; non chiamare GetLastError. Questo comportamento è cambiato a partire da Windows Vista.
Commenti
Usando la funzione AttachThreadInput , un thread può condividere i relativi stati di input (ad esempio stati della tastiera e la finestra dello stato attivo corrente) con un altro thread. Gli eventi della tastiera e del mouse ricevuti da entrambi i thread vengono elaborati nell'ordine in cui sono stati ricevuti fino a quando i thread non vengono scollegati chiamando AttachThreadInput una seconda volta e specificando FALSE per il parametro fAttach .
La funzione AttachThreadInput ha esito negativo se uno dei thread specificati non ha una coda di messaggi. Il sistema crea una coda di messaggi di un thread quando il thread effettua la prima chiamata a una delle funzioni USER o GDI. La funzione AttachThreadInput ha esito negativo anche se è installato un hook di record journal. Journal gli hook di record allegano tutte le code di input insieme.
Si noti che lo stato della chiave, che può essere verificato dalle chiamate alla funzione GetKeyState o GetKeyboardState , viene reimpostata dopo una chiamata a AttachThreadInput. Non è possibile collegare un thread a un thread in un altro desktop.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [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-misc-l1-2-0 (introdotto in Windows 8.1) |