Hmm, not so sure it works. none of the ID match in enum callback, I plugged in a xbox360 controller
struct GUIDName
{
GUID Guid;
string GuidString;
};
GUIDName guidNames [] =
{
{ GUID_XAxis, "GUID_XAxis" }
,{ GUID_YAxis, "GUID_YAxis" }
,{ GUID_ZAxis, "GUID_ZAxis" }
,{ GUID_RxAxis, "GUID_RxAxis" }
,{ GUID_RyAxis, "GUID_RyAxis" }
,{ GUID_RzAxis, "GUID_RzAxis" }
,{ GUID_Slider, "GUID_Slider" }
,{ GUID_Button, "GUID_Button" }
,{ GUID_Key, "GUID_Key" }
,{ GUID_POV, "GUID_POV" }
,{ GUID_SysMouse, "GUID_SysMouse" }
,{ GUID_SysKeyboard, "GUID_SysKeyboard" }
,{ GUID_Joystick, "GUID_Joystick" }
,{ GUID_SysMouseEm, "GUID_SysMouseEm" }
,{ GUID_SysMouseEm2, "GUID_SysMouseEm2" }
,{ GUID_SysKeyboardEm, "GUID_SysKeyboardEm" }
,{ GUID_SysKeyboardEm2, "GUID_SysKeyboardEm2" }
};
for (int i = 0; i < sizeof (guidNames)/sizeof (guidNames [0]); ++i)
{
if (guidNames [i].Guid == MAKEDIPROP (&propRange.diph.dwObj))
cout << "---------------------------------------" << guidNames [i].GuidString << endl;
}