请教各位大神为什么OnDeviceChange总是收到7?

xhlu 2020-01-03 06:23:36
请教各位大神为什么OnDeviceChange总是收到7?设备已注册,也没有提示注册失败,为什么只能收到7?
 //注册部分
UID guid;
HRESULT hr = CoCreateGuid(&guid);

//在对话框初始化过程中将设备通知消息注册到winproc中
//Register to receive notification when a USB device is plugged in.
HDEVNOTIFY gNotifyDevHandle;
DEV_BROADCAST_DEVICEINTERFACE broadcastInterface;
broadcastInterface.dbcc_size =sizeof(DEV_BROADCAST_DEVICEINTERFACE);
broadcastInterface.dbcc_devicetype =DBT_DEVTYP_DEVICEINTERFACE;

memcpy( &(broadcastInterface.dbcc_classguid),&(guid),sizeof(struct _GUID));

gNotifyDevHandle = RegisterDeviceNotification(this->GetSafeHwnd(),
&broadcastInterface,
DEVICE_NOTIFY_WINDOW_HANDLE);
//----------------------------------------------------------
afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD dwData);
//--------------------------------------------------------------------
BEGIN_MESSAGE_MAP(CRFIDInputToolDlg, CDialog)
ON_WM_DEVICECHANGE()
......
END_MESSAGE_MAP()
//--------------------------------------------
BOOL CRFIDInputToolDlg::OnDeviceChange(UINT nEventType, DWORD dwData)
{
DEV_BROADCAST_DEVICEINTERFACE* dbd = (DEV_BROADCAST_DEVICEINTERFACE*) dwData;

switch (nEventType)
{
case DBT_DEVICEREMOVECOMPLETE:
AfxMessageBox(_T("设备移除"));
break;
case DBT_DEVICEARRIVAL:
AfxMessageBox(_T("设备接入"));
break;
default:
break;
}
}

大家帮我看一下哪里错了,谢谢啦
...全文
91 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2020-01-03
  • 打赏
  • 举报
回复
不一样的设备&驱动可能发送的消息不一样, 可以WM_DEVICECHANGE 中重新枚举一下设备,以确定变化情况
schlafenhamster 2020-01-03
  • 打赏
  • 举报
回复
DBT_DEVNODES_CHANGED = 0x0007;

2,640

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧