А вы уверены, что это RS-232 ? GetCommProperties()
|
Функции рассмотренные ранее хороши, но они подразумевают, что вы знаете тип порта. Вы совершенно уверены, что все порты у Вас RS-232 ? Уверены ? А у пользователя ??? Тут может быть что угодно. Для получения более подробной информации используется функция GetCommProperties(). BOOL GetCommProperties ( HANDLE hFile,// указатель на порт LPCOMMPROP lpCommProp// указатель на структуру COMMPROP );
При удачном выполнении вернет ненулевое значение и заполненную структуру. Смотрим. #include "windows.h" #include "iostream.h"
void main() {
COMMCONFIG comm; if (GetDefaultCommConfig("COM1",&comm,&comm.dwSize)) { switch (comm.dwProviderSubType) { case PST_FAX : cout << "FAX device " << endl; break; case PST_LAT : cout << "LAT protocol" << endl; break; case PST_MODEM : cout << "Modem device " << endl; break; case PST_NETWORK_BRIDGE : cout << "Unspecified network bridge " << endl; break; case PST_PARALLELPORT : cout << "Parallel port " << endl; break; case PST_RS232 : cout << "RS-232 serial port " << endl; break; case PST_RS422 : cout << "RS-422 port " << endl; break; case PST_RS423 : cout << "RS-423 port " << endl; break; case PST_RS449 : cout << "RS-449 port " << endl; break; case PST_SCANNER : cout << "Scanner device " << endl; break; case PST_TCPIP_TELNET : cout << "TCP/IP TelnetR protocol " << endl; break; case PST_UNSPECIFIED : cout << "Unspecified " << endl; break; case PST_X25 : cout << "X.25 standards " << endl; break; default : cout << "?????? Microsft mail please ...." << endl; break; } } else cout << "Error access" << endl; }
|