|
Updated: December 4, 2001
On This Page
Windows and the 5-Button Wheel MouseMicrosoft Windows 2000, Windows XP, and Windows Millennium Edition (Windows Me) provide support for PS/2-compatible and USB 5-button wheel mice, such as the Microsoft IntelliMouse Explorer. This support is in addition to built-in support for PS/2-compatible and USB standard 2-button mice and IntelliMouse-compatible 3-button wheel mice. This article provides details on how Windows sets a PS/2-compatible mouse to 5-button mode, and what the input data packet format from the mouse should be when it is in this mode. NOTE: This article applies only to PS/2-compatible mice. A USB 5-button wheel mouse should simply report two additional buttons--buttons 4 and 5--in its HID report descriptor to be fully supported by Windows. 5-Button Activation (or "Knocking") MethodThe method used by Windows to activate the new 5-button wheel mode is an extension of the method used to activate the third button and the wheel in IntelliMouse-compatible mice:
Data Packet FormatFor reference, the standard PS/2-compatible mouse data packet format is as shown in the following table. Data Packet Format for PS/2-compatible Mouse
Windows mouse drivers do not check the overflow bits. In case of overflow, the mouse should simply send the maximal signed displacement value. Also for reference, the data packet format for an IntelliMouse-compatible 3-button wheel mouse is as shown in the following table. Data Packet Format for 3-button Wheel Mouse
The new data packet format for a 5-button wheel mouse should be as shown in the following table. Data Packet Format for 5-button Wheel Mouse
Notice that the Z/wheel data for a 5-button wheel mouse has been reduced to four bits instead of the 8 bits used in the IntelliMouse-compatible 3-button wheel mode. This reduction is made possible by the fact that the wheel typically cannot generate values beyond the range +7/-8 during any given interrupt period. Windows mouse drivers will sign extend the four Z/wheel data bits when the mouse is in the 5-button wheel mode, and the full Z/wheel data byte when the mouse operates in the 3-button wheel mode. Mouse Driver and SDK AspectsThe PS/2-compatible and USB mouse drivers and the User32 component in Windows supports the two extra buttons and the new, shorter Z/wheel data format reported by a 5-button wheel mouse. The first three bits of byte 1 in the input data packet are always mapped to the Left, Right, and Middle buttons, respectively, as specified earlier. However, buttons 4 and 5 are not mapped to any specific User32 or Shell functionality; instead these buttons can be mapped by software applications to application-specific functionality. More specifically, these buttons are mapped to new WM_APPCOMMAND messages that are in Windows to notify software applications of application command events. For additional information about application development, see the Microsoft Platform SDK. Some Microsoft applications provided with Windows will implement default mappings of buttons 4 and 5 to specific functionality. For example, the built-in Internet Explorer web browser will map buttons 4 and 5 to "Back" and "Forward" web page navigation, respectively. Vendors who are producing or are planning to produce 5-button wheel mice that are not compatible with the activation method or the new input data packet format as specified earlier can still take advantage of the support provided by Windows and their built-in applications. Windows 2000/Windows XP.To take advantage of the support provided by Windows 2000/Windows XP, an IHV-specific filter driver is required. This filter driver should be inserted in between the port driver, I8042prt.sys, and the Mouse class driver, Mouclass.sys. This filter driver should implement the following functionality:
Windows Me.To take advantage of the support provided by Windows Me, a vendor-specific mini-driver to Vmouse.vxd is required. This mini-driver should implement the following functionality:
Call to action for wheel mouse in Windows:
|
|

