Not sure how it has been done in 3.0, but in the 2.2 still wrong the way that the X and Y are parsed from the Mouse Events in WIN32…
http://msdn.microsoft.com/en-us/library/windows/desktop/ms645607(v=vs.85).aspx
According to this you should not us LOWORD and HIWORD, but instead GET_X_LPARAM and GET_Y_LPARAM to extract this information from the LPARAM.
I was trying to simulate a touch and I got into these details, hope have helped!