Função AttachThreadInput (winuser.h)
Anexa ou desanexa o mecanismo de processamento de entrada de um thread ao de outro thread.
Sintaxe
BOOL AttachThreadInput(
[in] DWORD idAttach,
[in] DWORD idAttachTo,
[in] BOOL fAttach
);
Parâmetros
[in] idAttach
O identificador do thread a ser anexado a outro thread. O thread a ser anexado não pode ser um thread do sistema.
[in] idAttachTo
O identificador do thread ao qual idAttach será anexado. Esse thread não pode ser um thread do sistema.
Um thread não pode ser anexado a si mesmo. Portanto, idAttachTo não pode ser igual a idAttach.
[in] fAttach
Se esse parâmetro for TRUE, os dois threads serão anexados. Se o parâmetro for FALSE, os threads serão desanexados.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero.
Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Windows Server 2003 e Windows XP: Não há informações de erro estendidas; não chame GetLastError. Esse comportamento mudou a partir do Windows Vista.
Comentários
Usando a função AttachThreadInput , um thread pode compartilhar seus estados de entrada (como estados de teclado e a janela de foco atual) com outro thread. Os eventos de teclado e mouse recebidos por ambos os threads são processados na ordem em que foram recebidos até que os threads sejam desanexados chamando AttachThreadInput uma segunda vez e especificando FALSE para o parâmetro fAttach .
A função AttachThreadInput falhará se um dos threads especificados não tiver uma fila de mensagens. O sistema cria a fila de mensagens de um thread quando o thread faz sua primeira chamada para uma das funções USER ou GDI. A função AttachThreadInput também falhará se um gancho de registro de diário estiver instalado. Diário ganchos de registro anexam todas as filas de entrada.
Observe que o estado da chave, que pode ser apurado por chamadas para a função GetKeyState ou GetKeyboardState , é redefinido após uma chamada para AttachThreadInput. Você não pode anexar um thread a um thread em outra área de trabalho.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h (inclua Windows.h) |
Biblioteca | User32.lib |
DLL | User32.dll |
Conjunto de APIs | ext-ms-win-ntuser-misc-l1-2-0 (introduzido em Windows 8.1) |