Abjad Hawwaz
2008-05-30 02:41:05 UTC
Does anyone know if there is documentation on how the Windows input
subsystem interprets absolute mouse data?
I am trying to make my HID touchpad send absolute cursor positioning data to
the system. I have absolute X and Y reported in a mouse top-level
collection. What I have found is that my coordinates do not get scaled based
on the logical minimum and maximum values. The top left corner of the screen
seems to always be (0,0), and the bottom right always (1023,1023) or close
to that, no matter what my minimum and maximum are. If I set the minimum to
0 and maximum to a number below 1023, I will make areas adjacent to the
right and bottom edges of the screen unavailable to the cursor. If I set the
maximum above 1023, part of my touchpad becomes useless because it maps to
the area outside the screen.
I am surprised that Windows doesn't map my absolute data to the entire
screen based on my logical minimum and maximum. Instead, it expects the data
to be within the range between 0 and 1023 (or so -- I am not sure on the
maximum value, but 1023 just makes sense). This effectively limits the
cursor position resolution to 1/1024 of the screen dimension.
I basically have two questions:
1. What are the absolute coordinates of the screen corners? Are they really
(0,0) and (1023,1023)?
2. Is there any way to change that without having to write my own HID
client?
Any helpful information will be sincerely appreciated.
subsystem interprets absolute mouse data?
I am trying to make my HID touchpad send absolute cursor positioning data to
the system. I have absolute X and Y reported in a mouse top-level
collection. What I have found is that my coordinates do not get scaled based
on the logical minimum and maximum values. The top left corner of the screen
seems to always be (0,0), and the bottom right always (1023,1023) or close
to that, no matter what my minimum and maximum are. If I set the minimum to
0 and maximum to a number below 1023, I will make areas adjacent to the
right and bottom edges of the screen unavailable to the cursor. If I set the
maximum above 1023, part of my touchpad becomes useless because it maps to
the area outside the screen.
I am surprised that Windows doesn't map my absolute data to the entire
screen based on my logical minimum and maximum. Instead, it expects the data
to be within the range between 0 and 1023 (or so -- I am not sure on the
maximum value, but 1023 just makes sense). This effectively limits the
cursor position resolution to 1/1024 of the screen dimension.
I basically have two questions:
1. What are the absolute coordinates of the screen corners? Are they really
(0,0) and (1023,1023)?
2. Is there any way to change that without having to write my own HID
client?
Any helpful information will be sincerely appreciated.