I wrote a simple little script[0] that lets me use Three-Finger Drag on Windows for my Surface Pro, by reading the touchpad's raw HID report via the RawInput WinAPI, then use the SendInput API to synthesize mouse movement and button clicks.<p>I haven't quite figured out how to work with the HidP_*[1] APIs, so instead I simply reverse-engineered how to interpret the HID report's raw bytes using my RawinputViewer[2] to physically stare at how the hex values change based on how many fingers and where I put them on the touchpad.<p>So this means that the script works for my Surface Pro which is good enough for my personal use, but I'm curious about whether this HID report format is common to all Windows Precision Touchpads or if it is just for my specific Surface Pro, and how general I can make it work without resorting to using the HiDP_* calls.<p>If you are on Windows, what do you observe when you examine the raw hex values using RawinputViewer?
You'll need to tick the "Other Human-Interface Devices" checkbox and untick Mouse and Keyboard, so that you don't get the driver-synthesized SendInput mouse reports flooding the output box.<p>[0] https://github.com/EsportToys/PrecisionThreeFingerDrag<p>[1] https://learn.microsoft.com/en-us/windows-hardware/drivers/hid/introduction-to-hid-concepts<p>[2] https://github.com/EsportToys/RawinputViewer