Fungsi GetPointerTouchpadInfo

[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.]

Mengambil informasi pointer khusus touchpad. Empat varian tersedia tergantung pada apakah Anda memerlukan satu penunjuk atau seluruh bingkai, dan apakah Anda memerlukan status saat ini atau riwayat lengkap.

Sintaksis

WINUSERAPI
BOOL
WINAPI
GetPointerTouchpadInfo(
    _In_ UINT32 pointerId,
    _Out_writes_(1) POINTER_TOUCH_INFO *touchpadInfo);

WINUSERAPI
BOOL
WINAPI
GetPointerTouchpadInfoHistory(
    _In_ UINT32 pointerId,
    _Inout_ UINT32 *entriesCount,
    _Out_writes_opt_(*entriesCount) POINTER_TOUCH_INFO *touchpadInfo);

WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchpadInfo(
    _In_ UINT32 pointerId,
    _Inout_ UINT32 *pointerCount,
    _Out_writes_opt_(*pointerCount) POINTER_TOUCH_INFO *touchpadInfo);

WINUSERAPI
BOOL
WINAPI
GetPointerFrameTouchpadInfoHistory(
    _In_ UINT32 pointerId,
    _Inout_ UINT32 *entriesCount,
    _Inout_ UINT32 *pointerCount,
    _Out_writes_opt_(*entriesCount * *pointerCount) POINTER_TOUCH_INFO *touchpadInfo);

Parameter-parameternya

pointerId

Pengidentifikasi penunjuk untuk mengambil informasi.

entriesCount (Varian riwayat)

Penunjuk ke nilai yang menentukan jumlah entri dalam buffer. Pada input, menentukan ukuran buffer. Pada output, menerima jumlah entri yang ditulis.

pointerCount (Varian bingkai)

Penunjuk ke nilai yang menentukan jumlah penunjuk dalam bingkai. Pada input, menentukan ukuran buffer. Pada output, menerima jumlah pointer yang ditulis.

touchpadInfo

Penunjuk ke struktur POINTER_TOUCH_INFO yang menerima informasi touchpad. Bisa NULL untuk mengkueri ukuran buffer yang diperlukan.

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.

Komentar

Mengambil input penunjuk touchpad yang diminta yang terkait dengan ID penunjuk yang ditentukan. "Bingkai" mencakup semua kontak aktif saat ini yang dikirimkan ke target yang sama dengan input yang terkait dengan ID pointer. "Riwayat" mencakup input apa pun yang dikoaleskan dengan input saat ini karena target tidak segera menghapus antrean input sebelumnya.

Input pointer dikembalikan dalam struktur POINTER_TOUCH_INFO , sama seperti setara sentuhan API ini, karena bidang pointer yang diperluas identik untuk input touch dan touchpad.

Fungsi-fungsi ini hanya boleh dipanggil saat memproses pesan WM_POINTER untuk input touchpad (setelah mendaftar sebagai berkemampukan touchpad melalui RegisterTouchpadCapableWindow atau RegisterTouchpadCapableThread).

Input penunjuk untuk touchpad memiliki beberapa perbedaan fungsi jika dibandingkan dengan jenis perangkat penunjuk lainnya:

  • Bidang ptPixelLocation dan ptPixelLocationRaw identik dan berisi posisi pointer mouse pada saat gerakan dimulai dan tidak berubah selama durasi gerakan.
  • Bidang ptHimetricLocation dan ptHimetricLocationRaw identik dan berisi posisi kontak relatif terhadap perangkat.
  • GetPointerDeviceRects mengembalikan desktop virtual untuk rect layar dan dimensi touchpad untuk rect perangkat. Sementara posisi di atas akan terletak di dalam batas-batas rekam jeda ini, tidak ada hubungan antara keduanya. Untuk jenis perangkat pointer lainnya, posisi masing-masing berada di lokasi relatif yang sama dalam rekam jepret yang sesuai, tetapi bukan itu masalahnya untuk input touchpad.
  • Ketika awalnya menerima aliran input, mungkin ada kesenjangan spasial dan temporal yang signifikan untuk setiap kontak antara bingkai input pertama dan kedua. Saat sistem masih melakukan disambiguasi pada input touchpad, bingkai input dibuang. Jika sistem menentukan gerakan yang terjadi, sistem mensintesis bingkai sebelumnya untuk input POINTER_FLAG_DOWN kontak dan mengirimkannya terlebih dahulu, sehingga target input dapat menggunakan informasi saat menentukan apakah input telah memenuhi ambang pengenalan gerakannya. Jika input digunakan untuk manipulasi konten, perawatan harus diambil untuk menghindari konten "melompat" di awal, yang dapat terjadi jika gerakan spasial kontak langsung diterapkan saat manipulasi konten saat input tiba.
  • Jika input pointer disalurkan ke INTERACTION Context API untuk pengenalan gerakan:
    • ProcessPointerFramesInteractionContext2 dan BufferPointerPacketsInteractionContext2 harus digunakan saat memberi masukan ke konteks interaksi.
    • Hanya output gerakan manipulasi yang dapat terjadi (ketukan dan penangguhan tidak dapat dikenali, karena sistem hanya akan menghasilkan touchpad WM_POINTER input setelah gerakan ini tidak dapat lagi terjadi).
    • Jika konteks interaksi dikonfigurasi untuk mengembalikan outputnya dalam koordinat layar, maka output diskalakan oleh faktor skala tampilan yang berisi penunjuk mouse, sehingga gerakan yang sama pada touchpad menghasilkan output gerakan efektif yang sama terlepas dari skala tampilan.
    • Jika dikonfigurasi untuk output himetric, maka gerakan yang sama akan menghasilkan hasil yang sama terlepas dari tampilan penunjuk mouse. Output diskalakan berdasarkan kecepatan input sehingga gerakan jari yang lebih cepat menghasilkan besaran output yang lebih besar untuk jarak jari fisik yang sama.
    • Output akan menghindari "melompat" seperti yang dijelaskan di atas dan dapat langsung diterapkan ke konten untuk manipulasi.

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 2691 untuk GetPointerTouchpadInfo, ordinal 2692 untuk GetPointerTouchpadInfoHistory, ordinal 2693 untuk GetPointerFrameTouchpadInfo, ordinal 2694 untuk GetPointerFrameTouchpadInfoHistory)

Baca juga