private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) { try { return(HookCallbackInner(nCode, wParam, lParam)); } catch { Console.WriteLine("There was some error somewhere..."); } return(InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam)); }
private IntPtr HookCallbackInner(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0) { int vkCode = Marshal.ReadInt32(lParam); if (wParam == (IntPtr)InterceptKeys.WM_KEYDOWN) { KeyDown?.Invoke(this, new RawKeyEventArgs(vkCode, false)); } else if (wParam == (IntPtr)InterceptKeys.WM_KEYUP) { KeyUp?.Invoke(this, new RawKeyEventArgs(vkCode, false)); } } return(InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam)); }