Windows RegisterDeviceNotificationon,OndeviceChange被调用多次
我正在使用RegisterDeviceNotification在添加设备时获取通知。 我收到的通知是正确的,但是对于任何连接的设备,我都会多次收到OnDeviceChange呼叫(大约5-6次)。 代码如下:Windows RegisterDeviceNotificationon,OndeviceChange被调用多次,windows,visual-c++,mfc,Windows,Visual C++,Mfc,我正在使用RegisterDeviceNotification在添加设备时获取通知。 我收到的通知是正确的,但是对于任何连接的设备,我都会多次收到OnDeviceChange呼叫(大约5-6次)。 代码如下: RegisterNotificaiton() { DEV_BROADCAST_DEVICEINTERFACE *pDev; pDev = new DEV_BROADCAST_DEVICEINTERFACE(); if(NULL != pD
RegisterNotificaiton()
{
DEV_BROADCAST_DEVICEINTERFACE *pDev;
pDev = new DEV_BROADCAST_DEVICEINTERFACE();
if(NULL != pDev)
{
memset( pDev, 0, sizeof(DEV_BROADCAST_DEVICEINTERFACE) );
pDev->dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
pDev->dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
pDev->dbcc_classguid = GUID_USB;
m_hNotifyDevNode = RegisterDeviceNotification( this->GetSafeHwnd(), pDev, DEVICE_NOTIFY_WINDOW_HANDLE | 4);
if(NULL != pDev)
{
delete pDev;
pDev = NULL;
}
}
}
BOOL CMainFrame::OnDeviceChange(UINT wParam, DWORD_PTR lParam)
{
switch ( wParam )
{
case DBT_DEVICEARRIVAL:
{
; // Do something
}
break;
case DBT_DEVICEREMOVECOMPLETE:
{
; // Do something
}
default:
break;
}
return true;
}