Condividi tramite


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)

Vedi anche

GetCurrentThreadId

GetKeyState

GetKeyboardState

GetWindowThreadProcessId

Funzioni di processi e thread

Setfocus

Thread