標籤:mfc com通訊
以對話方塊工程為例
標頭檔中
afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD dwData);
cpp中
ON_WM_DEVICECHANGE()
然後實現函數
BOOL CXXDlg::OnDeviceChange(UINT nEventType,DWORD dwData){//0x4d36e978L, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18//DEV_BROADCAST_DEVICEINTERFACE* dbd = (DEV_BROADCAST_DEVICEINTERFACE*) dwData;DEV_BROADCAST_HDR* dhr = (DEV_BROADCAST_HDR *)dwData;TRACE("--nEventType--:%d\n", nEventType);switch (nEventType){case DBT_DEVICEREMOVECOMPLETE://移除裝置TRACE("--DEVICE REMOVE--\n");#if 1if(dhr->dbch_devicetype == DBT_DEVTYP_PORT) { PDEV_BROADCAST_PORT lpdbv = (PDEV_BROADCAST_PORT)dhr; int len = strlen(lpdbv->dbcp_name);CString name(lpdbv->dbcp_name);//COM8int port = 0;sscanf(name.GetBuffer(0), "COM%d", &port);} #endifTRACE("--DEVICE REMOVE--end\n");break;case DBT_DEVICEARRIVAL://添加裝置TRACE("--DEVICE ARRIVAL--\n");#if 1if(dhr->dbch_devicetype == DBT_DEVTYP_PORT) { PDEV_BROADCAST_PORT lpdbv = (PDEV_BROADCAST_PORT)dhr; int len = strlen(lpdbv->dbcp_name);CString name(lpdbv->dbcp_name);//COM8int port = 0;sscanf(name.GetBuffer(0), "COM%d", &port);} #endifbreak;default:break;}return TRUE;}