HidUsageTables.cs
author StephaneLenclud
Sun, 15 Feb 2015 13:30:54 +0100
changeset 59 89dfad9633b2
parent 34 dab63af931a3
child 61 60bfe5083721
permissions -rw-r--r--
Win32Hid: Fixing boolean bug and improving value caps union.
     1 //
     2 //
     3 //
     4 
     5 namespace Hid
     6 {
     7     /// <summary>
     8     /// From USB HID usage tables.
     9     /// http://www.usb.org/developers/hidpage#HID_Usage
    10     /// http://www.usb.org/developers/devclass_docs/Hut1_12v2.pdf
    11     /// </summary>
    12     public enum UsagePage : ushort
    13     {
    14         Undefined = 0,
    15         GenericDesktopControls,
    16         SimulationControls,
    17         VirtualRealityControls,
    18         SportControls,
    19         GameControls,
    20         GenericDeviceControls,
    21         Keyboard,
    22         LightEmittingDiode,
    23         Button,
    24         Ordinal,
    25         Telephony,
    26         Consumer,
    27         Digitiser,
    28         PhysicalInterfaceDevice = 0x0f,
    29         Unicode = 0x10,
    30         AlphaNumericDisplay = 0x14,
    31         MedicalInstruments = 0x40,
    32         MonitorPage0 = 0x80,
    33         MonitorPage1,
    34         MonitorPage2,
    35         MonitorPage3,
    36         PowerPage0,
    37         PowerPage1,
    38         PowerPage2,
    39         PowerPage3,
    40         BarCodeScanner = 0x8c,
    41         Scale,
    42         MagneticStripeReader,
    43         ReservedPointOfSale,
    44         CameraControl,
    45         Arcade,
    46         // http://msdn.microsoft.com/en-us/library/windows/desktop/bb417079.aspx
    47         WindowsMediaCenterRemoteControl = 0xffbc,
    48         TerraTecRemote = 0xffcc
    49     }
    50 
    51     public enum UsageCollectionGenericDesktop : ushort
    52     {
    53         Pointer = 0x01,
    54         Mouse = 0x02,
    55         Joystick = 0x04,
    56         GamePad = 0x05,
    57         Keyboard = 0x06,
    58         KeyPad = 0x07,
    59         MultiAxisController = 0x08,
    60         TabletPCSystemControls = 0x09,
    61         SystemControl = 0x80
    62     }
    63 
    64     public enum UsageCollectionConsumer : ushort
    65     {
    66         ConsumerControl = 0x01,
    67         NumericKeyPad = 0x02,
    68         ProgrammableButtons = 0x03,
    69         Microphone = 0x04,
    70         Headphone = 0x05,
    71         GraphicEqualizer = 0x06,
    72         FunctionButtons = 0x36,
    73         Selection = 0x80,
    74         MediaSelection = 0x0087,
    75         SelectDisc = 0x00BA,
    76         PlaybackSpeed = 0x00F1,
    77         Proximity = 0x0109,
    78         SpeakerSystem = 0x0160,
    79         ChannelLeft = 0x0161,
    80         ChannelRight = 0x0162,
    81         ChannelCenter = 0x0163,
    82         ChannelFront = 0x0164,
    83         ChannelCenterFront = 0x0165,
    84         ChannelSide = 0x0166,
    85         ChannelSurrond = 0x0167,
    86         ChannelLowFrequencyEnhancement = 0x0168,
    87         ChannelTop = 0x0169,
    88         ChannelUnknown = 0x016A,
    89         ApplicationLaunchButtons = 0x016A,
    90         GenericGuiApplicationControls = 0x0200,
    91     }
    92 
    93 
    94     public enum UsageCollectionWindowsMediaCenter : ushort
    95     {
    96         WindowsMediaCenterRemoteControl = 0x88
    97     }
    98 
    99 
   100 
   101     namespace UsageTables
   102     {
   103         /// <summary>
   104         ///
   105         /// </summary>
   106         public enum WindowsMediaCenterRemoteControl : ushort
   107         {
   108             /// <summary>
   109             /// Not defined by the Microsoft specs.
   110             /// </summary>
   111             Null = 0x00,
   112             GreenStart = 0x0D,
   113             ClosedCaptioning = 0x2B,
   114             Teletext = 0x5A,
   115             TeletextRed = 0x5B,
   116             TeletextGreen = 0x5C,
   117             TeletextYellow = 0x5D,
   118             TeletextBlue = 0x5E,
   119             LiveTv = 0x25,
   120             Tv = 0x46,
   121             Music = 0x47,
   122             RecordedTv = 0x48,
   123             Pictures = 0x49,
   124             Videos = 0x4A,
   125             FmRadio = 0x50,
   126             Extras = 0x3C,
   127             ExtrasApp = 0x3D,
   128             DvdMenu = 0x24,
   129             DvdAngle = 0x4B,
   130             DvdAudio = 0x4C,
   131             DvdSubtitle = 0x4D,
   132             /// <summary>
   133             /// First press action: Ejects a DVD drive.
   134             /// <para />
   135             /// Second press action: Repeats first press action.
   136             /// <para />
   137             /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
   138             /// </summary>
   139             Eject = 0x28,
   140             DvdTopMenu = 0x43,
   141             /// <summary>
   142             /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
   143             /// Collection (page 0xFFBC, usage 0x88).
   144             /// <para />
   145             /// Second press action: Repeats message.
   146             /// <para />
   147             /// Auto-repeat: No
   148             /// <para />
   149             /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
   150             /// <para />
   151             /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
   152             /// </summary>
   153             Ext0 = 0x32,
   154             /// <summary>
   155             /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
   156             /// Collection (page 0xFFBC, usage 0x88).
   157             /// <para />
   158             /// Second press action: Repeats message.
   159             /// <para />
   160             /// Auto-repeat: No
   161             /// <para />
   162             /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
   163             /// <para />
   164             /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
   165             /// </summary>
   166             Ext1 = 0x33,
   167             /// <summary>
   168             /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
   169             /// Collection (page 0xFFBC, usage 0x88).
   170             /// <para />
   171             /// Second press action: Repeats message.
   172             /// <para />
   173             /// Auto-repeat: No
   174             /// <para />
   175             /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08).
   176             /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310).
   177             /// </summary>
   178             Ext2 = 0x34,
   179             /// <summary>
   180             /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
   181             /// Collection (page 0xFFBC, usage 0x88).
   182             /// <para />
   183             /// Second press action: Repeats message.
   184             /// <para />
   185             /// Auto-repeat: No
   186             /// <para />
   187             /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
   188             /// </summary>
   189             Ext3 = 0x35,
   190             Ext4 = 0x36,
   191             Ext5 = 0x37,
   192             Ext6 = 0x38,
   193             Ext7 = 0x39,
   194             Ext8 = 0x3A,
   195             Ext9 = 0x80,
   196             Ext10 = 0x81,
   197             Ext11 = 0x6F,
   198             Zoom = 0x27,
   199             ChannelInput = 0x42,
   200             SubAudio = 0x2D,
   201             Channel10 = 0x3E,
   202             Channel11 = 0x3F,
   203             Channel12 = 0x40,
   204             /// <summary>
   205             /// First press action: Generates OEM2 HID message in the Media Center Vendor Specific
   206             /// Collection. This button is intended to control the front panel display of home entertainment
   207             /// computers. When this button is pressed, the display could be turned on or off, or the display
   208             /// mode could change.
   209             /// <para />
   210             /// Second press action: Repeats message.
   211             /// <para />
   212             /// Auto-repeat: No
   213             /// <para />
   214             /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
   215             /// </summary>
   216             Display = 0x4F,
   217             /// <summary>
   218             /// First press action: To be determined.
   219             /// <para />
   220             /// Second press action: Repeats message.
   221             /// <para />
   222             /// Auto-repeat: No
   223             /// </summary>
   224             Kiosk = 0x6A,
   225             NetworkSelection = 0x2C,
   226             BlueRayTool = 0x78,
   227             ChannelInfo = 0x41,
   228             VideoSelection = 0x61
   229         }
   230 
   231         /// <summary>
   232         /// Those codes come from experimenting with HP remotes.
   233         /// </summary>
   234         public enum HpWindowsMediaCenterRemoteControl : ushort
   235         {
   236             /// <summary>
   237             /// Displays visual imagery that is synchronized to the sound of your music tracks.
   238             /// <para />
   239             /// Second press action: Repeats message.
   240             /// <para />
   241             /// Auto-repeat: No
   242             /// <para />
   243             /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
   244             /// <para />
   245             /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
   246             /// </summary>
   247             Visualization = WindowsMediaCenterRemoteControl.Ext0,
   248             /// <summary>
   249             /// Plays a slide show of all the pictures on your hard disk drive.
   250             /// <para />
   251             /// Second press action: Repeats message.
   252             /// <para />
   253             /// Auto-repeat: No
   254             /// <para />
   255             /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
   256             /// <para />
   257             /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
   258             /// </summary>
   259             SlideShow = WindowsMediaCenterRemoteControl.Ext1,
   260             /// <summary>
   261             /// Eject optical drive.
   262             /// <para />
   263             /// Second press action: Repeats message.
   264             /// <para />
   265             /// Auto-repeat: No
   266             /// <para />
   267             /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08).
   268             /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310).
   269             /// </summary>
   270             HpEject = WindowsMediaCenterRemoteControl.Ext2,
   271             /// <summary>
   272             /// Not sure what this should do.
   273             /// <para />
   274             /// Second press action: Repeats message.
   275             /// <para />
   276             /// Auto-repeat: No
   277             /// <para />
   278             /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
   279             /// </summary>
   280             InputSelection = WindowsMediaCenterRemoteControl.Ext3,
   281         }
   282 
   283         /// <summary>
   284         /// Usage Table for Consumer Controls
   285         /// 0x0C 0X01
   286         /// </summary>
   287         public enum ConsumerControl : ushort
   288         {
   289             Null = 0x00,
   290             ConsumerControl = 0x01,
   291             NumericKeyPad = 0x02,
   292             ProgrammableButtons = 0x03,
   293             Microphone = 0x04,
   294             Headphone = 0x05,
   295             GraphicEqualizer = 0x06,
   296             Plus10 = 0x20,
   297             Plus100 = 0x21,
   298             AmPm = 0x22,
   299             Power = 0x30,
   300             Reset = 0x31,
   301             Sleep = 0x32,
   302             SleepAfter = 0x33,
   303             SleepMode = 0x34,
   304             Illumination = 0x35,
   305             FunctionButtons = 0x36,
   306             Menu = 0x40,
   307             MenuPick = 0x41,
   308             MenuUp = 0x42,
   309             MenuDown = 0x43,
   310             MenuLeft = 0x44,
   311             MenuRight = 0x45,
   312             MenuEscape = 0x46,
   313             MenuValueIncrease = 0x47,
   314             MenuValueDecrease = 0x48,
   315             DataOnScreen = 0x60,
   316             ClosedCaption = 0x61,
   317             ClosedCaptionSelect = 0x62,
   318             VcrTv = 0x63,
   319             BroadcastMode = 0x64,
   320             Snapshot = 0x65,
   321             Still = 0x66,
   322             Selection = 0x80,
   323             AssignSelection = 0x81,
   324             ModeStep = 0x82,
   325             RecallLast = 0x83,
   326             EnterChannel = 0x84,
   327             OrderMovie = 0x85,
   328             Channel = 0x86,
   329             MediaSelection = 0x87,
   330             MediaSelectComputer = 0x88,
   331             MediaSelectTv = 0x89,
   332             MediaSelectWww = 0x8A,
   333             MediaSelectDvd = 0x8B,
   334             MediaSelectTelephone = 0x8C,
   335             MediaSelectProgramGuide = 0x8D,
   336             MediaSelectVideoPhone = 0x8E,
   337             MediaSelectGames = 0x8F,
   338             MediaSelectMessages = 0x90,
   339             MediaSelectCd = 0x91,
   340             MediaSelectVcr = 0x92,
   341             MediaSelectTuner = 0x93,
   342             Quit = 0x94,
   343             Help = 0x95,
   344             MediaSelectTape = 0x96,
   345             MediaSelectCable = 0x97,
   346             MediaSelectSatellite = 0x98,
   347             MediaSelectSecurity = 0x99,
   348             MediaSelectHome = 0x9A,
   349             MediaSelectCall = 0x9B,
   350             ChannelIncrement = 0x9C,
   351             ChannelDecrement = 0x9D,
   352             MediaSelectSap = 0x9E,
   353             VcrPlus = 0xA0,
   354             Once = 0xA1,
   355             Daily = 0xA2,
   356             Weekly = 0xA3,
   357             Monthly = 0xA4,
   358             Play = 0xB0,
   359             Pause = 0xB1,
   360             Record = 0xB2,
   361             FastForward = 0xB3,
   362             Rewind = 0xB4,
   363             ScanNextTrack = 0xB5,
   364             ScanPreviousTrack = 0xB6,
   365             Stop = 0xB7,
   366             Eject = 0xB8,
   367             RandomPlay = 0xB9,
   368             SelectDisc = 0xBA,
   369             EnterDisc = 0xBB,
   370             Repeat = 0xBC,
   371             Tracking = 0xBD,
   372             TrackNormal = 0xBE,
   373             SlowTracking = 0xBF,
   374             FrameForward = 0xC0,
   375             FrameBack = 0xC1,
   376             Mark = 0xC2,
   377             ClearMark = 0xC3,
   378             RepeatFromMark = 0xC4,
   379             ReturnToMark = 0xC5,
   380             SearchMarkForward = 0xC6,
   381             SearchMarkBackwards = 0xC7,
   382             CounterReset = 0xC8,
   383             ShowCounter = 0xC9,
   384             TrackingIncrement = 0xCA,
   385             TrackingDecrement = 0xCB,
   386             StopEject = 0xCC,
   387             PlayPause = 0xCD,
   388             PlaySkip = 0xCE,
   389             Volume = 0xE0,
   390             Balance = 0xE1,
   391             Mute = 0xE2,
   392             Bass = 0xE3,
   393             Treble = 0xE4,
   394             BassBoost = 0xE5,
   395             SurroundMode = 0xE6,
   396             Loudness = 0xE7,
   397             Mpx = 0xE8,
   398             VolumeIncrement = 0xE9,
   399             VolumeDecrement = 0xEA,
   400             SpeedSelect = 0xF0,
   401             PlaybackSpeed = 0xF1,
   402             StandardPlay = 0xF2,
   403             LongPlay = 0xF3,
   404             ExtendedPlay = 0xF4,
   405             Slow = 0xF5,
   406             FanEnable = 0x100,
   407             FanSpeed = 0x101,
   408             LightEnable = 0x102,
   409             LightIlluminationLevel = 0x103,
   410             ClimateControlEnable = 0x104,
   411             RoomTemperature = 0x105,
   412             SecurityEnable = 0x106,
   413             FireAlarm = 0x107,
   414             PoliceAlarm = 0x108,
   415             Proximity = 0x109,
   416             Motion = 0x10A,
   417             DuressAlarm = 0x10B,
   418             HoldupAlarm = 0x10C,
   419             MedicalAlarm = 0x10D,
   420             BalanceRight = 0x150,
   421             BalanceLeft = 0x151,
   422             BassIncrement = 0x152,
   423             BassDecrement = 0x153,
   424             TrebleIncrement = 0x154,
   425             TrebleDecrement = 0x155,
   426             SpeakerSystem = 0x160,
   427             ChannelLeft = 0x161,
   428             ChannelRight = 0x162,
   429             ChannelCenter = 0x163,
   430             ChannelFront = 0x164,
   431             ChannelCenterFront = 0x165,
   432             ChannelSide = 0x166,
   433             ChannelSurround = 0x167,
   434             ChannelLowFrequencyEnhancement = 0x168,
   435             ChannelTop = 0x169,
   436             ChannelUnknown = 0x16A,
   437             SubChannel = 0x170,
   438             SubChannelIncrement = 0x171,
   439             SubChannelDecrement = 0x172,
   440             AlternateAudioIncrement = 0x173,
   441             AlternateAudioDecrement = 0x174,
   442             ApplicationLaunchButtons = 0x180,
   443             AppLaunchLaunchButtonConfigurationTool = 0x181,
   444             AppLaunchProgrammableButtonConfiguration = 0x182,
   445             AppLaunchConsumerControlConfiguration = 0x183,
   446             AppLaunchWordProcessor = 0x184,
   447             AppLaunchTextEditor = 0x185,
   448             AppLaunchSpreadsheet = 0x186,
   449             AppLaunchGraphicsEditor = 0x187,
   450             AppLaunchPresentationApp = 0x188,
   451             AppLaunchDatabaseApp = 0x189,
   452             AppLaunchEmailReader = 0x18A,
   453             AppLaunchNewsreader = 0x18B,
   454             AppLaunchVoicemail = 0x18C,
   455             AppLaunchContactsAddressBook = 0x18D,
   456             AppLaunchCalendarSchedule = 0x18E,
   457             AppLaunchTaskProjectManager = 0x18F,
   458             AppLaunchLogJournalTimecard = 0x190,
   459             AppLaunchCheckbookFinance = 0x191,
   460             AppLaunchCalculator = 0x192,
   461             AppLaunchAVCapturePlayback = 0x193,
   462             AppLaunchLocalMachineBrowser = 0x194,
   463             AppLaunchLanWanBrowser = 0x195,
   464             AppLaunchInternetBrowser = 0x196,
   465             AppLaunchRemoteNetworkingIspConnect = 0x197,
   466             AppLaunchNetworkConference = 0x198,
   467             AppLaunchNetworkChat = 0x199,
   468             AppLaunchTelephonyDialer = 0x19A,
   469             AppLaunchLogon = 0x19B,
   470             AppLaunchLogoff = 0x19C,
   471             AppLaunchLogonLogoff = 0x19D,
   472             AppLaunchTerminalLockScreensaver = 0x19E,
   473             AppLaunchControlPanel = 0x19F,
   474             AppLaunchCommandLineProcessorRun = 0x1A0,
   475             AppLaunchProcessTaskManager = 0x1A1,
   476             AppLaunchSelectTaskApplication = 0x1A2,
   477             AppLaunchNextTaskApplication = 0x1A3,
   478             AppLaunchPreviousTaskApplication = 0x1A4,
   479             AppLaunchPreemptiveHaltTaskApplication = 0x1A5,
   480             AppLaunchIntegratedHelpCenter = 0x1A6,
   481             AppLaunchDocuments = 0x1A7,
   482             AppLaunchThesaurus = 0x1A8,
   483             AppLaunchDictionary = 0x1A9,
   484             AppLaunchDesktop = 0x1AA,
   485             AppLaunchSpellCheck = 0x1AB,
   486             AppLaunchGrammarCheck = 0x1AC,
   487             AppLaunchWirelessStatus = 0x1AD,
   488             AppLaunchKeyboardLayout = 0x1AE,
   489             AppLaunchVirusProtection = 0x1AF,
   490             AppLaunchEncryption = 0x1B0,
   491             AppLaunchScreenSaver = 0x1B1,
   492             AppLaunchAlarms = 0x1B2,
   493             AppLaunchClock = 0x1B3,
   494             AppLaunchFileBrowser = 0x1B4,
   495             AppLaunchPowerStatus = 0x1B5,
   496             AppLaunchImageBrowser = 0x1B6,
   497             AppLaunchAudioBrowser = 0x1B7,
   498             AppLaunchMovieBrowser = 0x1B8,
   499             AppLaunchDigitalRightsManager = 0x1B9,
   500             AppLaunchDigitalWallet = 0x1BA,
   501             AppLaunchInstantMessaging = 0x1BC,
   502             AppLaunchOemFeaturesTipsTutorialBrowser = 0x1BD,
   503             AppLaunchOemHelp = 0x1BE,
   504             AppLaunchOnlineCommunity = 0x1BF,
   505             AppLaunchEntertainmentContentBrowser = 0x1C0,
   506             AppLaunchOnlineShoppingBrowser = 0x1C1,
   507             AppLaunchSmartcardInformationHelp = 0x1C2,
   508             AppLaunchMarketMonitorFinanceBrowser = 0x1C3,
   509             AppLaunchCustomizedCorporateNewsBrowser = 0x1C4,
   510             AppLaunchOnlineActivityBrowser = 0x1C5,
   511             AppLaunchResearchSearchBrowser = 0x1C6,
   512             AppLaunchAudioPlayer = 0x1C7,
   513             GenericGuiApplicationControls = 0x200,
   514             AppCtrlNew = 0x201,
   515             AppCtrlOpen = 0x202,
   516             AppCtrlClose = 0x203,
   517             AppCtrlExit = 0x204,
   518             AppCtrlMaximize = 0x205,
   519             AppCtrlMinimize = 0x206,
   520             AppCtrlSave = 0x207,
   521             AppCtrlPrint = 0x208,
   522             AppCtrlProperties = 0x209,
   523             AppCtrlUndo = 0x21A,
   524             AppCtrlCopy = 0x21B,
   525             AppCtrlCut = 0x21C,
   526             AppCtrlPaste = 0x21D,
   527             AppCtrlSelectAll = 0x21E,
   528             AppCtrlFind = 0x21F,
   529             AppCtrlFindAndReplace = 0x220,
   530             AppCtrlSearch = 0x221,
   531             AppCtrlGoTo = 0x222,
   532             AppCtrlHome = 0x223,
   533             AppCtrlBack = 0x224,
   534             AppCtrlForward = 0x225,
   535             AppCtrlStop = 0x226,
   536             AppCtrlRefresh = 0x227,
   537             AppCtrlPreviousLink = 0x228,
   538             AppCtrlNextLink = 0x229,
   539             AppCtrlBookmarks = 0x22A,
   540             AppCtrlHistory = 0x22B,
   541             AppCtrlSubscriptions = 0x22C,
   542             AppCtrlZoomIn = 0x22D,
   543             AppCtrlZoomOut = 0x22E,
   544             AppCtrlZoom = 0x22F,
   545             AppCtrlFullScreenView = 0x230,
   546             AppCtrlNormalView = 0x231,
   547             AppCtrlViewToggle = 0x232,
   548             AppCtrlScrollUp = 0x233,
   549             AppCtrlScrollDown = 0x234,
   550             AppCtrlScroll = 0x235,
   551             AppCtrlPanLeft = 0x236,
   552             AppCtrlPanRight = 0x237,
   553             AppCtrlPan = 0x238,
   554             AppCtrlNewWindow = 0x239,
   555             AppCtrlTileHorizontally = 0x23A,
   556             AppCtrlTileVertically = 0x23B,
   557             AppCtrlFormat = 0x23C,
   558             AppCtrlEdit = 0x23D,
   559             AppCtrlBold = 0x23E,
   560             AppCtrlItalics = 0x23F,
   561             AppCtrlUnderline = 0x240,
   562             AppCtrlStrikethrough = 0x241,
   563             AppCtrlSubscript = 0x242,
   564             AppCtrlSuperscript = 0x243,
   565             AppCtrlAllCaps = 0x244,
   566             AppCtrlRotate = 0x245,
   567             AppCtrlResize = 0x246,
   568             AppCtrlFlipHorizontal = 0x247,
   569             AppCtrlFlipVertical = 0x248,
   570             AppCtrlMirrorHorizontal = 0x249,
   571             AppCtrlMirrorVertical = 0x24A,
   572             AppCtrlFontSelect = 0x24B,
   573             AppCtrlFontColor = 0x24C,
   574             AppCtrlFontSize = 0x24D,
   575             AppCtrlJustifyLeft = 0x24E,
   576             AppCtrlJustifyCenterH = 0x24F,
   577             AppCtrlJustifyRight = 0x250,
   578             AppCtrlJustifyBlockH = 0x251,
   579             AppCtrlJustifyTop = 0x252,
   580             AppCtrlJustifyCenterV = 0x253,
   581             AppCtrlJustifyBottom = 0x254,
   582             AppCtrlJustifyBlockV = 0x255,
   583             AppCtrlIndentDecrease = 0x256,
   584             AppCtrlIndentIncrease = 0x257,
   585             AppCtrlNumberedList = 0x258,
   586             AppCtrlRestartNumbering = 0x259,
   587             AppCtrlBulletedList = 0x25A,
   588             AppCtrlPromote = 0x25B,
   589             AppCtrlDemote = 0x25C,
   590             AppCtrlYes = 0x25D,
   591             AppCtrlNo = 0x25E,
   592             AppCtrlCancel = 0x25F,
   593             AppCtrlCatalog = 0x260,
   594             AppCtrlBuyCheckout = 0x261,
   595             AppCtrlAddToCart = 0x262,
   596             AppCtrlExpand = 0x263,
   597             AppCtrlExpandAll = 0x264,
   598             AppCtrlCollapse = 0x265,
   599             AppCtrlCollapseAll = 0x266,
   600             AppCtrlPrintPreview = 0x267,
   601             AppCtrlPasteSpecial = 0x268,
   602             AppCtrlInsertMode = 0x269,
   603             AppCtrlDelete = 0x26A,
   604             AppCtrlLock = 0x26B,
   605             AppCtrlUnlock = 0x26C,
   606             AppCtrlProtect = 0x26D,
   607             AppCtrlUnprotect = 0x26E,
   608             AppCtrlAttachComment = 0x26F,
   609             AppCtrlDeleteComment = 0x270,
   610             AppCtrlViewComment = 0x271,
   611             AppCtrlSelectWord = 0x272,
   612             AppCtrlSelectSentence = 0x273,
   613             AppCtrlSelectParagraph = 0x274,
   614             AppCtrlSelectColumn = 0x275,
   615             AppCtrlSelectRow = 0x276,
   616             AppCtrlSelectTable = 0x277,
   617             AppCtrlSelectObject = 0x278,
   618             AppCtrlRedoRepeat = 0x279,
   619             AppCtrlSort = 0x27A,
   620             AppCtrlSortAscending = 0x27B,
   621             AppCtrlSortDescending = 0x27C,
   622             AppCtrlFilter = 0x27D,
   623             AppCtrlSetClock = 0x27E,
   624             AppCtrlViewClock = 0x27F,
   625             AppCtrlSelectTimeZone = 0x280,
   626             AppCtrlEditTimeZones = 0x281,
   627             AppCtrlSetAlarm = 0x282,
   628             AppCtrlClearAlarm = 0x283,
   629             AppCtrlSnoozeAlarm = 0x284,
   630             AppCtrlResetAlarm = 0x285,
   631             AppCtrlSynchronize = 0x286,
   632             AppCtrlSendReceive = 0x287,
   633             AppCtrlSendTo = 0x288,
   634             AppCtrlReply = 0x289,
   635             AppCtrlReplyAll = 0x28A,
   636             AppCtrlForwardMsg = 0x28B,
   637             AppCtrlSend = 0x28C,
   638             AppCtrlAttachFile = 0x28D,
   639             AppCtrlUpload = 0x28E,
   640             AppCtrlDownloadSaveTargetAs = 0x28F,
   641             AppCtrlSetBorders = 0x290,
   642             AppCtrlInsertRow = 0x291,
   643             AppCtrlInsertColumn = 0x292,
   644             AppCtrlInsertFile = 0x293,
   645             AppCtrlInsertPicture = 0x294,
   646             AppCtrlInsertObject = 0x295,
   647             AppCtrlInsertSymbol = 0x296,
   648             AppCtrlSaveAndClose = 0x297,
   649             AppCtrlRename = 0x298,
   650             AppCtrlMerge = 0x299,
   651             AppCtrlSplit = 0x29A,
   652             AppCtrlDistributeHorizontally = 0x29B,
   653             AppCtrlDistributeVertically = 0x29C
   654         }
   655 
   656         /// <summary>
   657         ///
   658         /// </summary>
   659         enum GenericDesktop : ushort
   660         {
   661             Null = 0x00,
   662             Pointer = 0x01,
   663             Mouse = 0x02,
   664             Joystick = 0x04,
   665             GamePad = 0x05,
   666             Keyboard = 0x06,
   667             Keypad = 0x07,
   668             MultiAxisController = 0x08,
   669             TabletPcSystemControls = 0x09,
   670             X = 0x30,
   671             Y = 0x31,
   672             Z = 0x32,
   673             Rx = 0x33,
   674             Ry = 0x34,
   675             Rz = 0x35,
   676             Slider = 0x36,
   677             Dial = 0x37,
   678             Wheel = 0x38,
   679             HatSwitch = 0x39,
   680             CountedBuffer = 0x3A,
   681             ByteCount = 0x3B,
   682             MotionWakeup = 0x3C,
   683             Start = 0x3D,
   684             Select = 0x3E,
   685             Vx = 0x40,
   686             Vy = 0x41,
   687             Vz = 0x42,
   688             Vbrx = 0x43,
   689             Vbry = 0x44,
   690             Vbrz = 0x45,
   691             Vno = 0x46,
   692             SystemControl = 0x80,
   693             SystemPowerDown = 0x81,
   694             SystemSleep = 0x82,
   695             SystemWakeUp = 0x83,
   696             SystemContextMenu = 0x84,
   697             SystemMainMenu = 0x85,
   698             SystemAppMenu = 0x86,
   699             SystemMenuHelp = 0x87,
   700             SystemMenuExit = 0x88,
   701             SystemMenuSelect = 0x89,
   702             SystemMenuRight = 0x8A,
   703             SystemMenuLeft = 0x8B,
   704             SystemMenuUp = 0x8C,
   705             SystemMenuDown = 0x8D,
   706             SystemColdRestart = 0x8E,
   707             SystemWarmRestart = 0x8F,
   708             DPadUp = 0x90,
   709             DPadDown = 0x91,
   710             DPadRight = 0x92,
   711             DPadLeft = 0x93,
   712             SystemDock = 0xA0,
   713             SystemUndock = 0xA1,
   714             SystemSetup = 0xA2,
   715             SystemBreak = 0xA3,
   716             SystemDebuggerBreak = 0xA4,
   717             ApplicationBreak = 0xA5,
   718             ApplicationDebuggerBreak = 0xA6,
   719             SystemSpeakerMute = 0xA7,
   720             SystemHibernate = 0xA8,
   721             SystemDisplayInvert = 0xB0,
   722             SystemDisplayInternal = 0xB1,
   723             SystemDisplayExternal = 0xB2,
   724             SystemDisplayBoth = 0xB3,
   725             SystemDisplayDual = 0xB4,
   726             SystemDisplayToggleIntExt = 0xB5,
   727             SystemDisplaySwapPrimarySecondary = 0xB6,
   728             SystemDisplayLcdAutoscale = 0xB7
   729         }
   730 
   731         /// <summary>
   732         ///
   733         /// </summary>
   734         enum SimulationControl : ushort
   735         {
   736             Null = 0x00,
   737             FlightSimulationDevice = 0x01,
   738             AutomobileSimulationDevice = 0x02,
   739             TankSimulationDevice = 0x03,
   740             SpaceshipSimulationDevice = 0x04,
   741             SubmarineSimulationDevice = 0x05,
   742             SailingSimulationDevice = 0x06,
   743             MotorcycleSimulationDevice = 0x07,
   744             SportsSimulationDevice = 0x08,
   745             AirplaneSimulationDevice = 0x09,
   746             HelicopterSimulationDevice = 0x0A,
   747             MagicCarpetSimulationDevice = 0x0B,
   748             BicycleSimulationDevice = 0x0C,
   749             FlightControlStick = 0x20,
   750             FlightStick = 0x21,
   751             CyclicControl = 0x22,
   752             CyclicTrim = 0x23,
   753             FlightYoke = 0x24,
   754             TrackControl = 0x25,
   755             Aileron = 0xB0,
   756             AileronTrim = 0xB1,
   757             AntiTorqueControl = 0xB2,
   758             AutopilotEnable = 0xB3,
   759             ChaffRelease = 0xB4,
   760             CollectiveControl = 0xB5,
   761             DiveBrake = 0xB6,
   762             ElectronicCountermeasures = 0xB7,
   763             Elevator = 0xB8,
   764             ElevatorTrim = 0xB9,
   765             Rudder = 0xBA,
   766             Throttle = 0xBB,
   767             FlightCommunications = 0xBC,
   768             FlareRelease = 0xBD,
   769             LandingGear = 0xBE,
   770             ToeBrake = 0xBF,
   771             Trigger = 0xC0,
   772             WeaponsArm = 0xC1,
   773             WeaponsSelect = 0xC2,
   774             WingFlaps = 0xC3,
   775             Accelerator = 0xC4,
   776             Brake = 0xC5,
   777             Clutch = 0xC6,
   778             Shifter = 0xC7,
   779             Steering = 0xC8,
   780             TurretDirection = 0xC9,
   781             BarrelElevation = 0xCA,
   782             DivePlane = 0xCB,
   783             Ballast = 0xCC,
   784             BicycleCrank = 0xCD,
   785             HandleBars = 0xCE,
   786             FrontBrake = 0xCF,
   787             RearBrake = 0xD0
   788         }
   789 
   790         /// <summary>
   791         ///
   792         /// </summary>
   793         enum GameControl : ushort
   794         {
   795             Null = 0x00,
   796             GameController3D = 0x01,
   797             PinballDevice = 0x02,
   798             GunDevice = 0x03,
   799             PointOfView = 0x20,
   800             TurnRightLeft = 0x21,
   801             PitchForwardBackward = 0x22,
   802             RollRightLeft = 0x23,
   803             MoveRightLeft = 0x24,
   804             MoveForwardBackward = 0x25,
   805             MoveUpDown = 0x26,
   806             LeanRightLeft = 0x27,
   807             LeanForwardBackward = 0x28,
   808             HeightOfPov = 0x29,
   809             Flipper = 0x2A,
   810             SecondaryFlipper = 0x2B,
   811             Bump = 0x2C,
   812             NewGame = 0x2D,
   813             ShootBall = 0x2E,
   814             Player = 0x2F,
   815             GunBolt = 0x30,
   816             GunClip = 0x31,
   817             GunSelector = 0x32,
   818             GunSingleShot = 0x33,
   819             GunBurst = 0x34,
   820             GunAutomatic = 0x35,
   821             GunSafety = 0x36,
   822             GamepadFireJump = 0x37,
   823             GamepadTrigger = 0x39
   824         }
   825 
   826         /// <summary>
   827         ///
   828         /// </summary>
   829         enum TelephonyDevice : ushort
   830         {
   831             Null = 0x00,
   832             Phone = 0x01,
   833             AnsweringMachine = 0x02,
   834             MessageControls = 0x03,
   835             Handset = 0x04,
   836             Headset = 0x05,
   837             TelephonyKeyPad = 0x06,
   838             ProgrammableButton = 0x07,
   839             HookSwitch = 0x20,
   840             Flash = 0x21,
   841             Feature = 0x22,
   842             Hold = 0x23,
   843             Redial = 0x24,
   844             Transfer = 0x25,
   845             Drop = 0x26,
   846             Park = 0x27,
   847             ForwardCalls = 0x28,
   848             AlternateFunction = 0x29,
   849             Line = 0x2A,
   850             SpeakerPhone = 0x2B,
   851             Conference = 0x2C,
   852             RingEnable = 0x2D,
   853             RingSelect = 0x2E,
   854             PhoneMute = 0x2F,
   855             CallerId = 0x30,
   856             Send = 0x31,
   857             SpeedDial = 0x50,
   858             StoreNumber = 0x51,
   859             RecallNumber = 0x52,
   860             PhoneDirectory = 0x53,
   861             VoiceMail = 0x70,
   862             ScreenCalls = 0x71,
   863             DoNotDisturb = 0x72,
   864             Message = 0x73,
   865             AnswerOnOff = 0x74,
   866             InsideDialTone = 0x90,
   867             OutsideDialTone = 0x91,
   868             InsideRingTone = 0x92,
   869             OutsideRingTone = 0x93,
   870             PriorityRingTone = 0x94,
   871             InsideRingback = 0x95,
   872             PriorityRingback = 0x96,
   873             LineBusyTone = 0x97,
   874             ReorderTone = 0x98,
   875             CallWaitingTone = 0x99,
   876             ConfirmationTone1 = 0x9A,
   877             ConfirmationTone2 = 0x9B,
   878             TonesOff = 0x9C,
   879             OutsideRingback = 0x9D,
   880             Ringer = 0x9E,
   881             PhoneKey0 = 0xB0,
   882             PhoneKey1 = 0xB1,
   883             PhoneKey2 = 0xB2,
   884             PhoneKey3 = 0xB3,
   885             PhoneKey4 = 0xB4,
   886             PhoneKey5 = 0xB5,
   887             PhoneKey6 = 0xB6,
   888             PhoneKey7 = 0xB7,
   889             PhoneKey8 = 0xB8,
   890             PhoneKey9 = 0xB9,
   891             PhoneKeyStar = 0xBA,
   892             PhoneKeyPound = 0xBB,
   893             PhoneKeyA = 0xBC,
   894             PhoneKeyB = 0xBD,
   895             PhoneKeyC = 0xBE,
   896             PhoneKeyD = 0xBF
   897         }
   898     }
   899 }