HidUsageTables.cs
author sl
Fri, 19 Dec 2014 18:56:38 +0100
changeset 34 dab63af931a3
parent 33 ddfd2ddf10e1
child 35 928c966fcf42
permissions -rw-r--r--
Generating a few more usage tables.
     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             Music                   =   0x47,
   121             RecordedTv              =   0x48,
   122             Pictures                =   0x49,
   123             Videos                  =   0x4A,
   124             FmRadio                 =   0x50,
   125             Extras                  =   0x3C,
   126             ExtrasApp               =   0x3D,
   127             DvdMenu                 =   0x24,
   128             DvdAngle                =   0x4B,
   129             DvdAudio                =   0x4C,
   130             DvdSubtitle             =   0x4D,
   131             /// <summary>
   132             /// First press action: Ejects a DVD drive.
   133             /// <para />
   134             /// Second press action: Repeats first press action.
   135             /// <para />
   136             /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
   137             /// </summary>
   138             Eject                   =   0x28,
   139             DvdTopMenu              =   0x43,
   140             /// <summary>
   141             /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
   142             /// Collection (page 0xFFBC, usage 0x88).
   143             /// <para />
   144             /// Second press action: Repeats message.
   145             /// <para />
   146             /// Auto-repeat: No
   147             /// <para />
   148             /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
   149             /// <para />
   150             /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
   151             /// </summary>
   152             Ext0                    =   0x32,
   153             /// <summary>
   154             /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
   155             /// Collection (page 0xFFBC, usage 0x88).
   156             /// <para />
   157             /// Second press action: Repeats message.
   158             /// <para />
   159             /// Auto-repeat: No
   160             /// <para />
   161             /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
   162             /// <para />
   163             /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
   164             /// </summary>
   165             Ext1                    =   0x33,
   166             /// <summary>
   167             /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
   168             /// Collection (page 0xFFBC, usage 0x88).
   169             /// <para />
   170             /// Second press action: Repeats message.
   171             /// <para />
   172             /// Auto-repeat: No
   173             /// <para />
   174             /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08).
   175             /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310).
   176             /// </summary>
   177             Ext2                    =   0x34,
   178             /// <summary>
   179             /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
   180             /// Collection (page 0xFFBC, usage 0x88).
   181             /// <para />
   182             /// Second press action: Repeats message.
   183             /// <para />
   184             /// Auto-repeat: No
   185             /// <para />
   186             /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
   187             /// </summary>
   188             Ext3                    =   0x35,
   189             Ext4                    =   0x36,
   190             Ext5                    =   0x37,
   191             Ext6                    =   0x38,
   192             Ext7                    =   0x39,
   193             Ext8                    =   0x3A,
   194             Ext9                    =   0x80,
   195             Ext10                   =   0x81,
   196             Ext11                   =   0x6F,
   197             Zoom                    =   0x27,
   198             ChannelInput            =   0x42,
   199             SubAudio                =   0x2D,
   200             Channel10               =   0x3E,
   201             Channel11               =   0x3F,
   202             Channel12               =   0x40,
   203             /// <summary>
   204             /// First press action: Generates OEM2 HID message in the Media Center Vendor Specific
   205             /// Collection. This button is intended to control the front panel display of home entertainment
   206             /// computers. When this button is pressed, the display could be turned on or off, or the display
   207             /// mode could change.
   208             /// <para />
   209             /// Second press action: Repeats message.
   210             /// <para />
   211             /// Auto-repeat: No
   212             /// <para />
   213             /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
   214             /// </summary>
   215             Display                 =   0x4F,
   216             /// <summary>
   217             /// First press action: To be determined.
   218             /// <para />
   219             /// Second press action: Repeats message.
   220             /// <para />
   221             /// Auto-repeat: No
   222             /// </summary>
   223             Kiosk                   =   0x6A,
   224             NetworkSelection        =   0x2C,
   225             BlueRayTool             =   0x78,
   226             ChannelInfo             =   0x41,
   227             VideoSelection          =   0x61
   228         }
   229 
   230         /// <summary>
   231         /// Those codes come from experimenting with HP remotes.
   232         /// </summary>
   233         public enum HpWindowsMediaCenterRemoteControl : ushort
   234         {
   235             /// <summary>
   236             /// Displays visual imagery that is synchronized to the sound of your music tracks.
   237             /// <para />
   238             /// Second press action: Repeats message.
   239             /// <para />
   240             /// Auto-repeat: No
   241             /// <para />
   242             /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
   243             /// <para />
   244             /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
   245             /// </summary>
   246             Visualization = WindowsMediaCenterRemoteControl.Ext0,
   247             /// <summary>
   248             /// Plays a slide show of all the pictures on your hard disk drive.
   249             /// <para />
   250             /// Second press action: Repeats message.
   251             /// <para />
   252             /// Auto-repeat: No
   253             /// <para />
   254             /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
   255             /// <para />
   256             /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
   257             /// </summary>
   258             SlideShow = WindowsMediaCenterRemoteControl.Ext1,
   259             /// <summary>
   260             /// Eject optical drive.
   261             /// <para />
   262             /// Second press action: Repeats message.
   263             /// <para />
   264             /// Auto-repeat: No
   265             /// <para />
   266             /// Notably sent by the 'Eject' button of HP Windows Media Center Remote (TSGH-IR08).
   267             /// Also interpreted as 'Eject' action by SoundGraph iMON Manager in MCE mode (OrigenAE VF310).
   268             /// </summary>
   269             HpEject = WindowsMediaCenterRemoteControl.Ext2,
   270             /// <summary>
   271             /// Not sure what this should do.
   272             /// <para />
   273             /// Second press action: Repeats message.
   274             /// <para />
   275             /// Auto-repeat: No
   276             /// <para />
   277             /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
   278             /// </summary>
   279             InputSelection = WindowsMediaCenterRemoteControl.Ext3,
   280         }
   281 
   282         /// <summary>
   283         /// Usage Table for Consumer Controls
   284         /// 0x0C 0X01
   285         /// </summary>
   286         public enum ConsumerControl : ushort
   287         {
   288             Null = 0x0000,
   289             //
   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             AppCtrlDistributeVertically = 0x29C
   614         }
   615 
   616         /// <summary>
   617         ///
   618         /// </summary>
   619         enum GenericDesktop : ushort
   620         {
   621             Null = 0x00,
   622             Pointer = 0x01,
   623             Mouse = 0x02,
   624             Joystick = 0x04,
   625             GamePad = 0x05,
   626             Keyboard = 0x06,
   627             Keypad = 0x07,
   628             MultiAxisController = 0x08,
   629             TabletPcSystemControls = 0x09,
   630             X = 0x30,
   631             Y = 0x31,
   632             Z = 0x32,
   633             Rx = 0x33,
   634             Ry = 0x34,
   635             Rz = 0x35,
   636             Slider = 0x36,
   637             Dial = 0x37,
   638             Wheel = 0x38,
   639             HatSwitch = 0x39,
   640             CountedBuffer = 0x3A,
   641             ByteCount = 0x3B,
   642             MotionWakeup = 0x3C,
   643             Start = 0x3D,
   644             Select = 0x3E,
   645             Vx = 0x40,
   646             Vy = 0x41,
   647             Vz = 0x42,
   648             Vbrx = 0x43,
   649             Vbry = 0x44,
   650             Vbrz = 0x45,
   651             Vno = 0x46,
   652             SystemControl = 0x80,
   653             SystemPowerDown = 0x81,
   654             SystemSleep = 0x82,
   655             SystemWakeUp = 0x83,
   656             SystemContextMenu = 0x84,
   657             SystemMainMenu = 0x85,
   658             SystemAppMenu = 0x86,
   659             SystemMenuHelp = 0x87,
   660             SystemMenuExit = 0x88,
   661             SystemMenuSelect = 0x89,
   662             SystemMenuRight = 0x8A,
   663             SystemMenuLeft = 0x8B,
   664             SystemMenuUp = 0x8C,
   665             SystemMenuDown = 0x8D,
   666             SystemColdRestart = 0x8E,
   667             SystemWarmRestart = 0x8F,
   668             DPadUp = 0x90,
   669             DPadDown = 0x91,
   670             DPadRight = 0x92,
   671             DPadLeft = 0x93,
   672             SystemDock = 0xA0,
   673             SystemUndock = 0xA1,
   674             SystemSetup = 0xA2,
   675             SystemBreak = 0xA3,
   676             SystemDebuggerBreak = 0xA4,
   677             ApplicationBreak = 0xA5,
   678             ApplicationDebuggerBreak = 0xA6,
   679             SystemSpeakerMute = 0xA7,
   680             SystemHibernate = 0xA8,
   681             SystemDisplayInvert = 0xB0,
   682             SystemDisplayInternal = 0xB1,
   683             SystemDisplayExternal = 0xB2,
   684             SystemDisplayBoth = 0xB3,
   685             SystemDisplayDual = 0xB4,
   686             SystemDisplayToggleIntExt = 0xB5,
   687             SystemDisplaySwapPrimarySecondary = 0xB6,
   688             SystemDisplayLcdAutoscale = 0xB7
   689         }
   690 
   691         /// <summary>
   692         ///
   693         /// </summary>
   694         enum SimulationControl : ushort
   695         {
   696             FlightSimulationDevice = 0x01,
   697             AutomobileSimulationDevice = 0x02,
   698             TankSimulationDevice = 0x03,
   699             SpaceshipSimulationDevice = 0x04,
   700             SubmarineSimulationDevice = 0x05,
   701             SailingSimulationDevice = 0x06,
   702             MotorcycleSimulationDevice = 0x07,
   703             SportsSimulationDevice = 0x08,
   704             AirplaneSimulationDevice = 0x09,
   705             HelicopterSimulationDevice = 0x0A,
   706             MagicCarpetSimulationDevice = 0x0B,
   707             BicycleSimulationDevice = 0x0C,
   708             FlightControlStick = 0x20,
   709             FlightStick = 0x21,
   710             CyclicControl = 0x22,
   711             CyclicTrim = 0x23,
   712             FlightYoke = 0x24,
   713             TrackControl = 0x25,
   714             Aileron = 0xB0,
   715             AileronTrim = 0xB1,
   716             AntiTorqueControl = 0xB2,
   717             AutopilotEnable = 0xB3,
   718             ChaffRelease = 0xB4,
   719             CollectiveControl = 0xB5,
   720             DiveBrake = 0xB6,
   721             ElectronicCountermeasures = 0xB7,
   722             Elevator = 0xB8,
   723             ElevatorTrim = 0xB9,
   724             Rudder = 0xBA,
   725             Throttle = 0xBB,
   726             FlightCommunications = 0xBC,
   727             FlareRelease = 0xBD,
   728             LandingGear = 0xBE,
   729             ToeBrake = 0xBF,
   730             Trigger = 0xC0,
   731             WeaponsArm = 0xC1,
   732             WeaponsSelect = 0xC2,
   733             WingFlaps = 0xC3,
   734             Accelerator = 0xC4,
   735             Brake = 0xC5,
   736             Clutch = 0xC6,
   737             Shifter = 0xC7,
   738             Steering = 0xC8,
   739             TurretDirection = 0xC9,
   740             BarrelElevation = 0xCA,
   741             DivePlane = 0xCB,
   742             Ballast = 0xCC,
   743             BicycleCrank = 0xCD,
   744             HandleBars = 0xCE,
   745             FrontBrake = 0xCF,
   746             RearBrake = 0xD0
   747         }
   748 
   749         /// <summary>
   750         ///
   751         /// </summary>
   752         enum GameControl : ushort
   753         {
   754             GameController3D = 0x01,
   755             PinballDevice = 0x02,
   756             GunDevice = 0x03,
   757             PointOfView = 0x20,
   758             TurnRightLeft = 0x21,
   759             PitchForwardBackward = 0x22,
   760             RollRightLeft = 0x23,
   761             MoveRightLeft = 0x24,
   762             MoveForwardBackward = 0x25,
   763             MoveUpDown = 0x26,
   764             LeanRightLeft = 0x27,
   765             LeanForwardBackward = 0x28,
   766             HeightOfPov = 0x29,
   767             Flipper = 0x2A,
   768             SecondaryFlipper = 0x2B,
   769             Bump = 0x2C,
   770             NewGame = 0x2D,
   771             ShootBall = 0x2E,
   772             Player = 0x2F,
   773             GunBolt = 0x30,
   774             GunClip = 0x31,
   775             GunSelector = 0x32,
   776             GunSingleShot = 0x33,
   777             GunBurst = 0x34,
   778             GunAutomatic = 0x35,
   779             GunSafety = 0x36,
   780             GamepadFireJump = 0x37,
   781             GamepadTrigger = 0x39
   782         }
   783 
   784         /// <summary>
   785         ///
   786         /// </summary>
   787         enum TelephonyDevice : ushort
   788         {
   789             Phone = 0x01,
   790             AnsweringMachine = 0x02,
   791             MessageControls = 0x03,
   792             Handset = 0x04,
   793             Headset = 0x05,
   794             TelephonyKeyPad = 0x06,
   795             ProgrammableButton = 0x07,
   796             HookSwitch = 0x20,
   797             Flash = 0x21,
   798             Feature = 0x22,
   799             Hold = 0x23,
   800             Redial = 0x24,
   801             Transfer = 0x25,
   802             Drop = 0x26,
   803             Park = 0x27,
   804             ForwardCalls = 0x28,
   805             AlternateFunction = 0x29,
   806             Line = 0x2A,
   807             SpeakerPhone = 0x2B,
   808             Conference = 0x2C,
   809             RingEnable = 0x2D,
   810             RingSelect = 0x2E,
   811             PhoneMute = 0x2F,
   812             CallerId = 0x30,
   813             Send = 0x31,
   814             SpeedDial = 0x50,
   815             StoreNumber = 0x51,
   816             RecallNumber = 0x52,
   817             PhoneDirectory = 0x53,
   818             VoiceMail = 0x70,
   819             ScreenCalls = 0x71,
   820             DoNotDisturb = 0x72,
   821             Message = 0x73,
   822             AnswerOnOff = 0x74,
   823             InsideDialTone = 0x90,
   824             OutsideDialTone = 0x91,
   825             InsideRingTone = 0x92,
   826             OutsideRingTone = 0x93,
   827             PriorityRingTone = 0x94,
   828             InsideRingback = 0x95,
   829             PriorityRingback = 0x96,
   830             LineBusyTone = 0x97,
   831             ReorderTone = 0x98,
   832             CallWaitingTone = 0x99,
   833             ConfirmationTone1 = 0x9A,
   834             ConfirmationTone2 = 0x9B,
   835             TonesOff = 0x9C,
   836             OutsideRingback = 0x9D,
   837             Ringer = 0x9E,
   838             PhoneKey0 = 0xB0,
   839             PhoneKey1 = 0xB1,
   840             PhoneKey2 = 0xB2,
   841             PhoneKey3 = 0xB3,
   842             PhoneKey4 = 0xB4,
   843             PhoneKey5 = 0xB5,
   844             PhoneKey6 = 0xB6,
   845             PhoneKey7 = 0xB7,
   846             PhoneKey8 = 0xB8,
   847             PhoneKey9 = 0xB9,
   848             PhoneKeyStar = 0xBA,
   849             PhoneKeyPound = 0xBB,
   850             PhoneKeyA = 0xBC,
   851             PhoneKeyB = 0xBD,
   852             PhoneKeyC = 0xBE,
   853             PhoneKeyD = 0xBF
   854         }
   855 
   856     }
   857 }