Fungsi AttachThreadInput (winuser.h)
Melampirkan atau melepaskan mekanisme pemrosesan input dari satu utas ke utas lain.
Sintaks
BOOL AttachThreadInput(
[in] DWORD idAttach,
[in] DWORD idAttachTo,
[in] BOOL fAttach
);
Parameter
[in] idAttach
Pengidentifikasi utas yang akan dilampirkan ke utas lain. Utas yang akan dilampirkan tidak boleh berupa utas sistem.
[in] idAttachTo
Pengidentifikasi utas tempat idAttach akan dilampirkan. Utas ini tidak boleh berupa utas sistem.
Utas tidak dapat dilampirkan ke dirinya sendiri. Oleh karena itu, idAttachTo tidak dapat sama dengan idAttach.
[in] fAttach
Jika parameter ini TRUE, dua utas akan dilampirkan. Jika parameternya FALSE, utas akan dilepaskan.
Nilai kembali
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Windows Server 2003 dan Windows XP: Tidak ada informasi kesalahan yang diperluas; jangan panggil GetLastError. Perilaku ini berubah pada Windows Vista.
Keterangan
Dengan menggunakan fungsi AttachThreadInput , utas dapat berbagi status inputnya (seperti status keyboard dan jendela fokus saat ini) dengan utas lain. Peristiwa keyboard dan mouse yang diterima oleh kedua utas diproses dalam urutan yang diterima hingga utas terlepas dengan memanggil AttachThreadInput untuk kedua kalinya dan menentukan FALSE untuk parameter fAttach .
Fungsi AttachThreadInput gagal jika salah satu utas yang ditentukan tidak memiliki antrean pesan. Sistem membuat antrean pesan utas ketika utas melakukan panggilan pertamanya ke salah satu fungsi USER atau GDI. Fungsi AttachThreadInput juga gagal jika kait rekaman jurnal diinstal. Journal kait rekaman melampirkan semua antrean input bersama-sama.
Perhatikan bahwa status kunci, yang dapat dipastikan oleh panggilan ke fungsi GetKeyState atau GetKeyboardState , diatur ulang setelah panggilan ke AttachThreadInput. Anda tidak dapat melampirkan utas ke utas di desktop lain.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows XP [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2003 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winuser.h (sertakan Windows.h) |
Pustaka | User32.lib |
DLL | User32.dll |
Set API | ext-ms-win-ntuser-misc-l1-2-0 (diperkenalkan dalam Windows 8.1) |