您的位置:首页 > 其它

U盘识别操作

2011-07-05 21:12 281 查看
LRESULT CTestUSBDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if(message == WM_DEVICECHANGE) //0x8000,0x8004
{
CString str;
DEV_BROADCAST_HDR* dhr = (DEV_BROADCAST_HDR *)lParam;
switch(wParam)
{
case DBT_CONFIGCHANGECANCELED:
TRACE( "DBT_CONFIGCHANGECANCELED ");
break;
case DBT_CONFIGCHANGED:
TRACE( "DBT_CONFIGCHANGED ");
break;
case DBT_DEVICEQUERYREMOVE:
TRACE( "DBT_DEVICEQUERYREMOVE ");
break;
case DBT_DEVICEQUERYREMOVEFAILED:
TRACE( "DBT_DEVICEQUERYREMOVEFAILED ");
break;
case DBT_DEVICEREMOVEPENDING:
TRACE( "DBT_DEVICEREMOVEPENDING ");
break;
case DBT_DEVICETYPESPECIFIC:
TRACE( "DBT_DEVICETYPESPECIFIC ");
break;
case DBT_QUERYCHANGECONFIG:
TRACE( "DBT_QUERYCHANGECONFIG ");
break;
case DBT_USERDEFINED:
TRACE( "DBT_USERDEFINED ");
break;
case DBT_DEVICEARRIVAL:
if(dhr-> dbch_devicetype == DBT_DEVTYP_VOLUME)
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)dhr;
if(lpdbv-> dbcv_flags & DBTF_MEDIA)
{
str.Format( "Drive %c 插入 ", FirstDriveFromMask(lpdbv -> dbcv_unitmask));
//AfxMessageBox(str);
}
else
{
char ch = FirstDriveFromMask(lpdbv -> dbcv_unitmask);
str.Format( "%c:\\ ",ch);
}
}
break;
case DBT_DEVICEREMOVECOMPLETE:
if(dhr-> dbch_devicetype == DBT_DEVTYP_VOLUME)
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)dhr;
if(lpdbv-> dbcv_flags & DBTF_MEDIA)
{
str.Format( "Drive %c 拔除 ",FirstDriveFromMask(lpdbv -> dbcv_unitmask));
}
else
{
str.Format( "Drive %c 拔除 ",FirstDriveFromMask(lpdbv -> dbcv_unitmask));
}
//AfxMessageBox(str);
}
break;
default:
break;
}
}
return CDialog::WindowProc(message, wParam, lParam);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: