BOOL GetSerialComPortNumber_my(vector<CString>& szComm) { CArray<SSerInfo,SSerInfo&> asi; // Populate the list of serial ports. EnumSerialPorts(asi,FALSE/*include all*/); szComm.clear(); for (int ii=0; ii<asi.GetSize(); ii++) { //m_listPorts.AddString(asi[ii].strFriendlyName); CString strCom = asi[ii].strFriendlyName; int nPos; if ((nPos = strCom.Find(_T("COM")))!=-1) { int startdex = strCom.ReverseFind(_T('(')); int enddex = strCom.ReverseFind(_T(')')); //if (startdex > 0 && enddex == (strCom.GetLength()-1)) strCom = strCom.Mid(startdex+1, enddex-startdex-1); } szComm.push_back(strCom); } return (szComm.size() !=0); }
void GetAdapterList(uv_work_t *req) { auto baton = static_cast<AdapterListBaton*>(req->data); EnumSerialPorts(baton->results); }
BOOL CLyteFlashApp::InitInstance() { // InitCommonControlsEx() is required on Windows XP if an application // manifest specifies use of ComCtl32.dll version 6 or later to enable // visual styles. Otherwise, any window creation will fail. INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // Set this to include all the common control classes you want to use // in your application. InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need // Change the registry key under which our settings are stored // TODO: You should modify this string to be something appropriate // such as the name of your company or organization SetRegistryKey(_T("Local AppWizard-Generated Applications")); LoadStdProfileSettings(8); // Load standard INI file options (including MRU) // Register the application's document templates. Document templates // serve as the connection between documents, frame windows and views CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CLyteFlashDoc), RUNTIME_CLASS(CMainFrame), // main SDI frame window RUNTIME_CLASS(CLyteFlashView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // Parse command line for standard shell commands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // Dispatch commands specified on the command line. Will return FALSE if // app was launched with /RegServer, /Register, /Unregserver or /Unregister. if (!ProcessShellCommand(cmdInfo)) return FALSE; // The one and only window has been initialized, so show and update it m_pMainWnd->MoveWindow(100, 100, 600, 300); m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow(); // call DragAcceptFiles only if there's a suffix // In an SDI app, this should occur after ProcessShellCommand m_bFileValid = false; m_nProgress = 0; _tcscpy_s(m_szShortName, _T("No file loaded")); EnumSerialPorts(m_asiPorts, true); UpdateMenu(); return TRUE; }