/* * listComPorts.c -- list COM ports * * http://github.com/todbot/usbSearch/ * * 2012, Tod E. Kurt, http://todbot.com/blog/ * * * Uses DispHealper : http://disphelper.sourceforge.net/ * * Notable VIDs & PIDs combos: * VID 0403 - FTDI * * VID 0403 / PID 6001 - Arduino Diecimila * */ void GetAdapterList(uv_work_t* req) { AdapterListBaton* data = static_cast<AdapterListBaton*>(req->data); { DISPATCH_OBJ(wmiSvc); DISPATCH_OBJ(colDevices); dhInitialize(TRUE); dhToggleExceptions(FALSE); dhGetObject(L"winmgmts:{impersonationLevel=impersonate}!\\\\.\\root\\cimv2", NULL, &wmiSvc); dhGetValue(L"%o", &colDevices, wmiSvc, L".ExecQuery(%S)", L"Select * from Win32_PnPEntity"); FOR_EACH(objDevice, colDevices, NULL) { char* name = NULL; char* pnpid = NULL; char* manu = NULL; char* match; dhGetValue(L"%s", &name, objDevice, L".Name"); dhGetValue(L"%s", &pnpid, objDevice, L".PnPDeviceID"); if( name != NULL && ((match = strstr( name, "(COM" )) != NULL) ) { // look for "(COM23)" // 'Manufacturuer' can be null, so only get it if we need it dhGetValue(L"%s", &manu, objDevice, L".Manufacturer"); if(strcmp("SEGGER", manu) == 0) { char* comname = strtok( match, "()"); AdapterListResultItem* resultItem = new AdapterListResultItem(); resultItem->comName = comname; resultItem->manufacturer = manu; resultItem->pnpId = pnpid; data->results.push_back(resultItem); } dhFreeString(manu); } dhFreeString(name); dhFreeString(pnpid); } NEXT(objDevice); SAFE_RELEASE(colDevices); SAFE_RELEASE(wmiSvc); dhUninitialize(TRUE); }
/* ============================================================================ */ int main(void) { const TCHAR * szServer = TEXT("smtp_server.myisp.com"); const TCHAR * szFrom = TEXT("*****@*****.**"); const TCHAR * szTo = TEXT("*****@*****.**"); const TCHAR * szSubject = TEXT("DispHelper Test email"); dhInitialize(TRUE); dhToggleExceptions(TRUE); printf("Sending Email using CDO...\n"); EmailCDO(szServer, szFrom, szTo, szSubject, TEXT("Test email using CDO.")); printf("Sending Email using Outlook...\n"); EmailOutlook(szTo, szSubject, TEXT("Test email using Outlook.")); printf("Sending Email using Eudora...\n"); EmailEudora(szTo, szSubject, TEXT("Test email using Eudora")); dhUninitialize(TRUE); return 0; }