private IntPtr LowLevelMouseProc(int nCode, UIntPtr wParam, IntPtr lParam) { if (nCode >= 0) { if (wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_LBUTTONDOWN || wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_LBUTTONUP || wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_MOUSEMOVE || wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_MOUSEWHEEL || wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_RBUTTONDOWN || wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_RBUTTONUP) { hookedMouseCallbackAsync.BeginInvoke((InterceptMouse.MouseMessages)wParam.ToUInt32(), (InterceptMouse.MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(InterceptMouse.MSLLHOOKSTRUCT)), null, null); } } if (wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_LBUTTONDOWN || wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_LBUTTONUP || wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_MOUSEWHEEL || wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_RBUTTONDOWN || wParam.ToUInt32() == (int)InterceptMouse.MouseMessages.WM_RBUTTONUP) { return(new IntPtr(1)); } return(InterceptMouse.CallNextHookEx(hookId, nCode, wParam, lParam)); }