1.添加动静
动静照射
BEGIN_MESSAGE_MAP(CAFT_1394Dlg, CDialog)
//{{AFX_MSG_MAP(CAFT_1394Dlg)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
...
ON_WM_DEVICECHANGE()
//}}AFX_MSG_MAP
声明动静响应函数:
afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD dwData);
定义函数内部实质意义:
BOOL XXXXXXX::OnDeviceChange(UINT nEventType,DWORD dwData)
{
DEV_BROADCAST_DEVICEINTERFACE* dbd = (DEV_BROADCAST_DEVICEINTERFACE*) dwData;
//这搭举行信息般配,好比guid等
//针对于各个事务举行措置惩罚.
switch (nEventType)
{
case DBT_DEVICEREMOVECOMPLETE:
...
break;
case DBT_DEVICEARRIVAL:
...
break;
...
...
...
default:
break;
}
return TRUE;
}
2.注册装备
if (Handle == 灭茬)
return FALSE;
DEV_BROADCAST_DEVICEINTERFACE DevInt;
memset(&DevInt,0,sizeof(DEV_BROADCAST_DEVICEINTERFACE));
DevInt.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
DevInt.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
DevInt.dbcc_classguid = GetCurrentUSBGUID();//m_usb->GetDriverGUID();
if (!RegisterDeviceNotification(m_hWnd, &DevInt,DEVICE_NOTIFY_WINDOW_HANDLE) )
return FALSE;
只有注册了该装备,OnDeviceChange才气患上到具体的信息,不然收到的参量都是0007.
手动添加吧
本文介绍了如何在Windows应用程序中实现设备变化的通知与响应处理。主要内容包括注册设备通知、定义设备变化响应函数,并针对不同类型的设备事件(如移除、插入)进行处理。
2985

被折叠的 条评论
为什么被折叠?



