private static void SubscribeToKeyboardEvents() { if (keyboardHookHandle != 0) // Already subscribed. { return; } keyboardDelegate = KeyboardHookProc; keyboardHookHandle = Win.SetWindowsHookEx(Win.WH_KEYBOARD_LL, keyboardDelegate, IntPtr.Zero, 0); HandleAnyErrors(keyboardHookHandle); }
private static void SubscribeToMouseEvents() { if (mouseHookHandle != 0) // Already subscribed. { return; } mouseDelegate = MouseHookProc; mouseHookHandle = Win.SetWindowsHookEx(Win.WH_MOUSE_LL, mouseDelegate, IntPtr.Zero, 0); HandleAnyErrors(mouseHookHandle); }
private static void UnsubscribeFromKeyboardEvents() { if (keyboardHookHandle == 0) // Already unsubscribed. { return; } if (keyDownHandler != null || keyUpHandler != null) // We have listeners. { return; } int result = Win.UnhookWindowsHookEx(keyboardHookHandle); keyboardHookHandle = 0; keyboardDelegate = null; HandleAnyErrors(result); }
private static void TryUnsubscribeFromMouseEvents() { if (mouseHookHandle == 0) // Already unsubscribed. { return; } if (WeHaveMouseEventListeners) { return; } int result = Win.UnhookWindowsHookEx(mouseHookHandle); mouseHookHandle = 0; mouseDelegate = null; HandleAnyErrors(result); }