home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / thnker.zip / THUNKER.H < prev    next >
Text File  |  1994-05-01  |  16KB  |  405 lines

  1. /* This header written by Robert E. Canup II to allow 32 bit C to access KBD 
  2. *   MOU and VIO 16-bit functions. It is to be used with the THUNKER.LIB and 
  3. *   THUNKER.DLL files. It contains the information documented in Microsoft's 
  4. *   "OS/2 Programmers Reference" vols 3&4, as well as information in the IBM 
  5. *   book "OS/2 Programmers Guide"  by Ed Iacobucci. Header written 4/30/94 
  6. *   While great care has been taken to get both this header and the 
  7. *   accompanying .DLL file into a correct state, no guarantees can be given 
  8. *   as to its total functionality. This code is released into the public 
  9. *   domain. UNDER NO CIRCUMSTANCES SHALL THE AUTHOR BE LIABLE FOR ANY DAMAGES 
  10. *   OCCURRING FROM THE USE OF THIS SOFTWARE. Note to lawyers: forget it guys; 
  11. *   there are no deep pockets to put your greedy little fingers into. */
  12.  
  13. #define IO_WAIT 0
  14. #define IO_NOWAIT 1
  15. #define KEYBOARD_ECHO_ON                0x0002
  16. #define KEYBOARD_ECHO_OFF               0x0001
  17. #define KEYBOARD_BINARY_MODE            0x0004
  18. #define KEYBOARD_ASCII_MODE             0x0008
  19. #define KEYBOARD_MODIFY_STATE           0x0010
  20. #define KEYBOARD_MODIFY_INTERIM         0x0020
  21. #define KEYBOARD_MODIFY_TURNAROUND      0x0040
  22. #define KEYBOARD_2B_TURNAROUND          0x0080
  23. #define KEYBOARD_SHIFT_REPORT           0x0100
  24. #define ANSI_ON                         0x0001
  25. #define ANSI_OFF                        0x0000
  26. #define KR_KBDCHARIN                    0x0001
  27. #define KR_KBDPEEK                      0x0002
  28. #define KR_KBDFLUSHBUFFER               0x0004
  29. #define KR_KBDGETSTATUS                 0x0008
  30. #define KR_KBDSETSTATUS                 0x0010
  31. #define KR_KBDSTRINGIN                  0x0020
  32. #define KR_KBDOPEN                      0x0040
  33. #define KR_KBDCLOSE                     0x0080
  34. #define KR_KBDGETFOCUS                  0x0100
  35. #define KR_KBDFREEFOCUS                 0x0200
  36. #define KR_KBDGETCP                     0x0400
  37. #define KR_KBDSETCP                     0x0800
  38. #define KR_KBDXLATE                     0x1000
  39. #define KR_KBDSETCUSTXT                 0x2000
  40. #define MOUSE_QUEUEBUSY                 0x0001
  41. #define MOUSE_BLOCKREAD                 0x0002
  42. #define MOUSE_FLUSH                     0x0004
  43. #define MOUSE_UNSUPPORTED_MODE          0x0008
  44. #define MOUSE_DISABLED                  0x0100
  45. #define MOUSE_MICKEYS                   0x0200
  46. #define MOUSE_MOTION                    0x0001
  47. #define MOUSE_MOTION_WITH_BN1_DOWN      0x0002
  48. #define MOUSE_BN1_DOWN                  0x0004
  49. #define MOUSE_MOTION_WITH_BN2_D0WN      0x0008
  50. #define MOUSE_BN2_DOWN                  0x0010
  51. #define MOUSE_MOTION_WITH_BN3_DOWN      0x0020
  52. #define MOUSE_BN3_DOWN                  0x0040
  53. #define MR_MOUGETNUMBUTTONS             0x0001
  54. #define MR_MOUGETNUMMICKEYS             0x0002
  55. #define MR_MOUGETDEVSTATUS              0x0004
  56. #define MR_MOUGETNUMQUEEL               0x0008
  57. #define MR_MOUREADEVENTQUE              0x0010
  58. #define MR_MOUGETSCALEFACT              0x0020
  59. #define MR_MOUGETEVENTMASK              0x0040
  60. #define MR_MOUOPEN                      0x0080
  61. #define MR_MOUCLOSE                     0x0100
  62. #define MR_MOUGETPTRSHAPE               0x0200
  63. #define MR_MOUSETPTRSHAPE               0x0400
  64. #define MR_MOUDRAWPTR                   0x0800
  65. #define MR_MOUREMOVEPTR                 0x1000
  66. #define MR_MOUGETPTRPOS                 0x2000
  67. #define MR_MOUSETPTRPOS                 0x4000
  68. #define MR_MOUINITREAL                  0x8000
  69. #define MR_MOUSETDEVSTATUS              0x00010000
  70. #define VR_VIOGETCURPOS                 0x00000001
  71. #define VR_VIOGETCURTYPE                0x00000002
  72. #define VR_VIOGETMODE                   0x00000004
  73. #define VR_VIOGETBUF                    0x00000008
  74. #define VR_VIOGETPHYSBUF                0x00000010
  75. #define VR_VIOSETCURPOS                 0x00000020
  76. #define VR_VIOSETCURTYPE                0x00000040
  77. #define VR_VIOSETMODE                   0x00000080
  78. #define VR_VIOSHOWBUF                   0x00000100
  79. #define VR_VIOREADCHARSTR               0x00000200
  80. #define VR_VIOREADCELLSTR               0x00000400
  81. #define VR_VIOWRTNCHAR                  0x00000800
  82. #define VR_VIOWRTNATTR                  0x00001000
  83. #define VR_VIOWRTNCELL                  0x00002000
  84. #define VR_VIOWRTTTY                    0x00004000
  85. #define VR_VIOWRTCHARSTR                0x00008000
  86. #define VR_VIOWRTCHARSTRATT             0x00010000
  87. #define VR_VIOWRTCELLSTR                0x00020000
  88. #define VR_VIOSCROLLUP                  0x00040000
  89. #define VR_VIOSCROLLDN                  0x00080000
  90. #define VR_VIOSCROLLLF                  0x00100000
  91. #define VR_VIOSCROLLRT                  0x00200000
  92. #define VR_VIOSETANSI                   0x00400000
  93. #define VR_VIOGETANSI                   0x00800000
  94. #define VR_VIOPRTSC                     0x01000000
  95. #define VR_VIOSCRLOCK                   0x02000000
  96. #define VR_VIOSCRUNLOCK                 0x04000000
  97. #define VR_VIOSAVREDRAWWAIT             0x08000000
  98. #define VR_VIOSAVREDRAWUNDO             0x10000000
  99. #define VR_VIOPOPUP                     0x20000000
  100. #define VR_VIOENDPOPUP                  0x40000000
  101. #define VR_VIOPPRTSCTOGGLE              0x80000000
  102. #define VR_VIOMODEWAIT                  0x00000001
  103. #define VR_VIOMODEUNDO                  0x00000002
  104. #define VR_VIOGETFONT                   0x00000004
  105. #define VR_VIOGETCONFIG                 0x00000008
  106. #define VR_VIOSETCP                     0x00000010
  107. #define VR_VIOGETCP                     0x00000020
  108. #define VR_VIOSETFONT                   0x00000040
  109. #define VR_VIOGETSTATE                  0x00000080
  110. #define VR_VIOSETSTATE                  0x00000100
  111.  
  112.  
  113.  
  114. typedef struct _VIOCURSORINFO{
  115.         USHORT  yStart;
  116.         USHORT  cEnd;
  117.         USHORT  cx;
  118.         USHORT  attr;
  119. } VIOCURSORINFO;
  120.  
  121. typedef struct _KBDKEYINFO{
  122.         UCHAR   chChar;
  123.         UCHAR   chScan;
  124.         UCHAR   fbStatus;
  125.         UCHAR   bNleShift;
  126.         USHORT  fsState;
  127.         ULONG   time;
  128. } KBDKEYINFO;
  129.  
  130. typedef struct _KBDINFO {
  131.         USHORT  cb;
  132.         USHORT  fsMask;
  133.         USHORT  chTurnAround;
  134.         USHORT  fsInterim;
  135.         USHORT  fsState;
  136. } KBDINFO;
  137.  
  138. typedef struct _STRINGINBUF {
  139.         USHORT  cb;
  140.         USHORT  cchIn;
  141. } STRINGINBUF ;
  142.  
  143. typedef struct _KBDTRANS {
  144.         UCHAR    chChar ;
  145.         UCHAR    chScan ;
  146.         UCHAR    fbStatus ;
  147.         UCHAR    nNleShift ;
  148.         USHORT   fsState ;
  149.         ULONG    time ;
  150.         USHORT   fsDD ;
  151.         USHORT   fsXlate ;
  152.         USHORT    fsShift ;
  153.         USHORT    sZero ;
  154. } KBDTRANS ;
  155.  
  156. typedef struct _MOUQUEINFO {
  157.         USHORT    cEvents ;
  158.         USHORT    cmaxEvents ;
  159. } MOUQUEINFO ;
  160.  
  161. typedef struct _PTRLOC {
  162.         USHORT    row ;
  163.         USHORT    col ;
  164. } PTRLOC ;
  165.  
  166. typedef struct _PTRSHAPE {
  167.         USHORT    cb ;
  168.         USHORT    col ;
  169.         USHORT    row ;
  170.         USHORT    colHot ;
  171.         USHORT    rowHot ;
  172. } PTRSHAPE ;
  173.  
  174. typedef struct _SCALEFACT {
  175.         USHORT    rowScale ;
  176.         USHORT    colScale ;
  177. } SCALEFACT ;
  178.  
  179. typedef struct _MOUEVENTINFO {
  180.         USHORT  fs;
  181.         ULONG   time;
  182.         USHORT  row;
  183.         USHORT  col;
  184. } MOUEVENTINFO;
  185.  
  186. typedef struct _NOPTRRECT {
  187.         USHORT    row ;
  188.         USHORT    col ;
  189.         USHORT    cRow ;
  190.         USHORT    cCol ;
  191. } NOPTRRECT ;
  192.  
  193.  
  194. typedef struct _VIOCONFIGINFO {
  195.         USHORT    cb ;
  196.         USHORT    adapter ;
  197.         USHORT    display ;
  198.         ULONG      cbMemory ;
  199. } VIOCONFIGINFO ;
  200.  
  201. typedef struct _VIOFONTINFO {
  202.         USHORT    cb ;
  203.         USHORT    type ;
  204.         USHORT    cxCell ;
  205.         USHORT    cyCell ;
  206.         PVOID      pbData ;
  207.         USHORT    cbData ;
  208. } VIOFONTINFO ;
  209.  
  210. typedef struct _VIOMODEINFO {
  211.         USHORT    cb ;
  212.         UCHAR     fbType ;
  213.         UCHAR     color ;
  214.         USHORT    col ;
  215.         USHORT    row ;
  216.         USHORT    hres ;
  217.         USHORT    vres ;
  218.         UCHAR     fmt_ID ;
  219.         UCHAR     attrib ;
  220.         ULONG     buf_addr ;
  221.         ULONG     buf_length ;
  222.         ULONG     partial_length ;
  223.         PCH        ext_data_addr ;
  224. } VIOMODEINFO ;
  225.  
  226. typedef struct _VIOPHYSBUF {
  227.         PBYTE      pBuf ;
  228.         ULONG      cb ;
  229.         ULONG      asel ;
  230. } VIOPHYSBUF ;
  231.  
  232. typedef struct _VIOPALSTATE {
  233.         USHORT    cb ;
  234.         USHORT    type ;
  235.         USHORT    iFirst ;
  236.         USHORT    scolor[1] ;
  237. } VIOPALSTATE ;
  238.  
  239. typedef struct _VIOOVERSCAN {
  240.         USHORT    cb ;
  241.         USHORT    type ;
  242.         USHORT    color ;
  243. } VIOOVERSCAN ;
  244.  
  245. typedef struct _VIOINTENSITY {
  246.         USHORT    cb ;
  247.         USHORT    type ;
  248.         USHORT    FS ;
  249. } VIOINTENSITY ;
  250.  
  251. typedef struct _VIOSETULINELOC {
  252.         USHORT    cb ;
  253.         USHORT    type ;
  254.         USHORT    scanline ;
  255. } VIOSETULINELOC ;
  256.  
  257. typedef struct _VIOSETTARGET {
  258.         USHORT    cb ;
  259.         USHORT    type ;
  260.         USHORT    defaultalgorithm ;
  261. } VIOSETTARGET ;
  262.  
  263. typedef struct _VIOCOLORREG {
  264.         USHORT    cb ;
  265.         USHORT    type ;
  266.         USHORT    firstcolorreg;
  267.         USHORT    numcolorreg ;
  268.         PCH        colorregaddr ;
  269. } VIOCOLORREG ;
  270.  
  271. typedef struct _KBDHWID {
  272.         USHORT    cb ;
  273.         USHORT    idKbd ;
  274.         USHORT    usReserved1 ;
  275.         USHORT    usReserved2 ;
  276.  } KBDHWID ;
  277.  
  278.  
  279.  
  280. typedef VIOPHYSBUF *PVIOPHYSBUF ;
  281. typedef VIOMODEINFO *PVIOMODEINFO ;
  282. typedef VIOFONTINFO *PVIOFONTINFO ;
  283. typedef VIOCURSORINFO *PVIOCURSORINFO ;
  284. typedef ULONG HVIO ;
  285. typedef KBDKEYINFO *PKBDKEYINFO ;
  286. typedef ULONG HKBD ;
  287. typedef HKBD *PHKBD ;
  288. typedef STRINGINBUF *PSTRINGINBUF ;
  289. typedef KBDTRANS *PKBDTRANS ;
  290. typedef ULONG HMOU ;
  291. typedef MOUQUEINFO *PMOUQUEINFO ;
  292. typedef PTRLOC *PPTRLOC ;
  293. typedef PTRSHAPE *PPTRSHAPE ;
  294. typedef SCALEFACT *PSCALEFACT ;
  295. typedef HMOU *PHMOU ;
  296. typedef MOUEVENTINFO *PMOUEVENTINFO ;
  297. typedef KBDTRANS *PKBDXLATE ;
  298. typedef KBDINFO *PKBDINFO ;
  299. typedef NOPTRRECT *PNOPTRRECT ;
  300. typedef ULONG HVPS ;
  301. typedef HVPS *PHVPS ;
  302. typedef VIOCONFIGINFO *PVIOCONFIGINFO ;
  303. typedef KBDHWID *PKBDHWID ;
  304.  
  305.  
  306. ULONG DosQFileMode(PSZ pszFileName, PULONG usAttribute, ULONG ulReserved) ;
  307. ULONG DosSetFileMode(PSZ pszFileName, ULONG usAttribute, ULONG ulReserved) ;
  308. ULONG KbdCharIn(PKBDKEYINFO pkbci, ULONG fWait, HKBD hkbd) ;
  309. ULONG KbdClose(HKBD hkbd) ;
  310. ULONG KbdDeRegister(void) ;
  311. ULONG KbdFlushBuffer(HKBD hkbd) ;
  312. ULONG KbdFreeFocus(HKBD hkbd) ;
  313. ULONG KbdGetCp(ULONG ulReserved, PULONG pidCodePage, HKBD hkbd) ;
  314. ULONG KbdGetFocus(ULONG fWait, HKBD hkbd) ;
  315. ULONG KbdGetHWID(PKBDHWID pkbdhwid, HKBD hkbd) ;
  316. ULONG KbdGetStatus( PKBDINFO pkbstKbdInfo, HKBD hkbd) ;
  317. ULONG KbdOpen(PHKBD phkbd) ;
  318. ULONG KbdPeek(PKBDKEYINFO pkbciKeyInfo, HKBD hkbd) ;
  319. ULONG KbdRegister(PSZ pszModuleName, PSZ pszEntryName, ULONG fFunctions) ; 
  320. ULONG KbdSetCp(ULONG ulReserved, ULONG idCodePage, HKBD hkbd) ;
  321. ULONG KbdSetCustXt(PULONG pulTransTbl, HKBD hkbd) ;
  322. ULONG KbdSetFgnd(void) ;
  323. ULONG KbdSetStatus(PKBDINFO pkbstKbdInfo, HKBD hkbd) ;
  324. ULONG KbdStringIn(PCH pchBuffer, PSTRINGINBUF psibLength, ULONG fWait, HKBD hkbd) ;
  325. ULONG KbdSynch(ULONG fwait) ;
  326. ULONG KbdXlate(PKBDXLATE pkbxlKeyStroke, HKBD hkbd) ;
  327. ULONG MouClose(HMOU hmou) ;
  328. ULONG MouDeRegister(void) ;
  329. ULONG MouDrawPtr(HMOU hmou) ;
  330. ULONG MouFlushQue(HMOU hmou) ;
  331. ULONG MouGetDevStatus(PULONG pfsDevStatus, HMOU hmou) ;
  332. ULONG MouGetEventMask(PULONG pfuEvents, HMOU hmou) ;
  333. ULONG MouGetNumButtons(PULONG pulButtons, HMOU hmou) ;
  334. ULONG MouGetNumMickeys(PULONG pulMickeys, HMOU hmou) ;
  335. ULONG MouGetNumQueEl(PMOUQUEINFO pmouqi, HMOU hmou) ;
  336. ULONG MouGetPtrPos(PPTRLOC pmouplPosition, HMOU hmou) ;
  337. ULONG MouGetPtrShape(PBYTE pbBuffer, PPTRSHAPE pmoupsinfo, HMOU hmou) ;
  338. ULONG MouGetScaleFact(PSCALEFACT pmouseFactors, HMOU hmou) ;
  339. ULONG MouInitReal(PSZ pszDriverName) ;
  340. ULONG MouOpen(PSZ pszDriverName, PHMOU phmou) ;
  341. ULONG MouReadEventQue(PMOUEVENTINFO pmouevEvent, PULONG pfWait, HMOU hmou) ;
  342. ULONG MouRegister(PSZ pszModuleName, PSZ pszEntryName, ULONG flFunctions) ;
  343. ULONG MouRemovePtr(PNOPTRRECT pmourtRect, HMOU hmou) ;
  344. ULONG MouSetDeviceStatus(PULONG pfuDevStatus, HMOU hmou) ;
  345. ULONG MouSetEventMask(PULONG pfuEvents, HMOU hmou) ;
  346. ULONG MouSetPtrPos(PPTRLOC pmouplPosition, HMOU hmou) ;
  347. ULONG MouSetPtrShape(PBYTE pbBuffer, PPTRSHAPE pmouplInfo, HMOU hmou) ;
  348. ULONG MouSetScaleFact(PSCALEFACT pmouscFactors, HMOU hmou) ;
  349. ULONG MouSynch(ULONG fWait) ;
  350. ULONG VioAssociate(HDC hdc, HVPS) ;
  351. ULONG VioCreateLogFont(PFATTRS pfat, LONG lcid, PSTR8 pstr8Name, HVPS hvps) ;
  352. ULONG VioCreatePS(PHVPS phvps, LONG cRows, LONG cColumns, LONG fFormat, LONG cAttrBytes, HVPS hvps) ;
  353. ULONG VioDeleteSetId(LONG lcid, HVPS hvps) ;
  354. ULONG VioDeRegister(void) ;
  355. ULONG VioDestroyPS(HVPS hvps) ;
  356. ULONG VioEndPopUp(HVIO hvio) ;
  357. ULONG VioGetAnsi(PULONG pfAnsi, HVIO hvio) ;
  358. ULONG VioGetBuf(PULONG pulLVB, PULONG pcbLVB, HVIO hvio) ;
  359. ULONG VioGetConfig(ULONG ulReserved, PVIOCONFIGINFO pvioin, HVIO hvio) ;
  360. ULONG VioGetCp(ULONG ulReserved, PULONG pidCodePage, HVIO hvio) ;
  361. ULONG VioGetCurPos(PULONG pulRow, PULONG pulColumn, HVIO hvio) ;
  362. ULONG VioGetCurType(PVIOCURSORINFO pvicciCursor, HVIO hvio) ;
  363. ULONG VioGetDeviceCellSize( PLONG pcRows, PLONG pcColumns, HVPS hvps) ;
  364. ULONG VioGetFont(PVIOFONTINFO pviofi, HVIO hvio) ;
  365. ULONG VioGetMode(PVIOMODEINFO pviomi, HVIO hvio) ;
  366. ULONG VioGetOrg(PLONG plRow, PLONG plColumn, HVPS hvps) ;
  367. ULONG VioGetPhysBuf(PVIOPHYSBUF pviopb, ULONG ulReserved) ;
  368. ULONG VioGetState(PVOID pvoidState, HVIO hvio) ;
  369. ULONG VioModeUndo(ULONG fRelinquish, ULONG fTerminate, HVIO hvio) ;
  370. ULONG VioModeWait(ULONG fEvent, PULONG pfNotify, HVIO hvio) ;
  371. ULONG VioPopUp(PULONG pfWait, HVIO hvio) ;
  372. ULONG VioPrtSc(HVIO hvio) ;
  373. ULONG VioPrtScToggle(HVIO hvio) ;
  374. ULONG VioQueryFonts(PLONG pcbMetrics, PFONTMETRICS pfm, LONG cbMetrics, PLONG pcFonts, PSZ pszFacename, ULONG flOptions, HVPS hvps) ;
  375. ULONG VioQuerySetIds(PLONG palcids, PSTR8 pachNames, PLONG palTypes, LONG cSets, HVPS hvps) ;
  376. ULONG VioReadCellStr(PCH pchCellString, PULONG pcb, ULONG ulRow, ULONG ulColumn, HVIO hvio) ;
  377. ULONG VioReadCharStr(PCH pchString, PULONG pcb, ULONG ulRow, ULONG ulColumn, HVIO hvio) ;
  378. ULONG VioRegister(PSZ pszModuleName, PSZ pszEntryName, ULONG flFunction1, ULONG flFunction2) ;
  379. ULONG VioSavRedrawUndo(ULONG fRelinquish, ULONG fTerminate, HVIO hvio) ;
  380. ULONG VioSavRedrawWait(ULONG fEvent, PULONG pfNotify, ULONG ulReserved) ;
  381. ULONG VioScrLock(ULONG fWait, PBYTE pfNotLocked, HVIO hvio) ;
  382. ULONG VioScrollDn(ULONG TopRow, ULONG LeftCol, ULONG BotRow, ULONG RtCol, ULONG cbLines, PBYTE pbCell,ULONG hvio) ;
  383. ULONG VioScrollLf(ULONG TopRow, ULONG LeftCol, ULONG BotRow, ULONG RtCol, ULONG cbLines, PBYTE pbCell,ULONG hvio) ;
  384. ULONG VioScrollRt(ULONG TopRow, ULONG LeftCol, ULONG BotRow, ULONG RtCol, ULONG cbLines, PBYTE pbCell,ULONG hvio) ;
  385. ULONG VioScrollUp(ULONG TopRow, ULONG LeftCol, ULONG BotRow, ULONG RtCol, ULONG cbLines, PBYTE pbCell,ULONG hvio) ;
  386. ULONG VioScrUnLock(HVIO hvio) ;
  387. ULONG VioSetAnsi(ULONG fAnsi, HVIO hvio) ;
  388. ULONG VioSetCp(ULONG ulReserved, ULONG idCodePage, HVIO hvio) ;
  389. ULONG VioSetCurPos(ULONG ulrow, ULONG ulcol, HVIO hvio) ;
  390. ULONG VioSetCurType(PVIOCURSORINFO pvicci, HVIO hvio) ;
  391. ULONG VioSetDeviceCellSize(LONG cRows, LONG cColumns, HVPS hvps) ;
  392. ULONG VioSetFont(PVIOFONTINFO pviofi, HVIO hvio) ;
  393. ULONG VioSetMode(PVIOMODEINFO pvioMi, HVIO hvio) ;
  394. ULONG VioSetOrg(LONG sRow, LONG sColumn, HVPS hvps) ;
  395. ULONG VioSetState(PVOID pvoidState, HVIO hvio) ;
  396. ULONG VioShowBuf(ULONG offLVB, ULONG cbOutput, HVIO hvio) ;
  397. ULONG VioShowPS(LONG cRows, LONG cColumns, LONG off, HVPS hvps) ;
  398. ULONG VioWrtCellStr(PCH pchCellString, ULONG cbCellString, ULONG Row, ULONG Col, HVIO hvio);
  399. ULONG VioWrtCharStr(PCH pchString, ULONG cbString, ULONG Row, ULONG Col, HVIO hvio);
  400. ULONG VioWrtCharStrAtt(PCH pchString, ULONG cbString, ULONG Row, ULONG Col, HVIO hvio);
  401. ULONG VioWrtNAttr(PBYTE pbAttr, ULONG cb, ULONG Row, ULONG Col, HVIO hvio);
  402. ULONG VioWrtNCell(PBYTE pbCell, ULONG cb, ULONG Row, ULONG Col, HVIO hvio);
  403. ULONG VioWrtNChar(PBYTE pbChar, ULONG cb, ULONG Row, ULONG Col, HVIO hvio);
  404. ULONG VioWrtTTY(PCH pchString, ULONG cbString, HVIO hvio) ;
  405.