我有本机dll用于设置Windows钩子(全局),我在我的一个Windows窗体应用程序中调用它来设置全局钩子。它工作得很好,我在应用程序中收到消息。
但是Internet Explorer是Touch Window,如果我使用2个手指,我只会得到WM_POINTERDOWN事件,而不是触摸事件。
< 000049> 000B0404 S WM_POINTERDOWN wPointerID:0177 wFlags:6017 ptX:373 ptY:566
< 000053> 000B0404 S WM_POINTERDOWN wPointerID:0178 wFlags:4017 ptX:344 ptY:479
其他令人惊奇的事情是它只发送WM_POINTERDOWN而不是WM_POINTERUP事件。 我试过看到在SPY ++(32位)中生成的所有事件,似乎所有触摸事件都是使用WM_USER发布的
< 000107> 00120DE2 P消息:0x0401 [用户自定义:WM_USER + 1] wParam:C0D05DFD lParam:00004E20
< 000108> 00120DE2 P消息:0x0401 [用户自定义:WM_USER + 1] wParam:C0D0AC34 lParam:00004E20
< 000109> 00120DE2 P消息:0x0401 [用户自定义:WM_USER + 1] wParam:C0D0FA78 lParam:00004E20
< 000110> 00120DE2 P消息:0x0401 [用户自定义:WM_USER + 1] wParam:C0D148D9 lParam:00004E20
< 000111> 00120DE2 P消息:0x0401 [用户自定义:WM_USER + 1] wParam:C0D196DB lParam:00004E20
其中lParam始终是固定的lParam:00004E20并且wParam正在改变,但不确定如何解码wParam以获得实际的指针和坐标。 我假设IE是触摸窗口,因为我可以在这个website
上用多个手指绘制我的基本目标是区分IE中的2个手指点击和缩放手势。