VC学习:获取游戏手柄的按键输入
//可以查看按游戏手柄按钮时的情况.
//USB接口的游戏手柄
//编译环境:Windows 2000 server+VC++ 6.0+Win2K DDK
#include
#include
#include
#include
extern "C"
{
#include
}
void main()
{
GUID HidGuid;
// 查找本系统中HID类的GUID标识
HidD_GetHidGuid(&HidGuid);
_tprintf("系统中HID类的GUID标识为:%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x
",
HidGuid.Data1,HidGuid.Data2 ,HidGuid.Data3 ,
HidGuid.Data4[0],HidGuid.Data4[1],HidGuid.Data4[2],
HidGuid.Data4[3],HidGuid.Data4[4],HidGuid.Data4[5],
HidGuid.Data4[6],HidGuid.Data4[7]);
// 准备查找符合HID规范的USB设备
HDEVINFO hDevInfo = SetupDiGetClassDevs(&HidGuid,
NULL,
NULL,
DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
if (hDevInfo == INVALID_HANDLE_VALUE)
{
_tprintf("符合HID规范的USB设备发生错误
");
return;
}
_tprintf("正在查找可用的USB设备... ");
DWORD MemberIndex = 0;
SP_DEVICE_INTERFACE_DATA DeviceInterfaceData;
BOOL bSuccess = FALSE;
DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
do
{
bSuccess = SetupDiEnumDeviceInterfaces(hDevInfo,
NULL,
&HidGuid,
MemberIndex,
&DeviceInterfaceData);
if ((!bSuccess) && (GetLastError() == ERROR_NO_MORE_ITEMS))
{
if(MemberIndex == 0)
_tprintf("抱歉,未找到可用的USB设备!
");
else
_tprintf("没有更多的可用的USB设备!
");
SetupDiDestroyDeviceInfoList(hDevInfo);
return;
}
- 上一篇:VC学习:IP地址控件小技巧
- 下一篇:VC学习:拥有Office XP风格的界面