Fungsi RegisterTouchpadCapableWindow dan RegisterTouchpadCapableThread

[Beberapa informasi berkaitan dengan produk pra-rilis yang mungkin dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersurat maupun tersirat, sehubungan dengan informasi yang diberikan di sini.]

Mendaftarkan jendela yang ditentukan, atau utas saat ini, sebagai berkemampuan touchpad ke sistem.

Sintaksis

WINUSERAPI
BOOL
WINAPI
RegisterTouchpadCapableWindow(
    _In_ HWND hWnd,
    _In_ BOOL fEnable);

WINUSERAPI
BOOL
WINAPI
RegisterTouchpadCapableThread(
    _In_ BOOL fEnable);

Parameter-parameternya

RegisterTouchpadCapableWindow

hWnd

Handel ke jendela yang akan didaftarkan atau tidak terdaftar sebagai berkemampuan touchpad.

fEnable

TRUE untuk mendaftarkan jendela sebagai berkemampuan touchpad; FALSE untuk membatalkan pendaftarannya.

RegisterTouchpadCapableThread

fEnable

TRUE untuk mendaftarkan utas saat ini sebagai berkemampuan touchpad; FALSE untuk membatalkan pendaftarannya.

Mengembalikan nilai

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError. Pendaftaran dapat gagal jika sistem tidak mendukung pendaftaran sebagai berkemampuan touchpad, atau jika mencoba membatalkan pendaftaran utas dan utas saat ini tidak terdaftar sebagai mampu.

Komentar

Dengan mendaftar sebagai berkemampuan touchpad, fungsionalitas sistem berikut akan berubah:

  • GetPointerDevices sekarang akan menyertakan touchpad dalam daftar perangkatnya.
  • GetCurrentInputMessageSource untuk pesan mouse yang berasal dari touchpad akan mengembalikan IMDT_TOUCHPAD sebagai jenis perangkat alih-alih IMDT_MOUSE.
  • RegisterPointerDeviceNotifications akan menghasilkan pesan untuk touchpad (kedatangan/keberangkatan perangkat serta kontak di/di luar rentang).
  • Jendela (atau semua jendela pada utas) akan menerima pesan WM_POINTER untuk gerakan dua jari touchpad (wajan dan zoom).
  • Jika pesan ini diteruskan ke DefWindowProc, pesan tersebut akan dikonversi menjadi pesan roda mouse seperti yang dilakukan sistem saat ini untuk jendela/utas berkemampuan non-touchpad.

RegisterTouchpadCapableWindow — Mendaftarkan jendela adalah "last caller wins" – kemampuan touchpad jendela diaktifkan atau dinonaktifkan berdasarkan panggilan terbaru ke API. Harapannya adalah bahwa pemilik jendela akan mendaftar sebagai mampu selama inisialisasi - komponen tidak boleh mendaftarkan jendela yang mampu jika mereka tidak dapat mengontrol bagaimana ia menangani pesan WM_POINTER yang akan diterimanya secara konsekuensinya.

RegisterTouchpadCapableThread — Sistem melacak berapa kali utas telah didaftarkan sebagai mampu, jadi jika utas terdaftar sebagai mampu, utas harus tidak terdaftar ketika tidak lagi diperlukan. Utas dapat menggunakan RegisterTouchpadCapableThread untuk mendaftar sementara sebagai mampu memanggil API yang memiliki perilaku dependen dan kemudian membatalkan pendaftaran sehingga status asli utas dipertahankan.

Karena GetPointerDevices dan GetCurrentInputMessageSource tidak mengambil jendela dalam parameternya, perilakunya hanya akan berubah ketika seluruh utas berkemampuan touchpad, untuk menghindari masalah kompatibilitas saat memilih satu jendela pada utas yang tidak diketahui lainnya.

Penting

Perilaku untuk beberapa pengaturan touchpad sistem diimplementasikan dalam INTERACTION Context API untuk melakukan pengenalan gerakan pada input pointer. Ini termasuk apakah panning dan/atau zoom telah dinonaktifkan secara eksplisit, dan arah gerakan konten untuk panning. Pembaruan sistem di masa mendatang juga dapat memperkenalkan lebih banyak fungsionalitas. Oleh karena itu, sangat disarankan, untuk menggunakan INTERACTION Context API untuk pengenalan gerakan saat mendaftar sebagai berkemampuan touchpad dan menerima input pointer secara langsung, sehingga pengguna mengalami perilaku seragam di semua aplikasi. Jika tidak menggunakan API ini, penting untuk mengkueri pengaturan touchpad pengguna dan menghormati yang terkait dengan pengenalan gerakan, jika berlaku untuk pengalaman pengguna aplikasi. Pengenalan pengaturan sistem baru akan memerlukan pembaruan aplikasi, namun — jika menggunakan INTERACTION Context API, pengaturan baru ini akan secara otomatis berfungsi seperti yang diharapkan.

Secara khusus, ProcessPointerFramesInteractionContext2 atau BufferPointerPacketsInteractionContext2 baru harus digunakan, karena ini menyediakan payload pointer penuh ke Interaction Context, bukan hanya POINTER_INFO. Penyempurnaan masa depan untuk pengenalan gerakan dapat mempertimbangkan informasi ini. Kelas WinRT PhysicalGestureRecognizer menggunakan API ini secara internal.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 11 [hanya aplikasi desktop]
Server minimum yang didukung Tidak ada yang didukung
Header Winuser.h (termasuk Windows.h)
Perpustakaan User32.lib
DLL User32.dll (ordinal 2689 untuk RegisterTouchpadCapableWindow, ordinal 2688 untuk RegisterTouchpadCapableThread)

Baca juga