来自GetRawInputData的HID设备信息结构

我在哪里可以得到HID设备的结构?

例如:

raw data from a device, using GetRawInputData: ( 0 137 117 0 146 130 24 128 0 ) ( 0 137 117 0 146 130 8 128 0 ) /\ at this I can see that || there is being a button released that means, at the 6-th char at 4-th bit 

通过分析原始stream,我可以找出button,开关和模拟数据在哪里。 有没有办法从Windows中询问这些信息。

我的主要目标是基本得到结构:

 Button - 6th char, 4th bit. Analog - 2nd char Switch - 6th char, 0-3th bit. 

我发现唯一的解决scheme是HID Descriptors 。 但我不知道如何使用它们。 在阅读文档之后,我感觉就像碰到了一堵砖墙。 有没有一个很好的例子来说明如何使用它们或者更好地描述它们的书。 (或者没有描述符的更简单的方法)


我发现HidP_GetButtonsHidP_GetUsages但仍然不知道如何提取结构(如上所述)。

哦,你必须使用GetRawInputData 。 在msdn上有一个有点不好的例子。

问题似乎是每个设备都有自己的结构。 通过win32 api似乎没有一个通用的方式来获得结构的解释。

的组合

  • GetRawInputDeviceInfo ,它给你一个RID_DEVICE_INFO结构
  • GetRawInputData
  • GetRawInputBuffer

似乎从win32得到你所有的信息。

之后,您可能需要一些外部信息来源(或由您生成),描述特定领域等。