Win32Hid: improved button caps structure.
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
12 public enum UsagePage : ushort
15 GenericDesktopControls,
17 VirtualRealityControls,
20 GenericDeviceControls,
28 PhysicalInterfaceDevice = 0x0f,
30 AlphaNumericDisplay = 0x14,
31 MedicalInstruments = 0x40,
40 BarCodeScanner = 0x8c,
46 // http://msdn.microsoft.com/en-us/library/windows/desktop/bb417079.aspx
47 WindowsMediaCenterRemoteControl = 0xffbc,
48 TerraTecRemote = 0xffcc
51 public enum UsageCollectionGenericDesktop : ushort
59 MultiAxisController = 0x08,
60 TabletPCSystemControls = 0x09,
64 public enum UsageCollectionConsumer : ushort
66 ConsumerControl = 0x01,
68 ProgrammableButtons = 0x03,
71 GraphicEqualizer = 0x06,
72 FunctionButtons = 0x36,
74 MediaSelection = 0x0087,
76 PlaybackSpeed = 0x00F1,
78 SpeakerSystem = 0x0160,
80 ChannelRight = 0x0162,
81 ChannelCenter = 0x0163,
82 ChannelFront = 0x0164,
83 ChannelCenterFront = 0x0165,
85 ChannelSurrond = 0x0167,
86 ChannelLowFrequencyEnhancement = 0x0168,
88 ChannelUnknown = 0x016A,
89 ApplicationLaunchButtons = 0x016A,
90 GenericGuiApplicationControls = 0x0200,
94 public enum UsageCollectionWindowsMediaCenter : ushort
96 WindowsMediaCenterRemoteControl = 0x88
101 namespace UsageTables
106 public enum WindowsMediaCenterRemoteControl : ushort
109 /// Not defined by the Microsoft specs.
113 ClosedCaptioning = 0x2B,
116 TeletextGreen = 0x5C,
117 TeletextYellow = 0x5D,
133 /// First press action: Ejects a DVD drive.
135 /// Second press action: Repeats first press action.
137 /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
142 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
143 /// Collection (page 0xFFBC, usage 0x88).
145 /// Second press action: Repeats message.
149 /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
151 /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
155 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
156 /// Collection (page 0xFFBC, usage 0x88).
158 /// Second press action: Repeats message.
162 /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
164 /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
168 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
169 /// Collection (page 0xFFBC, usage 0x88).
171 /// Second press action: Repeats message.
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).
180 /// First press action: Generates EXTn HID message in the Media Center Vendor Specific
181 /// Collection (page 0xFFBC, usage 0x88).
183 /// Second press action: Repeats message.
187 /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
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.
210 /// Second press action: Repeats message.
214 /// Notably issued by XBOX360 remote as defined in irplus - Remote Control - Android application.
218 /// First press action: To be determined.
220 /// Second press action: Repeats message.
225 NetworkSelection = 0x2C,
228 VideoSelection = 0x61
232 /// Those codes come from experimenting with HP remotes.
234 public enum HpWindowsMediaCenterRemoteControl : ushort
237 /// Displays visual imagery that is synchronized to the sound of your music tracks.
239 /// Second press action: Repeats message.
243 /// Notably sent by the 'Visualization' button of HP Windows Media Center Remote (TSGH-IR08).
245 /// According to HP specs it displays visual imagery that is synchronized to the sound of your music tracks.
247 Visualization = WindowsMediaCenterRemoteControl.Ext0,
249 /// Plays a slide show of all the pictures on your hard disk drive.
251 /// Second press action: Repeats message.
255 /// Notably sent by the 'Slide Show' button of HP Windows Media Center Remote (TSGH-IR08).
257 /// According to HP specs it plays a slide show of all the pictures on your hard disk drive.
259 SlideShow = WindowsMediaCenterRemoteControl.Ext1,
261 /// Eject optical drive.
263 /// Second press action: Repeats message.
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).
270 HpEject = WindowsMediaCenterRemoteControl.Ext2,
272 /// Not sure what this should do.
274 /// Second press action: Repeats message.
278 /// Notably sent by the 'Input selection' button of HP Windows Media Center Remote (TSGH-IR08).
280 InputSelection = WindowsMediaCenterRemoteControl.Ext3,
284 /// Usage Table for Consumer Controls
287 public enum ConsumerControl : ushort
290 ConsumerControl = 0x01,
291 NumericKeyPad = 0x02,
292 ProgrammableButtons = 0x03,
295 GraphicEqualizer = 0x06,
305 FunctionButtons = 0x36,
313 MenuValueIncrease = 0x47,
314 MenuValueDecrease = 0x48,
316 ClosedCaption = 0x61,
317 ClosedCaptionSelect = 0x62,
319 BroadcastMode = 0x64,
323 AssignSelection = 0x81,
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,
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,
363 ScanNextTrack = 0xB5,
364 ScanPreviousTrack = 0xB6,
378 RepeatFromMark = 0xC4,
380 SearchMarkForward = 0xC6,
381 SearchMarkBackwards = 0xC7,
384 TrackingIncrement = 0xCA,
385 TrackingDecrement = 0xCB,
398 VolumeIncrement = 0xE9,
399 VolumeDecrement = 0xEA,
401 PlaybackSpeed = 0xF1,
409 LightIlluminationLevel = 0x103,
410 ClimateControlEnable = 0x104,
411 RoomTemperature = 0x105,
412 SecurityEnable = 0x106,
419 MedicalAlarm = 0x10D,
420 BalanceRight = 0x150,
422 BassIncrement = 0x152,
423 BassDecrement = 0x153,
424 TrebleIncrement = 0x154,
425 TrebleDecrement = 0x155,
426 SpeakerSystem = 0x160,
428 ChannelRight = 0x162,
429 ChannelCenter = 0x163,
430 ChannelFront = 0x164,
431 ChannelCenterFront = 0x165,
433 ChannelSurround = 0x167,
434 ChannelLowFrequencyEnhancement = 0x168,
436 ChannelUnknown = 0x16A,
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,
516 AppCtrlClose = 0x203,
518 AppCtrlMaximize = 0x205,
519 AppCtrlMinimize = 0x206,
521 AppCtrlPrint = 0x208,
522 AppCtrlProperties = 0x209,
526 AppCtrlPaste = 0x21D,
527 AppCtrlSelectAll = 0x21E,
529 AppCtrlFindAndReplace = 0x220,
530 AppCtrlSearch = 0x221,
534 AppCtrlForward = 0x225,
536 AppCtrlRefresh = 0x227,
537 AppCtrlPreviousLink = 0x228,
538 AppCtrlNextLink = 0x229,
539 AppCtrlBookmarks = 0x22A,
540 AppCtrlHistory = 0x22B,
541 AppCtrlSubscriptions = 0x22C,
542 AppCtrlZoomIn = 0x22D,
543 AppCtrlZoomOut = 0x22E,
545 AppCtrlFullScreenView = 0x230,
546 AppCtrlNormalView = 0x231,
547 AppCtrlViewToggle = 0x232,
548 AppCtrlScrollUp = 0x233,
549 AppCtrlScrollDown = 0x234,
550 AppCtrlScroll = 0x235,
551 AppCtrlPanLeft = 0x236,
552 AppCtrlPanRight = 0x237,
554 AppCtrlNewWindow = 0x239,
555 AppCtrlTileHorizontally = 0x23A,
556 AppCtrlTileVertically = 0x23B,
557 AppCtrlFormat = 0x23C,
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,
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,
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,
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,
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
659 enum GenericDesktop : ushort
668 MultiAxisController = 0x08,
669 TabletPcSystemControls = 0x09,
680 CountedBuffer = 0x3A,
692 SystemControl = 0x80,
693 SystemPowerDown = 0x81,
696 SystemContextMenu = 0x84,
697 SystemMainMenu = 0x85,
698 SystemAppMenu = 0x86,
699 SystemMenuHelp = 0x87,
700 SystemMenuExit = 0x88,
701 SystemMenuSelect = 0x89,
702 SystemMenuRight = 0x8A,
703 SystemMenuLeft = 0x8B,
705 SystemMenuDown = 0x8D,
706 SystemColdRestart = 0x8E,
707 SystemWarmRestart = 0x8F,
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
734 enum SimulationControl : ushort
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,
751 CyclicControl = 0x22,
757 AntiTorqueControl = 0xB2,
758 AutopilotEnable = 0xB3,
760 CollectiveControl = 0xB5,
762 ElectronicCountermeasures = 0xB7,
767 FlightCommunications = 0xBC,
773 WeaponsSelect = 0xC2,
780 TurretDirection = 0xC9,
781 BarrelElevation = 0xCA,
793 enum GameControl : ushort
796 GameController3D = 0x01,
797 PinballDevice = 0x02,
800 TurnRightLeft = 0x21,
801 PitchForwardBackward = 0x22,
802 RollRightLeft = 0x23,
803 MoveRightLeft = 0x24,
804 MoveForwardBackward = 0x25,
806 LeanRightLeft = 0x27,
807 LeanForwardBackward = 0x28,
810 SecondaryFlipper = 0x2B,
818 GunSingleShot = 0x33,
822 GamepadFireJump = 0x37,
823 GamepadTrigger = 0x39
829 enum TelephonyDevice : ushort
833 AnsweringMachine = 0x02,
834 MessageControls = 0x03,
837 TelephonyKeyPad = 0x06,
838 ProgrammableButton = 0x07,
848 AlternateFunction = 0x29,
860 PhoneDirectory = 0x53,
866 InsideDialTone = 0x90,
867 OutsideDialTone = 0x91,
868 InsideRingTone = 0x92,
869 OutsideRingTone = 0x93,
870 PriorityRingTone = 0x94,
871 InsideRingback = 0x95,
872 PriorityRingback = 0x96,
875 CallWaitingTone = 0x99,
876 ConfirmationTone1 = 0x9A,
877 ConfirmationTone2 = 0x9B,
879 OutsideRingback = 0x9D,
892 PhoneKeyPound = 0xBB,