BOOL CSocketSelectDlg::OnBtnOk(WORD wCode, HWND hCtrl) { HRESULT hResult; VCIDEVICEINFO sInfo; if (m_hCurDev != NULL) { if (m_lCtrlNo >= 0) { // // re-open the selected device. This is neccessary because the // handle in m_hCurDev is invalid after the dialog has closed. // hResult = vciDeviceGetInfo(m_hCurDev, &sInfo); if (hResult == VCI_OK) hResult = vciDeviceOpen(sInfo.VciObjectId, &m_hSelDev); if (hResult == VCI_OK) { m_nSelDev = sInfo.VciObjectId; EndDialog(IDOK); } else { DeviceListUpdate(); } } else { TCHAR szTitle[256]; GetWindowText(szTitle, 256); MessageBox(CDialogWnd::GetHandle(), TEXT("Please select a BUS line !"), szTitle, MB_OK | MB_ICONSTOP); } } else { TCHAR szTitle[256]; GetWindowText(szTitle, 256); MessageBox(CDialogWnd::GetHandle(), TEXT("Please select a device !"), szTitle, MB_OK | MB_ICONSTOP); } return(TRUE); }
LRESULT CSocketSelectDlg::DeviceListInsert(VCIID vciid) { HANDLE hDevice; LRESULT lIndex; TCHAR szText[512]; VCIDEVICEINFO sInfo; lIndex = DeviceListSearch(vciid); if (lIndex == LB_ERR) { if (vciDeviceOpen(vciid, &hDevice) == VCI_OK) { if (vciDeviceGetInfo(hDevice, &sInfo) == VCI_OK) { wsprintf(szText, TEXT("%08X%08X - %s"), vciid.AsLuid.HighPart, vciid.AsLuid.LowPart, sInfo.Description); lIndex = SendItemMessage(IDC_DEVLIST, LB_ADDSTRING, 0, (LPARAM) szText); if (lIndex >= 0) { SendItemMessage(IDC_DEVLIST, LB_SETITEMDATA, lIndex, (LPARAM) hDevice); } else { vciDeviceClose(hDevice); } } else { vciDeviceClose(hDevice); } } } return( lIndex ); }
int CANDriver::initialize() { CHAR errorBuffer[VCI_MAX_ERRSTRLEN]; HRESULT vciResult; if ( (vciResult = vciInitialize()) != VCI_OK ) { vciFormatError(vciResult, &errorBuffer[0], sizeof(errorBuffer)); emit errorOccured(errorBuffer); return 1; } HANDLE hEnum; if ( (vciResult = vciEnumDeviceOpen(&hEnum)) != VCI_OK ) { vciFormatError(vciResult, &errorBuffer[0], sizeof(errorBuffer)); emit errorOccured(errorBuffer); return 1; } vciEnum_ptr phEnum(&hEnum, vciEnumDeviceClose); VCIDEVICEINFO deviceInfo; if ( (vciResult = vciEnumDeviceNext(hEnum, &deviceInfo)) != VCI_OK ) { vciFormatError(vciResult, &errorBuffer[0], sizeof(errorBuffer)); emit errorOccured(errorBuffer); return 1; } HANDLE hDevice; if ( (vciResult = vciDeviceOpen(deviceInfo.VciObjectId, &hDevice)) != VCI_OK ) { vciFormatError(vciResult, &errorBuffer[0], sizeof(errorBuffer)); emit errorOccured(errorBuffer); return 1; } vciDevice_ptr phDevice(&hDevice, vciDeviceClose); return 0; }