// (C) Фролов Г.В., 1995
// Адрес E-mail: frolov@glas.apc.org

#include <windows.h>
#include "tele.h"

// ===================================================================
// Функция ProcessCommNotify
// ===================================================================
int ProcessCommNotify(HWND hwnd, int nComID, int nNotification)
{
	int	nResult;						// временная переменная
	char	szData[OUTQUEUE+1];     // временный буфер данных


	// Получено сообщение WM_COMMNOTIFY с кодом извещения CN_RECEIVE
	if ( nNotification & CN_RECEIVE )
	{
		// Считываем данные из входной очереди COM-порта
		nResult = ReadCommPort ( nComID, (LPSTR)szData, OUTQUEUE );
		if (nResult > 0)
		{
			szData[nResult] = 0;

			// Отображаем считанные из COM-порта данные в окне
			WriteTTY(szData, hwnd, DARK_GREEN);
		}

		// Возникла ошибка при чтении из COM-порта
		else if (nResult < 0)
		{
			szData[-nResult] = 0;

			// Отображаем считанные из COM-порта данные в окне
         // и возвращаем код ошибки
			WriteTTY(szData, hwnd, DARK_GREEN);

			return nResult;
		}

      // Определяем код ошибки и сбрасываем регистр ошибок
		GetCommError(nComID,NULL);
	}

	return nResult;
}

