Esempio n. 1
0
        private IntPtr WndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam)
        {
            WinFormsKeys virtualKey;

            switch (msg)
            {
            case Win32Native.WM_KEYDOWN:
            case Win32Native.WM_SYSKEYDOWN:
                virtualKey = (WinFormsKeys)wParam.ToInt64();
                virtualKey = GetCorrectExtendedKey(virtualKey, lParam.ToInt64());
                keyboard?.HandleKeyDown(virtualKey);
                heldKeys.Add(virtualKey);
                break;

            case Win32Native.WM_KEYUP:
            case Win32Native.WM_SYSKEYUP:
                virtualKey = (WinFormsKeys)wParam.ToInt64();
                virtualKey = GetCorrectExtendedKey(virtualKey, lParam.ToInt64());
                heldKeys.Remove(virtualKey);
                keyboard?.HandleKeyUp(virtualKey);
                break;

            case Win32Native.WM_DEVICECHANGE:
                // Trigger scan on device changed
                input.Scan();
                break;
            }

            var result = Win32Native.CallWindowProc(defaultWndProc, hWnd, msg, wParam, lParam);

            return(result);
        }
Esempio n. 2
0
        private IntPtr WndProc(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam)
        {
            switch (msg)
            {
            case Win32Native.WM_KEYDOWN:
            case Win32Native.WM_SYSKEYDOWN:
                HandleKeyDown(wParam, lParam);
                break;

            case Win32Native.WM_KEYUP:
            case Win32Native.WM_SYSKEYUP:
                HandleKeyUp(wParam, lParam);
                break;

            case Win32Native.WM_DEVICECHANGE:
                // Trigger scan on device changed
                input.Scan();
                break;
            }

            var result = Win32Native.CallWindowProc(defaultWndProc, hWnd, msg, wParam, lParam);

            return(result);
        }