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);
}
{
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);
}
相关文章推荐
- 新裁剪的interl i3操作系统 为什么U盘识别了,却挂接不上??
- iOS项目开发实战——使用手势识别判断用户操作
- Jmeter的正则表达式未正确提取数据——自己操作出错备忘(正则表达式字符识别问题)
- biokey.ocx 指纹认证、识别 操作 简单说明
- 【Android游戏开发十六】Android Gesture之【触摸屏手势识别】操作!利用触摸屏手势实现一个简单切换图片的功能!
- vb.net 实现u盘插入,拔出的识别
- 目标板识别为U盘
- Android的手势操作识别
- tessract-ocr文本识别系统网页搭建php_进一步完善及操作流程详解
- U盘不识别,磁盘管理器显示无媒体
- U盘不能被识别
- Linux无法识别移动设备(U盘、移动硬盘)的问题
- U盘插入与拔出识别
- Mac技巧之让U盘、移动硬盘在苹果电脑和Windows PC都能识别/读写,且支持4GB大文件:exFAT格式
- 用U盘给苹果笔记本安装windows7系统操作步骤
- U盘中毒或误操作变成raw格式,磁盘显示容量为0修复解决方案
- 利用SwipeArea来识别手势操作
- U盘装ubuntu后windows识别不了,恢复U盘的方法
- 新到的电脑BIOS中无法识别U盘
- Android实现识别/挂载U盘