Шаг 95 - А вы уверены, что это 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;
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 6.03.2001