請教各位大神為什么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;
}
}
大家幫我看一下哪里錯了,謝謝啦
uj5u.com熱心網友回復:
DBT_DEVNODES_CHANGED = 0x0007;uj5u.com熱心網友回復:
不一樣的設備&驅動可能發送的訊息不一樣, 可以WM_DEVICECHANGE 中重新列舉一下設備,以確定變化情況轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/25252.html
標籤:硬件/系統
