16,472
社区成员
发帖
与我相关
我的任务
分享
BEGIN_MSG_MAP(CMainDlg)
MESSAGE_HANDLER(WM_DEVICECHANGE, OnDeviceChange)
END_MSG_MAP()
LRESULT OnDeviceChange(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/);
MainDlg.cpp:
LRESULT CMainDlg::OnDeviceChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& /*bHandled*/)
{
TRACE_FN_SCOPE;
PDEV_BROADCAST_DEVICEINTERFACE pdbUSBDevInfo = (PDEV_BROADCAST_DEVICEINTERFACE)lParam;
switch(wParam)
{
case DBT_DEVICEARRIVAL:
if( (pdbUSBDevInfo != NULL) && (pdbUSBDevInfo->dbcc_devicetype == DBT_DEVTYP_DEVICEINTERFACE) )
{
TRACE(INFO, L"Device Type is matched, next check class guid[in].");
if( IsEqualGUID( pdbUSBDevInfo->dbcc_classguid, g_usbDevGuid ) )
{
// add your code
}
}
break;
case DBT_DEVICEREMOVECOMPLETE:
if( (pdbUSBDevInfo != NULL) && (pdbUSBDevInfo->dbcc_devicetype == DBT_DEVTYP_DEVICEINTERFACE) )
{
TRACE(INFO, L"Device Type is matched, next check class guid[out].");
if( IsEqualGUID( pdbUSBDevInfo->dbcc_classguid, g_usbDevGuid ) )
{
}
}
break;
default:
break;
}
}
PS: g_usbDevGuid就是你的USB的GUID