Bagikan melalui


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)

Lihat juga

Struktur