/// <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)); }
/// <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; }