home *** CD-ROM | disk | FTP | other *** search
/ Columbia Kermit / kermit.zip / archives / win100.zip / winh19.h < prev    next >
C/C++ Source or Header  |  1991-10-20  |  10KB  |  427 lines

  1. /*
  2.  * Header file for Windows H19 terminal emulator
  3.  * 
  4.  * Written by William S. Hall
  5.  *          3665 Benton Street, #66
  6.  *          Santa Clara, CA 95051
  7.  */
  8.  
  9. #if !defined(EXTERN)
  10. #define EXTERN extern
  11. #endif
  12.  
  13. /* special messages */
  14. #define WH19_STRINGINPUT    WM_USER
  15. #define WH19_COMMAND        WM_USER+1
  16. #define WH19_CARETFUNCTION    WM_USER+2
  17. #define WH19_SAVECURSORPOSITION    WM_USER+3
  18. #define WH19_CURSORPOSITION      WM_USER+4
  19. #define WH19_SLAPSCREEN        WM_USER+5
  20.  
  21. /* commands */
  22. #define H19_MOVECURSORRIGHT    0
  23. #define H19_MOVECURSORLEFT    1
  24. #define H19_MOVECURSORUP    2
  25. #define H19_MOVECURSORDOWN    3
  26. #define H19_ADJUSTWINDOW    4
  27. #define H19_POSITIONCURSORROW    5
  28. #define H19_POSITIONCURSORCOL    6
  29. #define H19_CURSORHOME        7
  30. #define H19_CLRSCREEN        8
  31. #define H19_CLRTOENDOFSCREEN    9
  32. #define H19_CLRTOENDOFLINE    10
  33. #define H19_ERASELINE        11
  34. #define H19_CLRTOTOPOFSCREEN    12
  35. #define H19_CLRTOSTARTOFLINE    13
  36. #define H19_INSERTLINE        14
  37. #define H19_DELETELINE        15
  38. #define H19_DELETECHAR        16
  39. #define H19_REVERSELINEFEED    17
  40. #define H19_SAVECURSOR        18
  41. #define H19_GETCURSOR        19
  42.  
  43. /* caret commands */
  44. #define H19_CREATECARET        0
  45. #define H19_DESTROYCARET    1
  46. #define H19_SHOWCARET        2
  47. #define H19_HIDECARET        3
  48.  
  49. /* command states */
  50. #define NO_COMMAND    0
  51. #define ESC_COMMAND    1
  52. #define YPOS_COMMAND    2
  53. #define XPOS_COMMAND    3
  54. #define SET_COMMAND    4
  55. #define RESET_COMMAND    5
  56. #define SETBAUD_COMMAND 6
  57.  
  58. /* screen attribute */
  59. #define NORMAL 0
  60. #define REVERSE 1
  61.  
  62. /* dialog boxes */
  63. #define DT_ABOUT    1
  64. #define DT_COMM        2
  65. #define DT_TERM        3
  66. #define DT_STRING    4
  67.  
  68. /* controls  from comm box */
  69. #define IDD_BAUDRATE    100
  70. #define IDD_110        101
  71. #define IDD_150        102
  72. #define IDD_300        103
  73. #define IDD_600        104
  74. #define IDD_1200    105
  75. #define IDD_1800    106
  76. #define IDD_2000    107
  77. #define IDD_2400    108
  78. #define IDD_3600    109
  79. #define IDD_4800    110
  80. #define IDD_7200    111
  81. #define IDD_9600    112
  82. #define IDD_19200    113
  83. #define IDD_OTHER    114
  84. #define IDD_NONE    115
  85. #define IDD_ODD        116
  86. #define IDD_EVEN    117
  87. #define IDD_MARK    118
  88. #define IDD_SPACE    119
  89. #define IDD_7BIT    120
  90. #define IDD_8BIT    121
  91. #define IDD_COM1    122
  92. #define IDD_COM2    123
  93. #define IDD_DEFPORT    124
  94. #define IDD_SAVE    125
  95.  
  96. /* controls from term box */
  97. #define IDD_HALF    100
  98. #define IDD_FULL    101
  99. #define IDD_HEATH    102
  100. #define IDD_ANSI    103
  101. #define IDD_NORMAL    104
  102. #define IDD_SHIFTED    105
  103. #define IDD_LINE    106
  104. #define IDD_BLOCK    107
  105. #define IDD_WRAP    108
  106. #define IDD_LFCR    109
  107. #define IDD_CRLF    110
  108.  
  109. /* controls from key edit box */
  110. #define IDD_STRINGEDIT    100
  111. #define IDD_F1        101
  112. #define IDD_F2        102
  113. #define IDD_F3        103
  114. #define IDD_F4        104
  115. #define IDD_F5        105
  116. #define IDD_F6        106
  117. #define IDD_F7        107
  118. #define IDD_F8        108
  119. #define IDD_F9        109
  120. #define IDD_F10        110
  121. #define IDD_F11        111
  122. #define IDD_F12        112
  123. #define IDD_NOSHIFT    120
  124. #define IDD_SHIFT    121
  125. #define IDD_CONTROL    122
  126. #define IDD_CTRLSHIFT    123
  127. #define IDD_READSTRING    124
  128. #define IDD_SAVESTRING    125
  129.  
  130. /* strings */
  131. #define IDS_APPNAME    100
  132. #define IDS_ABOUT    101
  133. #define IDS_WINTITLE    102
  134. #define IDS_OFFLINE    103
  135. #define IDS_ONLINE    104
  136. #define IDS_DISPLAYNAME    105
  137. #define IDS_NOCOMOPEN    106
  138. #define IDS_NOCOMSET    107
  139. #define IDS_ADDDEFAULTS    108
  140. #define IDS_FIRSTPORT    109
  141. #define IDS_SECONDPORT    110
  142. #define IDS_COM1    111
  143. #define IDS_COM2    112
  144. #define IDS_CONTINUEPROG 113
  145.  
  146. #define IDS_BLOCKCURSOR 114
  147. #define IDS_KEYCLICK    115
  148. #define IDS_WRAPAROUND    116
  149. #define IDS_AUTOLFONCR    117
  150. #define IDS_AUTOCRONLF    118
  151. #define IDS_ANSIMODE    119
  152. #define IDS_SHIFTEDKEYPAD 120
  153. #define IDS_FULLDUPLEX    121
  154.  
  155. #define IDS_CANNOTCLOSECOM    122
  156. #define IDS_TERMNAME        123
  157. #define IDS_STATNAME        124
  158. #define IDS_TERMINAL        125
  159. #define IDS_CANNOTCREATETERM    126
  160. #define IDS_CANNOTCREATESTATUS    127
  161. #define IDS_LINES        128
  162. #define IDS_COLUMNS        129
  163. #define IDS_COMMSTR        130
  164. #define IDS_CANNOTCHANGEPORT    131
  165.  
  166. #define IDS_SPKEYID1        200
  167. #define IDS_SPKEYID2        201
  168. #define IDS_SPKEYID3        202
  169. #define IDS_SPKEYID4        203
  170. #define IDS_SPKEYID5        204
  171. #define IDS_SPKEYID6        205
  172. #define IDS_SPKEYID7        206
  173. #define IDS_SPKEYID8        207
  174. #define IDS_SPKEYID9        208
  175. #define IDS_SPKEYID10        209
  176. #define IDS_SPKEYID11        210
  177. #define IDS_SPKEYID12        211
  178.  
  179. #define IDS_SSPKEYID1        220
  180. #define IDS_SSPKEYID2        221
  181. #define IDS_SSPKEYID3        222
  182. #define IDS_SSPKEYID4        223
  183. #define IDS_SSPKEYID5        224
  184. #define IDS_SSPKEYID6        225
  185. #define IDS_SSPKEYID7        226
  186. #define IDS_SSPKEYID8        227
  187. #define IDS_SSPKEYID9        228
  188. #define IDS_SSPKEYID10        229
  189. #define IDS_SSPKEYID11        230
  190. #define IDS_SSPKEYID12        231
  191.  
  192. #define IDS_CSPKEYID1        240
  193. #define IDS_CSPKEYID2        241
  194. #define IDS_CSPKEYID3        242
  195. #define IDS_CSPKEYID4        243
  196. #define IDS_CSPKEYID5        244
  197. #define IDS_CSPKEYID6        245
  198. #define IDS_CSPKEYID7        246
  199. #define IDS_CSPKEYID8        247
  200. #define IDS_CSPKEYID9        248
  201. #define IDS_CSPKEYID10        249
  202. #define IDS_CSPKEYID11        250
  203. #define IDS_CSPKEYID12        251
  204.  
  205. #define IDS_CSSPKEYID1        260
  206. #define IDS_CSSPKEYID2        261
  207. #define IDS_CSSPKEYID3        262
  208. #define IDS_CSSPKEYID4        263
  209. #define IDS_CSSPKEYID5        264
  210. #define IDS_CSSPKEYID6        265
  211. #define IDS_CSSPKEYID7        266
  212. #define IDS_CSSPKEYID8        267
  213. #define IDS_CSSPKEYID9        268
  214. #define IDS_CSSPKEYID10        269
  215. #define IDS_CSSPKEYID11        270
  216. #define IDS_CSSPKEYID12        271
  217.  
  218. /* menus */
  219. #define IDM_ABOUT    300
  220. #define IDM_OFFLINE    301
  221. #define IDM_ONLINE    302
  222. #define IDM_COMM    303
  223. #define IDM_TERM    304
  224. #define IDM_SPECIALKEYS 305
  225. #define IDM_COPY    306
  226. #define IDM_PASTE    307
  227. #define IDM_BREAK    308
  228. #define IDM_RESET    309
  229. #define IDM_SCROLL    310
  230. #define IDM_SHIFTSCROLL    311
  231. #define IDM_CLEARCOM    312
  232.  
  233. /* accelerators */
  234. #define IDM_F1        400
  235. #define IDM_F2        401
  236. #define IDM_F3        402
  237. #define IDM_F4        403
  238. #define IDM_F5        404
  239. #define IDM_F6        405
  240. #define IDM_F7        406
  241. #define IDM_F8        407
  242. #define IDM_F9        408
  243. #define IDM_F10        409
  244. #define IDM_F11        410
  245. #define IDM_F12        411
  246.  
  247. #define IDM_SF1        500
  248. #define IDM_SF2        501
  249. #define IDM_SF3        502
  250. #define IDM_SF4        503
  251. #define IDM_SF5        504
  252. #define IDM_SF6        505
  253. #define IDM_SF7        506
  254. #define IDM_SF8        507
  255. #define IDM_SF9        508
  256. #define IDM_SF10    509
  257. #define IDM_SF11    510
  258. #define IDM_SF12    511
  259.  
  260. #define IDM_CF1        600
  261. #define IDM_CF2        601
  262. #define IDM_CF3        602
  263. #define IDM_CF4        603
  264. #define IDM_CF5        604
  265. #define IDM_CF6        605
  266. #define IDM_CF7        606
  267. #define IDM_CF8        607
  268. #define IDM_CF9        608
  269. #define IDM_CF10    609
  270. #define IDM_CF11    610
  271. #define IDM_CF12    611
  272.  
  273. #define IDM_CSF1    700
  274. #define IDM_CSF2    701
  275. #define IDM_CSF3    702
  276. #define IDM_CSF4    703
  277. #define IDM_CSF5    704
  278. #define IDM_CSF6    705
  279. #define IDM_CSF7    706
  280. #define IDM_CSF8    707
  281. #define IDM_CSF9    708
  282. #define IDM_CSF10    709
  283. #define IDM_CSF11    710
  284. #define IDM_CSF12    711
  285.  
  286. /* comm stuff */
  287. #define RXQUESIZE    512
  288. #define BUFSIZE        RXQUESIZE - 1
  289. #define TXQUESIZE    128
  290. #define DEF_TABSTOP     8
  291.  
  292. /* term window size */
  293. #define H19LINES     24
  294. #define H19COLS      80
  295. #define TERMMAXLINES    40
  296. #define TERMMAXCOLS    95
  297.  
  298. /* misc */
  299. #define VK_SCROLL 0x91
  300.  
  301. typedef struct MainWndData {
  302.     HWND hWnd;
  303.     short BottomTextLine;        /* in client coordinates */
  304.     short SCTopTextLine, SCBottomTextLine;    /* in screen coordinates */
  305.     short Width, Height;
  306. } MWND;
  307.  
  308. typedef struct TermWndData {
  309.     HWND hWnd;
  310.     HDC hDC;
  311.     HANDLE hVidBuffer;
  312.     char *pVidBuffer;        /* pointer to buffer */
  313.     short Xpos, Ypos;
  314.     short oVidLastLine;        /* offset to last line in buffer */
  315.     short oTopLine;        /* top line of screen */
  316.     short oCurrentLine;        /* current line of screen */
  317.     short oBottomLine;        /* bottom line of screen */
  318.     short CurLineOffset;    /* offset into current screen */
  319.     short MaxCols, MaxLines;    /* screen size in chars */
  320.     short ScreenSize;
  321.     short TabLimit;
  322.     short Width, Height;    /* screen size */
  323.     short CharWidth, CharHeight;
  324. } TWND;
  325. typedef TWND *PTWND;
  326.  
  327. /* structures */
  328. struct tagS401 {
  329.     WORD BaudRate;
  330.     BYTE ByteSize;
  331.     BYTE Parity;
  332.     BYTE StopBits;
  333. };
  334.  
  335. struct tagS402 {
  336.     BOOL BlockCursor;
  337.     BOOL KeyClick;
  338.     BOOL WrapAround;
  339.     BOOL LFonCR;
  340.     BOOL CRonLF;
  341.     BOOL ANSIMode;
  342.     BOOL ShiftedKeypad;
  343.     BOOL FullDuplex;
  344. };
  345.  
  346. struct CommonData {
  347.     BOOL BlockCursor;
  348.     BOOL KeyClick;
  349.     BOOL WrapAround;
  350.     BOOL LFonCR;
  351.     BOOL CRonLF;
  352.     BOOL ANSIMode;
  353.     BOOL ShiftedKeypad;
  354.     BOOL FullDuplex;
  355.     BOOL InverseVideo;
  356.     BOOL GraphicsMode;
  357.     BOOL ICToggle;
  358.     BOOL AltKeypad;
  359.     BOOL CursorOff;
  360.     BOOL OwnCaret;
  361.     BOOL KeyboardDisabled;
  362.     BOOL HoldScreen;
  363.     BOOL ScrollLock;
  364.     BYTE CharAttribute;
  365.     HFONT hScreenFont;
  366.     int CommandState;
  367.     BOOL StatOpen;
  368.     BOOL StatOverlayTerm;
  369.     short CurSaveRow, CurSaveCol;
  370.     int LineState;
  371.     int BreakFlag;
  372.     int ReleaseCount;
  373. };
  374.  
  375. typedef struct GlobalBuf {
  376.     HANDLE hBuf;
  377.     LONG lBufSize;
  378.     LONG lBufHead;
  379.     LONG lBufTail;
  380. } GLOBALBUF;
  381.  
  382. typedef GLOBALBUF *PGLOBALBUF;
  383.  
  384. /* globals */
  385. #define BAUDTABLESIZE 13
  386.  
  387. EXTERN WORD BaudRateTable[BAUDTABLESIZE]
  388. #if defined(INITIALIZE)
  389.     = {110,150,300,600,1200,1800,2000,2400,3600,4800,7200,9600,19200}
  390. #endif
  391. ;
  392.  
  393. EXTERN MWND MW;
  394. EXTERN TWND TW;
  395. EXTERN TWND SW;
  396. EXTERN struct CommonData CD;
  397. EXTERN struct tagS401 S401;
  398. EXTERN struct tagS402 S402;
  399. EXTERN GLOBALBUF GB;
  400.  
  401. #define WINTITLELEN    50
  402. EXTERN char szAppName[10];
  403. EXTERN char szTermName[10];
  404. EXTERN char szStatName[10];
  405. EXTERN char szWinTitle[WINTITLELEN];
  406. EXTERN char szOffline[20];
  407. EXTERN char szOnline[20];
  408. EXTERN char *szFKey[12];
  409. EXTERN char *szSFKey[12];
  410. EXTERN char *szCFKey[12];
  411. EXTERN char *szCSFKey[12];
  412.  
  413. EXTERN short cid;
  414. EXTERN DCB CommData;
  415.  
  416. EXTERN HANDLE hInst;
  417. EXTERN HANDLE hPrevInst;
  418. EXTERN HWND hWndActive;
  419. EXTERN HWND hAccel;
  420.  
  421. EXTERN FARPROC fpTerminal;
  422. EXTERN HANDLE hCommandLine;
  423. EXTERN char *pCommandLine;
  424. EXTERN HANDLE hWndNext;
  425. EXTERN HANDLE hClipData;
  426. EXTERN LPSTR pClipData;
  427.