【发布时间】:2017-11-01 19:05:04
【问题描述】:
我已经为 WH_GETMESSAGE 和 WH_CALLWNDPROC 设置了一个全局挂钩。我正在尝试检测屏幕上的触摸。除了 Microsoft Edge 和 Internet Explorer 的客户区之外,我可以对屏幕中的所有内容执行此操作。
也就是说,我的意思是我无法检测到是否有人触摸了 Internet Explorer 窗口的开放边缘或客户区。但同样适用于 Google Chrome 或其他浏览器。知道为什么会发生这种情况,我应该采取什么方法来处理它?
我在下面分享了一部分我的钩子 proc 代码。
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
switch (lpMsg->message)
{
case WM_POINTERDOWN:
UINT32 pointerId = GET_POINTERID_WPARAM(lpMsg->wParam);
POINTER_INPUT_TYPE pointerType;
GetPointerType(pointerId, &pointerType);
if (pointerType == PT_TOUCH)
{
MessageBox(NULL, TEXT("Its a touch"), TEXT("In a DLL"), MB_OK);
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
return CallNextHookEx(NULL, nCode, wParam, lParam);
}
【问题讨论】:
标签: c++ windows winapi hook microsoft-edge