阅读:4833回复:6
OnDeviceChange用法
OnDeviceChange( UINT nEventType, DWORD dwData )函数如何用?
我的U盘插上和拔下nEventType都是7,怎末回事呢? 第2个参数怎末用?我看是一个结构的地址,函数执行后如何得到这个结构的成员? 谢谢 |
|
沙发#
发布于:2002-11-12 08:34
MSDN不是说得很清楚吗?dwData 指向一个结构,这个结构的决定于nEventType,比如nEventType是DBT_DEVICEARRIVAL的时候,dwData就是一个指向DEV_BROADCAST_HDR结构。
|
|
板凳#
发布于:2002-11-12 13:35
可我怎末把这个地址符给一个结构变量呢?即我怎末应用结构中的变量?
谢谢 |
|
地板#
发布于: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; } |
|
|
地下室#
发布于:2002-11-12 18:30
谢谢
可_DEV_BROADCAST_HEADER* dbhdr = (_DEV_BROADCAST_HEADER*) dwData;这句出错,长正不能转换成结构,请帮助一下 谢谢 |
|
5楼#
发布于:2002-11-12 20:35
谢谢 ??? 强制转换了还不行?你用的事什么编译器啊? |
|
6楼#
发布于:2008-12-26 15:22
debug运行到onDeviceChange()里的return 的时候如果你再按下F5进入调试,你会发现nEnventType 就是你想要的
|
|