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