Hardware vendors who are creating USB Human Interface Device Class (HID) devices should not use {Page 1, Usage 0x38} for buttons. This was the usage for buttons before the USB HID specification. The latest version of the HID specification reserves this value and instead provides a whole page for buttons. Support for USB HID devices in Microsoft Windows 98, Windows 2000, and later operating systems will not recognize buttons that use {1, 0x38} through the regular parsing routines.
The HID committee notes in the USB HID Usages Table document that the lowest numbered buttons on the Button page should be assigned to the most important functions. On many devices there might not be a linear assignment, and this could require that generic HID clients resort to looking at designators. However, Windows operating systems do not have parsing code for designators, which are optional in the HID specification. Windows operating systems use the following usage assignments:
Mouse Buttons:
| • | Button 1 - Primary button (usually left button) |
| • | Button 2 - Secondary button (usually right button) |
| • | Button 3 - Tertiary button (if present, usually middle button) |
Joystick Buttons:
| • | Button 1 - Primary fire trigger |
| • | Button 2 - Secondary fire trigger |
| • | Other button assignments are up to the IHV - most games let you program this |
To obtain USB specifications, see the USB Implementers Forum at http://www.usb.org
.