This page is dedicated to evaluate what events the MacBook Pro TrackPad sends to the operating system. Windows provides several methods to receive input events. One of them is the LowLevelMouseProc event callback. Tests have shown that this callback does not provide enough information to get the TrackPad fully working. Next step is to test if Raw Input provides enough information. Therefore I have created a new version of the test tool which can be downloaded below.
Motivation for this is to find a pratical way to get a "right-mouse button substitute" working under Windows.
Interesting questions that I'm trying to get answers for are: What events a user-mode application can see that are coming from the TrackPad? More specifically ...
- horizontal scrolling with two fingers
- tapping the sensor area with one finger
- tapping the sensor area with two fingers
Test Tool Download
A small command line application that prints out information about every LowLevelMouseProc call can be downloaded here (including full VS.Net 2003 source code). I can't test this myself since I don't own a MacBook Pro unfortunately. Please try the tool and report your result on this page or on the forums. Below you'll find some information to interpret the output yourself.
WM_MOUSEMOVE 0x0200 WM_LBUTTONDOWN 0x0201 WM_LBUTTONUP 0x0202 WM_LBUTTONDBLCLK 0x0203 WM_RBUTTONDOWN 0x0204 WM_RBUTTONUP 0x0205 WM_RBUTTONDBLCLK 0x0206 WM_MBUTTONDOWN 0x0207 WM_MBUTTONUP 0x0208 WM_MBUTTONDBLCLK 0x0209 WM_MOUSEWHEEL 0x020A WM_XBUTTONDOWN 0x020B WM_XBUTTONUP 0x020C WM_XBUTTONDBLCLK 0x020D
mouseData: Information on the mouse data value can be found here.
This version uses Raw Input to receive input events and prints them to the console. Moreover diagnostics are printed out for all HIDs in the system. It can be downloaded here. Full source is available on request.
- Update 0.21: Also prints events for usage page 0xff.
- Update 0.22: Now actually works.
- TrackPadTest v0.1: Results (1.83 MBP) -RujusMacBook
- The results show that there is no way to distinguish the events with the information thats passed to the LowLevelMouseProc.
- TrackPadTest v0.2: Results (1.83 MBP) -RujusMacBook
- TrackPadTest v0.21: Error (1.83 MBP) -RujusMacBook
- Write a custom USB HID driver
- Use DirectInput
- Method described here: http://www.edn.com/article/ca243218.html
- "Raw Input", I'm currently working on a test application for this.
Some interesting links with more information which might be useful to get the TrackPad fully working