private static int HandleHookProc (int code, IntPtr wParam, IntPtr lParam) { if (code < 0) return Win32API.CallNextHookEx(hookPtr, code, wParam, lParam); var isKeyDown = ((int)lParam & (1 << 31)) == 0; var key = (RawKey)wParam; var handled = isKeyDown ? HandleKeyDown(key) : HandleKeyUp(key); return handled ? 1 : Win32API.CallNextHookEx(hookPtr, 0, wParam, lParam); }
private static int HandleLowLevelHookProc (int code, IntPtr wParam, IntPtr lParam) { if (code < 0) return Win32API.CallNextHookEx(hookPtr, code, wParam, lParam); var kbd = KBDLLHOOKSTRUCT.CreateFromPtr(lParam); var keyState = (RawKeyState)wParam; var key = (RawKey)kbd.vkCode; var isKeyDown = keyState == RawKeyState.KeyDown || keyState == RawKeyState.SysKeyDown; var handled = isKeyDown ? HandleKeyDown(key) : HandleKeyUp(key); return handled ? 1 : Win32API.CallNextHookEx(hookPtr, 0, wParam, lParam); }
private static int HandleHookProc(int code, IntPtr wParam, IntPtr lParam) { if (code < 0) { return(Win32API.CallNextHookEx(hookPtr, code, wParam, lParam)); } var isKeyDown = ((int)lParam & (1 << 31)) == 0; var key = (RawKey)wParam; if (isKeyDown) { HandleKeyDown(key); } else { HandleKeyUp(key); } return(InterceptMessages ? 1 : Win32API.CallNextHookEx(hookPtr, 0, wParam, lParam)); }
private static int HandleLowLevelHookProc(int code, IntPtr wParam, IntPtr lParam) { if (code < 0) { return(Win32API.CallNextHookEx(hookPtr, code, wParam, lParam)); } var kbd = KBDLLHOOKSTRUCT.CreateFromPtr(lParam); var keyState = (RawKeyState)wParam; var key = (RawKey)kbd.vkCode; if (keyState == RawKeyState.KeyDown || keyState == RawKeyState.SysKeyDown) { HandleKeyDown(key); } else { HandleKeyUp(key); } return(InterceptMessages ? 1 : Win32API.CallNextHookEx(hookPtr, 0, wParam, lParam)); }
private static int HandleLowLevelHookProc(int code, IntPtr wParam, IntPtr lParam) { if (code < 0) { return(Win32API.CallNextHookEx(hookPtr, code, wParam, lParam)); } NativeMouseEvent eventCode = unchecked ((NativeMouseEvent)wParam); MSLLHOOKSTRUCT data = MSLLHOOKSTRUCT.CreateFromPtr(lParam); MousePosition pos = new MousePosition { x = data.pt.x, y = data.pt.y }; int wheelDelta = unchecked ((short)((long)data.mouseData >> 16)); if (HandleMouseEvent(eventCode, pos, wheelDelta) && InterceptMessages) { return(1); } else { return(Win32API.CallNextHookEx(hookPtr, 0, wParam, lParam)); } }