Función AttachThreadInput (winuser.h)

Asocia o desasocia el mecanismo de procesamiento de entrada de un subproceso al de otro subproceso.

Sintaxis

BOOL AttachThreadInput(
  [in] DWORD idAttach,
  [in] DWORD idAttachTo,
  [in] BOOL  fAttach
);

Parámetros

[in] idAttach

Identificador del subproceso que se va a adjuntar a otro subproceso. El subproceso que se va a adjuntar no puede ser un subproceso del sistema.

[in] idAttachTo

Identificador del subproceso al que se asociará idAttach . Este subproceso no puede ser un subproceso del sistema.

Un subproceso no se puede asociar a sí mismo. Por lo tanto, idAttachTo no puede ser igual a idAttach.

[in] fAttach

Si este parámetro es TRUE, se adjuntan los dos subprocesos. Si el parámetro es FALSE, los subprocesos se desasocian.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es distinto de cero.

Si la función no se realiza correctamente, el valor devuelto es cero. Para obtener información de error extendida, llame a GetLastError.

Windows Server 2003 y Windows XP: No hay información de error extendida; no llame a GetLastError. Este comportamiento cambió a partir de Windows Vista.

Comentarios

Mediante el uso de la función AttachThreadInput , un subproceso puede compartir sus estados de entrada (como estados de teclado y la ventana de foco actual) con otro subproceso. Los eventos de teclado y mouse recibidos por ambos subprocesos se procesan en el orden en que se recibieron hasta que los subprocesos se desasocian llamando a AttachThreadInput una segunda vez y especificando FALSE para el parámetro fAttach .

Se produce un error en la función AttachThreadInput si alguno de los subprocesos especificados no tiene una cola de mensajes. El sistema crea la cola de mensajes de un subproceso cuando el subproceso realiza su primera llamada a una de las funciones USER o GDI. La función AttachThreadInput también produce un error si se instala un enlace de registro de diario. Journal enlaces de registro conectan todas las colas de entrada juntas.

Tenga en cuenta que el estado de clave, que se puede determinar mediante llamadas a la función GetKeyState oGetKeyboardState , se restablece después de una llamada a AttachThreadInput. No se puede adjuntar un subproceso a un subproceso en otro escritorio.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winuser.h (incluya Windows.h)
Library User32.lib
Archivo DLL User32.dll
Conjunto de API ext-ms-win-ntuser-misc-l1-2-0 (introducido en Windows 8.1)

Consulte también

GetCurrentThreadId

GetKeyState

GetKeyboardState

GetWindowThreadProcessId

Funciones de proceso y subproceso

SetFocus

Subprocesos