示例#1
0
        /// <summary>
        /// Function to retrieve information for the system keyboard if no specific keyboard is defined on creation.
        /// </summary>
        /// <returns>The device information for the system keyboard.</returns>
        private static RawKeyboardInfo GetSysKeyboardInfo()
        {
            var rawInfo = new RID_DEVICE_INFO_KEYBOARD
            {
                dwNumberOfFunctionKeys = UserApi.FunctionKeyCount,
                dwKeyboardMode         = 0,
                dwSubType = 0
            };

            KeyboardType keyboardType = UserApi.KeyboardType;

            rawInfo.dwType = (int)keyboardType;

            switch (UserApi.KeyboardType)
            {
            case KeyboardType.XT:
                rawInfo.dwNumberOfKeysTotal  = 83;
                rawInfo.dwNumberOfIndicators = 3;
                break;

            case KeyboardType.OlivettiICO:
                rawInfo.dwNumberOfKeysTotal  = 102;
                rawInfo.dwNumberOfIndicators = 3;
                break;

            case KeyboardType.AT:
                rawInfo.dwNumberOfKeysTotal  = 84;
                rawInfo.dwNumberOfIndicators = 3;
                break;

            case KeyboardType.Enhanced:
                rawInfo.dwNumberOfKeysTotal  = 102;
                rawInfo.dwNumberOfIndicators = 3;
                break;

            case KeyboardType.Nokia1050:
                rawInfo.dwNumberOfKeysTotal  = -1;
                rawInfo.dwNumberOfIndicators = -1;
                break;

            case KeyboardType.Nokia9140:
                rawInfo.dwNumberOfKeysTotal  = -1;
                rawInfo.dwNumberOfIndicators = -1;
                break;

            case KeyboardType.Japanese:
                rawInfo.dwNumberOfKeysTotal  = -1;
                rawInfo.dwNumberOfIndicators = -1;
                break;

            case KeyboardType.USB:
                rawInfo.dwNumberOfKeysTotal  = -1;
                rawInfo.dwNumberOfIndicators = -1;
                break;

            default:
                rawInfo.dwNumberOfKeysTotal  = -1;
                rawInfo.dwNumberOfIndicators = -1;
                break;
            }

            return(new RawKeyboardInfo(IntPtr.Zero, "System Keyboard", "Keyboard", Resources.GORINP_RAW_DESC_SYS_KEYBOARD, rawInfo));
        }
示例#2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RawKeyboardInfo"/> class.
        /// </summary>
        /// <param name="deviceHandle">The device handle.</param>
        /// <param name="hidPath">The human interface device path.</param>
        /// <param name="className">The class of device.</param>
        /// <param name="description">The human readable description of this device.</param>
        /// <param name="deviceInfo">The data about the device.</param>
        public RawKeyboardInfo(IntPtr deviceHandle, string hidPath, string className, string description, RID_DEVICE_INFO_KEYBOARD deviceInfo)
        {
            Handle      = deviceHandle;
            Description = description;
            HIDPath     = hidPath;
            DeviceClass = className;

            FunctionKeyCount = deviceInfo.dwNumberOfFunctionKeys;
            IndicatorCount   = deviceInfo.dwNumberOfIndicators;
            KeyCount         = deviceInfo.dwNumberOfKeysTotal;
            KeyboardType     = (KeyboardType)deviceInfo.dwType;
        }