TTYINFO.H 5.09 KB

/*-----------------------------------------------------------------------------
    This is a part of the Microsoft Source Code Samples. 
    Copyright (C) 1995 Microsoft Corporation.
    All rights reserved. 
    This source code is only intended as a supplement to 
    Microsoft Development Tools and/or WinHelp documentation.
    See these sources for detailed information regarding the 
    Microsoft samples programs.

    MODULE: TTYINFO.h

    PURPOSE: Contains global definitions for the TTYINFO structure

-----------------------------------------------------------------------------*/

//
// constant definitions
//

//
// hard coded maximum number of ports
//
#define MAXPORTS        32

//
// terminal size
//
#define MAXROWS         50
#define MAXCOLS         80

//
// cursor states
//
#define CS_HIDE         0x00
#define CS_SHOW         0x01

//
// ascii definitions
//
#define ASCII_BEL       0x07
#define ASCII_BS        0x08
#define ASCII_LF        0x0A
#define ASCII_CR        0x0D
#define ASCII_XON       0x11
#define ASCII_XOFF      0x13

//
// data structures
//
struct TTYInfoStruct
{
    HANDLE  hCommPort, hReaderStatus, hWriter ;
    DWORD   dwEventFlags;
    CHAR    Screen[MAXCOLS * MAXROWS];
    CHAR    chFlag, chXON, chXOFF;
    WORD    wXONLimit, wXOFFLimit;
    DWORD   fRtsControl;
    DWORD   fDtrControl;
    BOOL    fConnected, fTransferring, fRepeating,
            fLocalEcho, fNewLine,
            fDisplayErrors, fAutowrap,
            fCTSOutFlow, fDSROutFlow, fDSRInFlow, 
            fXonXoffOutFlow, fXonXoffInFlow,
            fTXafterXoffSent,
            fNoReading, fNoWriting, fNoEvents, fNoStatus,
            fDisplayTimeouts;
    BYTE    bPort, bByteSize, bParity, bStopBits ;
    DWORD   dwBaudRate ;
    WORD    wCursorState ;
    HFONT   hTTYFont ;
    LOGFONT lfTTYFont ;
    DWORD   rgbFGColor ;
	DWORD   rgbBGColor ;
    COMMTIMEOUTS timeoutsorig;
    COMMTIMEOUTS timeoutsnew;
    int     xSize, ySize, xScroll, yScroll, xOffset, yOffset,
            nColumn, nRow, xChar, yChar , nCharPos;
	char szFileName[MAX_PATH];
	BYTE unOpenedPortAry[255];
	BOOL DownloadReday;
	DWORD tickcountFinish;		//Íê³ÉÏÂÔØµÄʱ¼ä


} TTYInfo;

//
// macros ( for easier readability )
//
//#define COMDEV(TTYInfo)         (TTYInfo.hCommPort)
//#define CURSORSTATE(TTYInfo)    (TTYInfo.wCursorState)
//#define PORT(TTYInfo)           (TTYInfo.bPort)
//#define TTYInfo.Screen         (TTYInfo.Screen)
//#define CONNECTED(TTYInfo)      (TTYInfo.fConnected)
//#define TTYInfo.fTransferring   (TTYInfo.fTransferring)
//#define TTYInfo.fRepeating      (TTYInfo.fRepeating)
//#define TTYInfo.fLocalEcho      (TTYInfo.fLocalEcho)
//#define TTYInfo.fNewLine        (TTYInfo.fNewLine)
//#define TTYInfo.fAutowrap       TTYInfo.fAutowrap
//#define TTYInfo.bByteSize       TTYInfo.bByteSize
//#define TTYInfo.bParity         TTYInfo.bParity
//#define TTYInfo.bStopBits       TTYInfo.bStopBits
//#define TTYInfo.dwBaudRate       TTYInfo.dwBaudRate
//#define TTYInfo.hTTYFont       TTYInfo.hTTYFont
//#define TTYInfo.lfTTYFont      TTYInfo.lfTTYFont
//#define TTYInfo.rgbFGColor        TTYInfo.rgbFGColor
//#define TTYInfo.rgbBGColor        TTYInfo.rgbBGColor
//#define TTYInfo.xSize          TTYInfo.xSize
//#define TTYInfo.ySize          TTYInfo.ySize
//#define TTYInfo.xScroll        TTYInfo.xScroll
//#define TTYInfo.yScroll        TTYInfo.yScroll
//#define TTYInfo.xOffset        TTYInfo.xOffset
//#define TTYInfo.yOffset        TTYInfo.yOffset
//#define TTYInfo.nColumn         TTYInfo.nColumn
//#define TTYInfo.nRow            TTYInfo.nRow
//#define TTYInfo.xChar          TTYInfo.xChar
//#define TTYInfo.yChar          TTYInfo.yChar
//#define TTYInfo.fDisplayErrors  TTYInfo.fDisplayErrors
//#define TTYInfo.timeoutsorig   TTYInfo.timeoutsorig
//#define TTYInfo.timeoutsnew    TTYInfo.timeoutsnew
//#define TTYInfo.hWriter   TTYInfo.hWriter
//#define TTYInfo.hReaderStatus TTYInfo.hReaderStatus
//#define TTYInfo.dwEventFlags     TTYInfo.dwEventFlags
//#define TTYInfo.chFlag       TTYInfo.chFlag
//#define SCREENCHAR( x, col, row )   TTYInfo.Screen[row * MAXCOLS + col]

//#define TTYInfo.fDtrControl     TTYInfo.fDtrControl
//#define TTYInfo.fRtsControl     TTYInfo.fRtsControl
//#define TTYInfo.chXON        TTYInfo.chXON
//#define TTYInfo.chXOFF       TTYInfo.chXOFF
//#define TTYInfo.wXONLimit       TTYInfo.wXONLimit
//#define TTYInfo.wXOFFLimit      TTYInfo.wXOFFLimit
//#define TTYInfo.fCTSOutFlow     TTYInfo.fCTSOutFlow
//#define TTYInfo.fDSROutFlow     TTYInfo.fDSROutFlow
//#define TTYInfo.fDSRInFlow      TTYInfo.fDSRInFlow
//#define TTYInfo.fXonXoffOutFlow TTYInfo.fXonXoffOutFlow
//#define TTYInfo.fXonXoffInFlow  TTYInfo.fXonXoffInFlow
//#define TTYInfo.fTXafterXoffSent  TTYInfo.fTXafterXoffSent
//
//#define TTYInfo.fNoReading      TTYInfo.fNoReading
//#define TTYInfo.fNoWriting      TTYInfo.fNoWriting
//#define TTYInfo.fNoEvents       TTYInfo.fNoEvents
//#define TTYInfo.fNoStatus       TTYInfo.fNoStatus
//#define TTYInfo.fDisplayTimeouts   TTYInfo.fDisplayTimeouts)



//---------------------------------------------------------------------------
//  End of File: ttyinfo.h
//---------------------------------------------------------------------------