/*
 * Windows H19 Terminal Emulator Function declarations
 * 
 * Written by William S. Hall
 *	      3665 Benton Street, #66
 *	      Santa Clara, CA 95051
 */

/* undocumented functions */
LPSTR FAR PASCAL lstrcpy(LPSTR, LPSTR);
LPSTR FAR PASCAL lstrcat(LPSTR, LPSTR);
int   FAR PASCAL lstrlen(LPSTR);

/* functions from main module */
LONG FAR PASCAL MainWndProc(HWND,unsigned,WORD,LONG);
LONG FAR PASCAL MainWndSubclassProc(HWND,unsigned,WORD,LONG);
void BroadcastWinIniChange(void);

/* functions from init module */
BOOL FAR InitProgram(HANDLE, HANDLE, LPSTR, short);
void MainWndCreate(HWND,LONG);
void TermWndCreate(HWND,LONG);
void StatWndCreate(HWND,LONG);

/* functions from function support module */
void ProcessSetCommand(int ch);
void ProcessResetCommand(int ch);
void NEAR H19LocalKeyDown(WORD keycode);
BOOL NEAR DoMessage(void);
int NEAR H19StringInput(BYTE *str, short len);
void NEAR MainWndPaint(HWND, HDC);
long NEAR MainSysCommand(HWND,unsigned,WORD,LONG);
void NEAR SizeWindow(WORD, WORD, WORD);
void NEAR WndCommand(HWND,WORD,LONG);
void NEAR ProcessComm(void);
void NEAR WriteToPort(short, BYTE FAR *, int);

/* functions from terminal display module */
long FAR PASCAL TermWndProc(HWND,unsigned,WORD,LONG);
long FAR PASCAL StatWndProc(HWND,unsigned,WORD,LONG);

/* functions from seldom-used functions module */
BOOL FAR PASCAL AboutBoxProc(HWND,unsigned,WORD,LONG);
BOOL FAR PASCAL SetCommParams(HWND,unsigned,WORD,LONG);
BOOL FAR PASCAL SetTermParams(HWND,unsigned,WORD,LONG);
BOOL FAR PASCAL SetStringParams(HWND,unsigned,WORD,LONG);
void CloseCommPort(HWND hWnd, short *pCid);
void ShowMessage(HWND hWnd, int msgnum);
void ResetTerminal(void);
void SendStatusLine(PTWND);
void SendScreen(PTWND);
