AttachThreadInput-Funktion (winuser.h)
Fügt den Eingabeverarbeitungsmechanismus eines Threads an den eines anderen Threads an oder trennt diesen.
Syntax
BOOL AttachThreadInput(
[in] DWORD idAttach,
[in] DWORD idAttachTo,
[in] BOOL fAttach
);
Parameter
[in] idAttach
Der Bezeichner des Threads, der an einen anderen Thread angefügt werden soll. Der anzufügende Thread darf kein Systemthread sein.
[in] idAttachTo
Der Bezeichner des Threads, an den idAttach angefügt wird. Dieser Thread darf kein Systemthread sein.
Ein Thread kann sich nicht an sich selbst anfügen. Daher kann idAttachTo nicht gleich idAttach sein.
[in] fAttach
Wenn dieser Parameter TRUE ist, werden die beiden Threads angefügt. Wenn der Parameter FALSE ist, werden die Threads getrennt.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.
Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.
Windows Server 2003 und Windows XP: Es gibt keine erweiterten Fehlerinformationen. Rufen Sie GetLastError nicht auf. Dieses Verhalten hat sich ab Windows Vista geändert.
Hinweise
Mithilfe der AttachThreadInput-Funktion kann ein Thread seine Eingabezustände (z. B. Tastaturzustände und das aktuelle Fokusfenster) für einen anderen Thread freigeben. Tastatur- und Mausereignisse, die von beiden Threads empfangen werden, werden in der Reihenfolge verarbeitet, in der sie empfangen wurden, bis die Threads getrennt werden, indem AttachThreadInput ein zweites Mal aufgerufen und FALSE für den fAttach-Parameter angegeben wird.
Die AttachThreadInput-Funktion schlägt fehl, wenn einer der angegebenen Threads keine Nachrichtenwarteschlange enthält. Das System erstellt die Nachrichtenwarteschlange eines Threads, wenn der Thread zum ersten Mal eine der USER- oder GDI-Funktionen aufruft. Die AttachThreadInput-Funktion schlägt auch fehl, wenn ein Journaldatensatz-Hook installiert ist. Journal Datensatzhaken alle Eingabewarteschlangen anfügen.
Beachten Sie, dass der Schlüsselzustand, der durch Aufrufe der Funktion GetKeyState oder GetKeyboardState ermittelt werden kann, nach einem Aufruf von AttachThreadInput zurückgesetzt wird. Sie können keinen Thread an einen Thread auf einem anderen Desktop anfügen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (einschließlich Windows.h) |
Bibliothek | User32.lib |
DLL | User32.dll |
APIs | ext-ms-win-ntuser-misc-l1-2-0 (eingeführt in Windows 8.1) |