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);
}
예제 #3
0
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;
}