Ejemplo n.º 1
0
        void HandleWindowVisibilityChangedMessage(WindowMessageReceivedArgument e)
        {
            const int Shown  = 1;
            const int Hidden = 0;

            switch ((int)e.WordParameter)
            {
            case Shown:
                if (!isInstalled)
                {
                    Install(e.WindowHandle);
                }
                break;

            case Hidden:
                if (isInstalled)
                {
                    Uninstall();
                }
                break;

            default:
                throw new InvalidOperationException(
                          $"Invalid {nameof(e.WordParameter)} received for {nameof(Message.WM_SHOWWINDOW)} message.");
            }
        }
Ejemplo n.º 2
0
 public void ReceiveMessageEvent(WindowMessageReceivedArgument e)
 {
     if (e.Message == Message.WM_HOTKEY && (int)e.WordParameter == hotkeyInterception.InterceptionId)
     {
         HandleHotkeyMessage();
     }
 }
 public void ReceiveMessageEvent(WindowMessageReceivedArgument e)
 {
     if ((e.Message == Message.WM_HOTKEY) &&
         ((int) e.WordParameter == hotkeyInterception.InterceptionId))
     {
         HandleHotkeyMessage();
     }
 }
Ejemplo n.º 4
0
        public void ReceiveMessageEvent(WindowMessageReceivedArgument e)
        {
            if (e.Message != Message.WM_DWMCOLORIZATIONCOLORCHANGED)
            {
                return;
            }

            UpdateAeroColor();
        }
Ejemplo n.º 5
0
        public async Task ReceiveMessageEventAsync(WindowMessageReceivedArgument eventArgument)
        {
            if (eventArgument.Message != Message.WM_CLIPBOARDUPDATE)
            {
                return;
            }

            await HandleClipboardUpdateWindowMessageAsync();
        }
        public Task ReceiveMessageEventAsync(WindowMessageReceivedArgument e)
        {
            if (e.Message != Message.WM_DWMCOLORIZATIONCOLORCHANGED)
            {
                return(Task.CompletedTask);
            }

            UpdateAeroColor();
            return(Task.CompletedTask);
        }
Ejemplo n.º 7
0
        void HandleHotkeyMessage(WindowMessageReceivedArgument e)
        {
            var interception = GetInterceptionForInterceptionId((int)e.WordParameter);

            if (interception != null && HotkeyFired != null)
            {
                HotkeyFired(this, new HotkeyFiredArgument(
                                interception.KeyCode, interception.ControlNeeded));
            }
        }
Ejemplo n.º 8
0
        public Task ReceiveMessageEventAsync(WindowMessageReceivedArgument e)
        {
            if ((e.Message == Message.WM_HOTKEY) &&
                ((int)e.WordParameter == hotkeyInterception.InterceptionId))
            {
                HandleHotkeyMessage();
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 9
0
        void ResetDeltaIfNewScrollDirection(WindowMessageReceivedArgument e, short delta)
        {
            var isSwitchingDirection = GetIsSwitchingDirection(
                delta,
                e.Message);

            if (isSwitchingDirection)
            {
                ResetAccumulatedWheelDelta();
            }
        }
Ejemplo n.º 10
0
        void HandleScrollingMessage(WindowMessageReceivedArgument e)
        {
            var delta = GetDeltaFromWordParameter(e);

            ResetDeltaIfNewScrollDirection(e, delta);

            currentDelta            += delta;
            currentScrollTypeMessage = e.Message;

            logger.Information("Current mouse wheel delta is " + currentDelta + ".");

            TriggerScrollEventsIfNeeded();
        }
Ejemplo n.º 11
0
        public void ReceiveMessageEvent(WindowMessageReceivedArgument e)
        {
            switch (e.Message)
            {
            case Message.WM_SHOWWINDOW:
                userInterfaceThread.Invoke(() => HandleWindowVisibilityChangedMessage(e));
                break;

            case Message.WM_HOTKEY:
                HandleHotkeyMessage(e);
                break;
            }
        }
Ejemplo n.º 12
0
        public void ReceiveMessageEvent(WindowMessageReceivedArgument e)
        {
            switch (e.Message)
            {
                case Message.WM_SHOWWINDOW:
                    userInterfaceThread.Invoke(() => HandleWindowVisibilityChangedMessage(e));
                    break;

                case Message.WM_HOTKEY:
                    HandleHotkeyMessage(e);
                    break;
            }
        }
Ejemplo n.º 13
0
        IntPtr WindowHookCallback(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
        {
            if (Enum.IsDefined(typeof(Message), msg))
            {
                logger.Information($"Message received: [{hwnd}, {FormatMessage((Message)msg)}, {wParam}, {lParam}]");

                var argument = new WindowMessageReceivedArgument(hwnd, (Message)msg, wParam, lParam);
                pendingMessages.Enqueue(argument);

                consumerLoop.Notify(HandleNextMessageAsync, cancellationTokenSource.Token);
            }

            return(IntPtr.Zero);
        }
Ejemplo n.º 14
0
        void HandleExtraButtonMessage(
            WindowMessageReceivedArgument e)
        {
            var buttonClicked = GetExtraButtonClickedFromWordParameter(e);

            const int XBUTTON1 = 0x0001;
            const int XBUTTON2 = 0x0002;

            if ((buttonClicked == XBUTTON1) ||
                (buttonClicked == XBUTTON2))
            {
                OnWheelTilted();
            }
        }
Ejemplo n.º 15
0
        public void ReceiveMessageEvent(
            WindowMessageReceivedArgument e)
        {
            switch (e.Message)
            {
            case Message.WM_MOUSEWHEEL:
            case Message.WM_MOUSEHWHEEL:
                HandleScrollingMessage(e);
                break;

            case Message.WM_XBUTTONDOWN:
                HandleExtraButtonMessage(e);
                break;
            }
        }
Ejemplo n.º 16
0
        public Task ReceiveMessageEventAsync(WindowMessageReceivedArgument e)
        {
            switch (e.Message)
            {
            case Message.WM_SHOWWINDOW:
                userInterfaceThread.Invoke(() => HandleWindowVisibilityChangedMessage(e));
                break;

            case Message.WM_HOTKEY:
                HandleHotkeyMessage(e);
                break;
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 17
0
        public void ReceiveMessageEvent(WindowMessageReceivedArgument eventArgument)
        {
            if (eventArgument.Message == Message.WM_CLIPBOARDUPDATE)
            {
                if (shouldSkipNext)
                {
                    logger.Information("Clipboard update message skipped.");

                    shouldSkipNext = false;
                    return;
                }

                HandleClipboardUpdateWindowMessage();
            }
        }
Ejemplo n.º 18
0
        void HandleWindowVisibilityChangedMessage(WindowMessageReceivedArgument e)
        {
            const int Shown  = 1;
            const int Hidden = 0;

            switch ((int)e.WordParameter)
            {
            case Shown:
                Install(e.WindowHandle);
                break;

            case Hidden:
                Uninstall();
                break;
            }
        }
Ejemplo n.º 19
0
        void HandleHotkeyMessage(WindowMessageReceivedArgument e)
        {
            if (!isInstalled)
            {
                return;
            }

            var interception = GetInterceptionForInterceptionId((int) e.WordParameter);
            if (interception != null)
            {
                HotkeyFired?.Invoke(
                    this,
                    new HotkeyFiredArgument(
                        interception.Key,
                        interception.ControlNeeded));
            }
        }
Ejemplo n.º 20
0
        public Task ReceiveMessageEventAsync(
            WindowMessageReceivedArgument e)
        {
            switch (e.Message)
            {
            case Message.WM_MOUSEWHEEL:
            case Message.WM_MOUSEHWHEEL:
                HandleScrollingMessage(e);
                break;

            case Message.WM_XBUTTONDOWN:
                HandleExtraButtonMessage(e);
                break;
            }

            return(Task.CompletedTask);
        }
Ejemplo n.º 21
0
        void HandleHotkeyMessage(WindowMessageReceivedArgument e)
        {
            if (!isInstalled)
            {
                return;
            }

            var interception = GetInterceptionForInterceptionId((int)e.WordParameter);

            if (interception != null)
            {
                HotkeyFired?.Invoke(
                    this,
                    new HotkeyFiredArgument(
                        interception.Key,
                        interception.ControlKeyNeeded));
            }
        }
Ejemplo n.º 22
0
        IntPtr WindowHookCallback(
            IntPtr hwnd,
            int msg,
            IntPtr wParam,
            IntPtr lParam,
            ref bool handled)
        {
            if (!Enum.IsDefined(typeof(Message), msg))
            {
                return(IntPtr.Zero);
            }

            var argument = new WindowMessageReceivedArgument(hwnd, (Message)msg, wParam, lParam);

            pendingMessages.Enqueue(argument);

            consumerLoop.Notify(HandleNextMessageAsync, cancellationTokenSource.Token);

            return(IntPtr.Zero);
        }
Ejemplo n.º 23
0
 static short GetDeltaFromWordParameter(WindowMessageReceivedArgument e)
 {
     return GetHighOrderWord(e);
 }
Ejemplo n.º 24
0
 static short GetExtraButtonClickedFromWordParameter(WindowMessageReceivedArgument e)
 {
     return GetHighOrderWord(e);
 }
Ejemplo n.º 25
0
        void HandleScrollingMessage(WindowMessageReceivedArgument e)
        {
            var delta = GetDeltaFromWordParameter(e);
            ResetDeltaIfNewScrollDirection(e, delta);

            currentDelta += delta;
            currentScrollTypeMessage = e.Message;

            TriggerScrollEventsIfNeeded();
        }
Ejemplo n.º 26
0
 void ResetDeltaIfNewScrollDirection(WindowMessageReceivedArgument e, short delta)
 {
     var isSwitchingDirection = GetIsSwitchingDirection(
         delta,
         e.Message);
     if (isSwitchingDirection)
     {
         ResetAccumulatedWheelDelta();
     }
 }
Ejemplo n.º 27
0
        public void ReceiveMessageEvent(
            WindowMessageReceivedArgument e)
        {
            switch (e.Message)
            {
                case Message.WM_MOUSEWHEEL:
                case Message.WM_MOUSEHWHEEL:
                    HandleScrollingMessage(e);
                    break;

                case Message.WM_XBUTTONDOWN:
                    HandleExtraButtonMessage(e);
                    break;
            }
        }
Ejemplo n.º 28
0
        void HandleExtraButtonMessage(
            WindowMessageReceivedArgument e)
        {
            var buttonClicked = GetExtraButtonClickedFromWordParameter(e);

            const int XBUTTON1 = 0x0001;
            const int XBUTTON2 = 0x0002;
            if ((buttonClicked == XBUTTON1) ||
                (buttonClicked == XBUTTON2))
            {
                OnWheelTilted();
            }
        }
        public void ReceiveMessageEvent(WindowMessageReceivedArgument eventArgument)
        {
            if (eventArgument.Message != Message.WM_CLIPBOARDUPDATE)
            {
                return;
            }

            if (shouldSkipNext)
            {
                logger.Information("Clipboard update message skipped.");

                shouldSkipNext = false;
                return;
            }

            HandleClipboardUpdateWindowMessage();
        }
Ejemplo n.º 30
0
 static short GetExtraButtonClickedFromWordParameter(WindowMessageReceivedArgument e)
 {
     return(GetHighOrderWord(e));
 }
Ejemplo n.º 31
0
 static short GetHighOrderWord(WindowMessageReceivedArgument e)
 {
     return (short) (e.WordParameter.ToInt32() >> 16);
 }
Ejemplo n.º 32
0
 static short GetHighOrderWord(WindowMessageReceivedArgument e)
 {
     return((short)(e.WordParameter.ToInt64() >> 16));
 }
Ejemplo n.º 33
0
        void HandleWindowVisibilityChangedMessage(WindowMessageReceivedArgument e)
        {
            const int Shown = 1;
            const int Hidden = 0;

            switch ((int) e.WordParameter)
            {
                case Shown:
                    if (!isInstalled)
                    {
                        Install(e.WindowHandle);
                    }
                    break;

                case Hidden:
                    if (isInstalled)
                    {
                        Uninstall();
                    }
                    break;

                default:
                    throw new InvalidOperationException(
                        $"Invalid {nameof(e.WordParameter)} received for {nameof(Message.WM_SHOWWINDOW)} message.");
            }
        }
Ejemplo n.º 34
0
 static short GetDeltaFromWordParameter(WindowMessageReceivedArgument e)
 {
     return(GetHighOrderWord(e));
 }
Ejemplo n.º 35
0
        IntPtr WindowHookCallback(
            IntPtr hwnd,
            int msg,
            IntPtr wParam,
            IntPtr lParam,
            ref bool handled)
        {
            if (!Enum.IsDefined(typeof (Message), msg))
            {
                return IntPtr.Zero;
            }

            logger.Information(
                $"Message received: [{hwnd}, {FormatMessage((Message) msg)}, {wParam}, {lParam}]");

            var argument = new WindowMessageReceivedArgument(hwnd, (Message) msg, wParam, lParam);
            pendingMessages.Enqueue(argument);

            consumerLoop.Notify(HandleNextMessageAsync, cancellationTokenSource.Token);

            return IntPtr.Zero;
        }