18,124
社区成员
发帖
与我相关
我的任务
分享
bool Widget::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
//处理Windows系统消息
MSG* msg = (MSG*)message;
int msgType = msg->message;
if(msgType == WM_DEVICECHANGE) //Windows设备消息
{
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)msg->lParam;
switch(msg->wParam)
{
case DBT_DEVICEARRIVAL:
if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME) //逻辑卷
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
if (lpdbv -> dbcv_flags == 0)
{
qDebug() << "USB_设备物理插入";
}
}
break;
case DBT_DEVICEREMOVECOMPLETE:
if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME) //逻辑卷
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
if (lpdbv -> dbcv_flags == 0)
{
qDebug() << "USB_设备物理拔出";
}
}
break;
}
}
return false;
}
DBT_DEVICEREMOVEPENDING
DBT_CONFIGCHANGECANCELED
DBT_CUSTOMEVENT
DBT_DEVICEQUERYREMOVE
DBT_DEVICEQUERYREMOVEFAILED
DBT_DEVNODES_CHANGED
DBT_QUERYCHANGECONFIG
DBT_USERDEFINED