Ошибка 5 (отказано в доступе) при вызове getpointerframeinfo
Я пытаюсь вызвать функцию GetPointerFrameInfo, чтобы получить счетчик указателей, но эта функция, похоже, не работает с ошибкой 5 (Доступ запрещен).
Есть идеи, почему это происходит и как я могу решить эту проблему?
Я пытаюсь вызвать то же самое внутри процедуры крючка GetMsgProc, как упоминалось в разделе "Что вы пробовали" ниже:
Что я уже пробовал:
LRESULT WINAPI GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam) { LPMSG lpMsg = (LPMSG)lParam; UINT32 pointerId = GET_POINTERID_WPARAM(lpMsg->wParam); switch (lpMsg->message) { case WM_POINTERUPDATE: UINT32 pointerCount = 32; POINTER_INFO pointerFrameInfo[32]; TCHAR outputLogTouchTst[100]; if (GetPointerFrameInfo(pointerId, &pointerCount, pointerFrameInfo) == 0) { _stprintf(outputLogTouchTst, _T("Hook: The error code for proc is %d"), GetLastError()); OutputDebugString(outputLogTouchTst); return CallNextHookEx(NULL, nCode, wParam, lParam); } _stprintf(outputLogTouchTst, _T("Hook: The count of pointers is %d"), pointerCount); OutputDebugString(outputLogTouchTst); return CallNextHookEx(NULL, nCode, wParam, lParam); } return CallNextHookEx(getmsghook, nCode, wParam, lParam); }