AttachThreadInput, fonction (winuser.h)
Attache ou détache le mécanisme de traitement d’entrée d’un thread à celui d’un autre thread.
Syntaxe
BOOL AttachThreadInput(
[in] DWORD idAttach,
[in] DWORD idAttachTo,
[in] BOOL fAttach
);
Paramètres
[in] idAttach
Identificateur du thread à attacher à un autre thread. Le thread à attacher ne peut pas être un thread système.
[in] idAttachTo
Identificateur du thread auquel idAttach sera attaché. Ce thread ne peut pas être un thread système.
Un thread ne peut pas s’attacher à lui-même. Par conséquent, idAttachTo ne peut pas être égal à idAttach.
[in] fAttach
Si ce paramètre a la valeur TRUE, les deux threads sont attachés. Si le paramètre a la valeur FALSE, les threads sont détachés.
Valeur retournée
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Windows Server 2003 et Windows XP : Il n’existe aucune information étendue sur les erreurs ; n’appelez pas GetLastError. Ce comportement a changé à partir de Windows Vista.
Remarques
À l’aide de la fonction AttachThreadInput , un thread peut partager ses états d’entrée (tels que les états du clavier et la fenêtre de focus actuelle) avec un autre thread. Les événements clavier et souris reçus par les deux threads sont traités dans l’ordre dans lequel ils ont été reçus jusqu’à ce que les threads soient détachés en appelant AttachThreadInput une deuxième fois et en spécifiant FALSE pour le paramètre fAttach .
La fonction AttachThreadInput échoue si l’un des threads spécifiés n’a pas de file d’attente de messages. Le système crée la file d’attente de messages d’un thread lorsque le thread effectue son premier appel à l’une des fonctions USER ou GDI. La fonction AttachThreadInput échoue également si un hook d’enregistrement de journal est installé. Journal les crochets d’enregistrement joignent toutes les files d’attente d’entrée ensemble.
Notez que l’état de clé, qui peut être déterminé par les appels à la fonction GetKeyState ou GetKeyboardState , est réinitialisé après un appel à AttachThreadInput. Vous ne pouvez pas attacher un thread à un thread dans un autre bureau.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winuser.h (inclure Windows.h) |
Bibliothèque | User32.lib |
DLL | User32.dll |
Ensemble d’API | ext-ms-win-ntuser-misc-l1-2-0 (introduit dans Windows 8.1) |