www.pudn.com > VoiceModem.zip > Tty.h
//--------------------------------------------------------------------------- // // Module: tty.h // // Purpose: // This is the header file for the TTY sample. // //--------------------------------------------------------------------------- #define USECOMM // yes, we need the COMM API #define STRICT // be bold! #include#include #include #include #include "version.h" #include "resource.h" // constant definitions #define GWL_PTTYINFO 0 #define ABOUTDLG_USEBITMAP 1 #define ATOM_TTYINFO 0x100 // terminal size #define MAXROWS 25 #define MAXCOLS 80 #define MAXBLOCK 80 #define MAXLEN_TEMPSTR 81 #define RXQUEUE 4096 #define TXQUEUE 4096 // cursor states #define CS_HIDE 0x00 #define CS_SHOW 0x01 // Flow control flags #define FC_DTRDSR 0x01 #define FC_RTSCTS 0x02 #define FC_XONXOFF 0x04 // 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 typedef struct tagTTYINFO { HANDLE idComDev ; BYTE bPort, abScreen[ MAXROWS * MAXCOLS ] ; BOOL fConnected, fXonXoff, fLocalEcho, fNewLine, fAutoWrap, fUseCNReceive, fDisplayErrors; BYTE bByteSize, bFlowCtrl, bParity, bStopBits ; WORD wBaudRate, wCursorState ; HFONT hTTYFont ; LOGFONT lfTTYFont ; DWORD rgbFGColor ; int xSize, ySize, xScroll, yScroll, xOffset, yOffset, nColumn, nRow, xChar, yChar ; } TTYINFO, *PTTYINFO ; // macros ( for easier readability ) #define GETHINST( hWnd ) ((HINSTANCE) GetWindowLong( hWnd, GWL_HINSTANCE )) #define COMDEV( x ) (x -> idComDev) #define PORT( x ) (x -> bPort) #define SCREEN( x ) (x -> abScreen) #define CONNECTED( x ) (x -> fConnected) #define XONXOFF( x ) (x -> fXonXoff) #define LOCALECHO( x ) (x -> fLocalEcho) #define NEWLINE( x ) (x -> fNewLine) #define AUTOWRAP( x ) (x -> fAutoWrap) #define BYTESIZE( x ) (x -> bByteSize) #define FLOWCTRL( x ) (x -> bFlowCtrl) #define PARITY( x ) (x -> bParity) #define STOPBITS( x ) (x -> bStopBits) #define BAUDRATE( x ) (x -> wBaudRate) #define CURSORSTATE( x ) (x -> wCursorState) #define HTTYFONT( x ) (x -> hTTYFont) #define LFTTYFONT( x ) (x -> lfTTYFont) #define FGCOLOR( x ) (x -> rgbFGColor) #define XSIZE( x ) (x -> xSize) #define YSIZE( x ) (x -> ySize) #define XSCROLL( x ) (x -> xScroll) #define YSCROLL( x ) (x -> yScroll) #define XOFFSET( x ) (x -> xOffset) #define YOFFSET( x ) (x -> yOffset) #define COLUMN( x ) (x -> nColumn) #define ROW( x ) (x -> nRow) #define XCHAR( x ) (x -> xChar) #define YCHAR( x ) (x -> yChar ) #define USECNRECEIVE( x ) (x -> fUseCNReceive) #define DISPLAYERRORS( x ) (x -> fDisplayErrors) #define SET_PROP( x, y, z ) SetProp( x, MAKEINTATOM( y ), z ) #define GET_PROP( x, y ) GetProp( x, MAKEINTATOM( y ) ) #define REMOVE_PROP( x, y ) RemoveProp( x, MAKEINTATOM( y ) ) // global stuff char gszTTYClass[] = "TTYWndClass" ; char gszAppName[] = "TTY" ; HANDLE ghAccel ; DWORD gawBaudTable[] = { CBR_110, CBR_300, CBR_600, CBR_1200, CBR_2400, CBR_4800, CBR_9600, CBR_14400, CBR_19200, CBR_38400, CBR_56000, CBR_128000, CBR_256000 } ; DWORD gawParityTable[] = { NOPARITY, EVENPARITY, ODDPARITY, MARKPARITY, SPACEPARITY } ; DWORD gawStopBitsTable[] = { ONESTOPBIT, ONE5STOPBITS, TWOSTOPBITS } ; // function prototypes (private) BOOL InitApplication( HANDLE ) ; HWND InitInstance( HANDLE, int ) ; LRESULT CreateTTYInfo( HWND ) ; BOOL DestroyTTYInfo( HWND ) ; BOOL ResetTTYScreen( HWND, PTTYINFO ) ; BOOL KillTTYFocus( HWND ) ; BOOL PaintTTY( HWND ) ; BOOL SetTTYFocus( HWND ) ; BOOL ScrollTTYHorz( HWND, WORD, WORD ) ; BOOL ScrollTTYVert( HWND, WORD, WORD ) ; BOOL SizeTTY( HWND, WORD, WORD ) ; BOOL ProcessTTYCharacter( HWND, BYTE ) ; BOOL WriteTTYBlock( HWND, LPSTR, int ) ; int ReadCommBlock( HWND, LPSTR, int ) ; BOOL WriteCommByte( HWND, BYTE ) ; BOOL MoveTTYCursor( HWND ) ; BOOL OpenConnection( HWND ) ; BOOL SetupConnection() ; BOOL CloseConnection( HWND ) ; BOOL ProcessCOMMNotification( HWND, WORD, LONG ) ; VOID GoModalDialogBoxParam( HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM ) ; VOID FillComboBox( HINSTANCE, HWND, int, DWORD *, WORD, WORD ) ; BOOL SelectTTYFont( HWND ) ; BOOL SettingsDlgInit( HWND ) ; BOOL SettingsDlgTerm( HWND ) ; // function prototypes (public) LRESULT FAR PASCAL TTYWndProc( HWND, UINT, WPARAM, LPARAM ) ; BOOL FAR PASCAL AboutDlgProc( HWND, UINT, WPARAM, LPARAM ) ; BOOL FAR PASCAL SettingsDlgProc( HWND, UINT, WPARAM, LPARAM ) ; BOOL FAR PASCAL DCBDlgProc( HWND, UINT, WPARAM, LPARAM ) ; BOOL FAR PASCAL CommpropDlgProc( HWND, UINT, WPARAM, LPARAM ) ; BOOL FAR PASCAL TimeoutDlgProc( HWND, UINT, WPARAM, LPARAM ) ; BOOL FAR PASCAL PhoneNumberDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); BOOL FAR PASCAL SendFileDlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam ); //--------------------------------------------------------------------------- // End of File: tty.h //---------------------------------------------------------------------------