struktur POINTER_INFO (winuser.h)
Berisi informasi pointer dasar yang umum untuk semua jenis pointer. Aplikasi dapat mengambil informasi ini menggunakan fungsi GetPointerInfo, GetPointerFrameInfo, GetPointerInfoHistory dan GetPointerFrameInfoHistory .
Sintaks
typedef struct tagPOINTER_INFO {
POINTER_INPUT_TYPE pointerType;
UINT32 pointerId;
UINT32 frameId;
POINTER_FLAGS pointerFlags;
HANDLE sourceDevice;
HWND hwndTarget;
POINT ptPixelLocation;
POINT ptHimetricLocation;
POINT ptPixelLocationRaw;
POINT ptHimetricLocationRaw;
DWORD dwTime;
UINT32 historyCount;
INT32 InputData;
DWORD dwKeyStates;
UINT64 PerformanceCount;
POINTER_BUTTON_CHANGE_TYPE ButtonChangeType;
} POINTER_INFO;
Anggota
pointerType
Jenis: POINTER_INPUT_TYPE
Nilai dari enumerasi POINTER_INPUT_TYPE yang menentukan jenis penunjuk.
pointerId
Jenis: UINT32
Pengidentifikasi yang secara unik mengidentifikasi pointer selama masa pakainya. Pointer muncul ketika pertama kali terdeteksi dan mengakhiri keberadaannya ketika keluar dari rentang deteksi. Perhatikan bahwa jika entitas fisik (jari atau pena) keluar dari rentang deteksi dan kemudian kembali terdeteksi lagi, entitas tersebut diperlakukan sebagai penunjuk baru dan dapat diberi pengidentifikasi pointer baru.
frameId
Jenis: UINT32
Pengidentifikasi umum untuk beberapa pointer yang perangkat sumbernya melaporkan pembaruan dalam satu bingkai input. Misalnya, digitizer multi-sentuh mode paralel dapat melaporkan posisi beberapa kontak sentuh dalam satu pembaruan ke sistem.
Perhatikan bahwa pengidentifikasi bingkai ditetapkan sebagai input dilaporkan ke sistem untuk semua pointer di semua perangkat. Oleh karena itu, bidang ini mungkin tidak berisi nilai berurutan secara ketat dalam satu rangkaian pesan yang diterima jendela. Namun, bidang ini akan berisi nilai numerik yang sama untuk semua pembaruan input yang dilaporkan dalam bingkai input yang sama oleh satu perangkat.
pointerFlags
Jenis: POINTER_FLAGS
Mungkin kombinasi bendera yang wajar dari konstanta Bendera Penunjuk .
sourceDevice
Jenis: HANDEL
Tangani ke perangkat sumber yang dapat digunakan dalam panggilan ke API perangkat input mentah dan API perangkat digitizer.
hwndTarget
Jenis: HWND
Jendela tempat pesan ini ditargetkan. Jika pointer ditangkap, baik secara implisit karena telah melakukan kontak melalui jendela ini atau secara eksplisit menggunakan API penunjuk capture, ini adalah jendela pengambilan. Jika penunjuk tidak ditangkap, ini adalah jendela di mana penunjuk adalah ketika pesan ini dibuat.
ptPixelLocation
Jenis: TITIK
Koordinat layar yang diprediksi dari penunjuk, dalam piksel.
Nilai yang diprediksi didasarkan pada posisi penunjuk yang dilaporkan oleh digitizer dan gerakan penunjuk. Koreksi ini dapat mengimbangi keterlambatan visual karena keterlambatan yang melekat dalam pengimporan dan pemrosesan lokasi penunjuk pada digitizer. Ini berlaku untuk pointer jenis PT_TOUCH. Untuk jenis pointer lainnya, nilai yang diprediksi akan sama dengan nilai yang tidak diprediksi (lihat ptPixelLocationRaw).
ptHimetricLocation
Jenis: TITIK
Koordinat layar yang diprediksi dari pointer, dalam unit HIMETRIC.
Nilai yang diprediksi didasarkan pada posisi penunjuk yang dilaporkan oleh digitizer dan gerakan penunjuk. Koreksi ini dapat mengimbangi keterlambatan visual karena keterlambatan yang melekat dalam pengimporan dan pemrosesan lokasi penunjuk pada digitizer. Ini berlaku untuk pointer jenis PT_TOUCH. Untuk jenis pointer lainnya, nilai yang diprediksi akan sama dengan nilai yang tidak diprediksi (lihat ptHimetricLocationRaw).
ptPixelLocationRaw
Jenis: TITIK
Koordinat layar penunjuk, dalam piksel. Untuk koordinat layar yang disesuaikan, lihat ptPixelLocation.
ptHimetricLocationRaw
Jenis: TITIK
Koordinat layar pointer, di unit HIMETRIC. Untuk koordinat layar yang disesuaikan, lihat ptHimetricLocation.
dwTime
Jenis: DWORD
0 atau stempel waktu pesan, berdasarkan jumlah centang sistem saat pesan diterima.
Aplikasi dapat menentukan stempel waktu input di dwTime atau PerformanceCount. Nilai tidak boleh lebih baru daripada jumlah centang saat ini atau nilai QueryPerformanceCount (QPC) dari utas injeksi. Setelah bingkai disuntikkan dengan stempel waktu, semua bingkai berikutnya harus menyertakan tanda waktu sampai semua kontak dalam bingkai masuk ke status UP . Nilai tanda waktu kustom juga harus disediakan untuk elemen pertama dalam array kontak. Nilai stempel waktu setelah elemen pertama diabaikan. Nilai tanda waktu kustom harus bertahap dalam setiap bingkai injeksi.
Ketika PerformanceCount ditentukan, stempel waktu akan dikonversi ke waktu saat ini dalam resolusi .1 milidetik setelah injeksi aktual. Jika PerformanceCount kustom menghasilkan jendela .1 milidetik yang sama dari injeksi sebelumnya, ERROR_NOT_READY dikembalikan dan injeksi tidak akan terjadi. Meskipun injeksi tidak akan segera dibatalkan oleh kesalahan, injeksi berhasil berikutnya harus memiliki nilai PerformanceCount yang setidaknya 0,1 milidetik dari injeksi yang berhasil sebelumnya. Ini juga berlaku jika dwTime digunakan.
Jika dwTime dan PerformanceCount ditentukan dalam InjectTouchInput, ERROR_INVALID_PARAMETER dikembalikan.
InjectTouchInput tidak dapat beralih antara dwTime dan PerformanceCount setelah injeksi dimulai.
Jika dwTime dan PerformanceCount tidak ditentukan, InjectTouchInput mengalokasikan tanda waktu berdasarkan waktu panggilan. Jika panggilan InjectTouchInput berulang kali kurang dari 0,1 milidetik terpisah, ERROR_NOT_READY mungkin dikembalikan. Kesalahan tidak akan segera membatalkan input, tetapi aplikasi injeksi perlu mencoba kembali bingkai yang sama lagi agar injeksi berhasil.
historyCount
Jenis: UINT32
Jumlah input yang digabungkan ke dalam pesan ini. Jumlah ini cocok dengan jumlah total entri yang dapat dikembalikan oleh panggilan ke GetPointerInfoHistory. Jika tidak ada coalescing yang terjadi, jumlah ini adalah 1 untuk input tunggal yang diwakili oleh pesan.
InputData
dwKeyStates
Jenis: DWORD
Menunjukkan tombol pengubah keyboard mana yang ditekan pada saat input dibuat. Mungkin nol, atau kombinasi nilai berikut dari Status Kunci Pengubah.
POINTER_MOD_SHIFT – Tombol SHIFT ditekan.
POINTER_MOD_CTRL – Tombol CTRL ditekan.
Gunakan GetKeyState.
PerformanceCount
Jenis: UINT64
Nilai penghitung kinerja resolusi tinggi ketika pesan pointer diterima (presisi tinggi, alternatif 64 bit untuk dwTime). Nilai dapat dikalibrasi ketika perangkat keras digitizer sentuh mendukung informasi tanda waktu pemindaian dalam laporan inputnya.
ButtonChangeType
Jenis: POINTER_BUTTON_CHANGE_TYPE
Nilai dari enumerasi POINTER_BUTTON_CHANGE_TYPE yang menentukan perubahan status tombol antara input ini dan input sebelumnya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 8 [khusus aplikasi desktop] |
Server minimum yang didukung | Windows Server 2012 [hanya aplikasi desktop] |
Header | winuser.h (sertakan Windows.h) |