コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }
コード例 #5
0
        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));
            }
        }