jjw57
驱动牛犊
驱动牛犊
  • 注册日期2002-10-04
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:4833回复:6

OnDeviceChange用法

楼主#
更多 发布于:2002-11-11 20:02
OnDeviceChange( UINT nEventType, DWORD dwData )函数如何用?
我的U盘插上和拔下nEventType都是7,怎末回事呢?
第2个参数怎末用?我看是一个结构的地址,函数执行后如何得到这个结构的成员?
谢谢


  
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
沙发#
发布于:2002-11-12 08:34
MSDN不是说得很清楚吗?dwData 指向一个结构,这个结构的决定于nEventType,比如nEventType是DBT_DEVICEARRIVAL的时候,dwData就是一个指向DEV_BROADCAST_HDR结构。
jjw57
驱动牛犊
驱动牛犊
  • 注册日期2002-10-04
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-11-12 13:35
可我怎末把这个地址符给一个结构变量呢?即我怎末应用结构中的变量?
谢谢
ydyuse
驱动老牛
驱动老牛
  • 注册日期2002-07-25
  • 最后登录2005-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-11-12 13:46

别忘给分!
WM_DEVICECHANGE消息的处理程序可以象这样:

BOOL CAutoLaunch::OnDeviceChange(UINT evtype, DWORD dwData)
{
  _DEV_BROADCAST_HEADER* dbhdr = (_DEV_BROADCAST_HEADER*) dwData;
  if (!dbhdr || dbhdr->dbcd_devicetype != DBT_DEVTYP_DEVICEINTERFACE)
    return TRUE;
  PDEV_BROADCAST_DEVICEINTERFACE p = (PDEV_BROADCAST_DEVICEINTERFACE) dbhdr;
  CString devname = p->dbcc_name;
  if (evtype == DBT_DEVICEARRIVAL)
    <handle arrival>
  else if (evtype == DBT_DEVICEREMOVECOMPLETE)
    <handle removal>
  return TRUE;
}
 
生命驱动,活力无限!
jjw57
驱动牛犊
驱动牛犊
  • 注册日期2002-10-04
  • 最后登录2005-03-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-11-12 18:30
谢谢
可_DEV_BROADCAST_HEADER* dbhdr = (_DEV_BROADCAST_HEADER*) dwData;这句出错,长正不能转换成结构,请帮助一下
谢谢
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
5楼#
发布于:2002-11-12 20:35
谢谢
可_DEV_BROADCAST_HEADER* dbhdr = (_DEV_BROADCAST_HEADER*) dwData;这句出错,长正不能转换成结构,请帮助一下
谢谢
 

???
强制转换了还不行?你用的事什么编译器啊?
boylove1
驱动牛犊
驱动牛犊
  • 注册日期2008-08-20
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望32点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2008-12-26 15:22
debug运行到onDeviceChange()里的return 的时候如果你再按下F5进入调试,你会发现nEnventType 就是你想要的
游客

返回顶部