再度提问,USB设备类型的检测,大神们支支招
再次提问,USB设备类型的检测,大神们支支招。
通过使用SetupApi可以检测到USB设备的热插拔,但是现在需要做的是区分插入的USB设备的类型,比如USB摄像头、U盘、USB声卡等。求大神们支招!~弄了好几天了。
------解决思路----------------------
case DBT_DEVICEARRIVAL:
// Check whether a CD or DVD was inserted into a drive.
if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME)
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
if (lpdbv -> dbcv_flags & DBTF_MEDIA)
{
StringCchPrintf (szMsg, 80, "Drive %c: Media has arrived.\n",
FirstDriveFromMask(lpdbv ->dbcv_unitmask));
MessageBox (hwnd, szMsg, "WM_DEVICECHANGE", MB_OK);
}
}
break;
通过插拔消息获取相应设备的信息。。
通过使用SetupApi可以检测到USB设备的热插拔,但是现在需要做的是区分插入的USB设备的类型,比如USB摄像头、U盘、USB声卡等。求大神们支招!~弄了好几天了。
------解决思路----------------------
case DBT_DEVICEARRIVAL:
// Check whether a CD or DVD was inserted into a drive.
if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME)
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
if (lpdbv -> dbcv_flags & DBTF_MEDIA)
{
StringCchPrintf (szMsg, 80, "Drive %c: Media has arrived.\n",
FirstDriveFromMask(lpdbv ->dbcv_unitmask));
MessageBox (hwnd, szMsg, "WM_DEVICECHANGE", MB_OK);
}
}
break;
通过插拔消息获取相应设备的信息。。