home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / bpos2api.zip / OS2SUBS.PAS < prev    next >
Pascal/Delphi Source File  |  1993-11-17  |  26KB  |  657 lines

  1.  
  2. (*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*)
  3. (*                                                                   *)
  4. (*     Borland Pascal OS/2 API                                       *)
  5. (*                                                                   *)
  6. (*     OS2SUBS  - Subsystem API - video, mouse, and keyboard         *)
  7. (*                                                                   *)
  8. (*-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-*)
  9.  
  10. unit OS2Subs;
  11.  
  12. interface
  13.  
  14. uses
  15.   OS2Def;
  16.  
  17. (* -------------------------- SUBSYSTEMS ---------------------------------- *)
  18.  
  19. const
  20.   IO_WAIT                                 = 0;
  21.   IO_NOWAIT                               = 1;
  22.  
  23.   KBDSTF_RIGHTSHIFT                       = $0001;
  24.   KBDSTF_LEFTSHIFT                        = $0002;
  25.   KBDSTF_CONTROL                          = $0004;
  26.   KBDSTF_ALT                              = $0008;
  27.   KBDSTF_SCROLLLOCK_ON                    = $0010;
  28.   KBDSTF_NUMLOCK_ON                       = $0020;
  29.   KBDSTF_CAPSLOCK_ON                      = $0040;
  30.   KBDSTF_INSERT_ON                        = $0080;
  31.   KBDSTF_LEFTCONTROL                      = $0100;
  32.   KBDSTF_LEFTALT                          = $0200;
  33.   KBDSTF_RIGHTCONTROL                     = $0400;
  34.   KBDSTF_RIGHTALT                         = $0800;
  35.   KBDSTF_SCROLLLOCK                       = $1000;
  36.   KBDSTF_NUMLOCK                          = $2000;
  37.   KBDSTF_CAPSLOCK                         = $4000;
  38.   KBDSTF_SYSREQ                           = $8000;
  39.  
  40.   KBDTRF_SHIFT_KEY_IN                     = $01;
  41.   KBDTRF_EXTENDED_CODE                    = $02;
  42.   KBDTRF_CONVERSION_REQUEST               = $20;
  43.   KBDTRF_FINAL_CHAR_IN                    = $40;
  44.   KBDTRF_INTERIM_CHAR_IN                  = $80;
  45.  
  46.   KEYBOARD_ECHO_ON                        = $0001;
  47.   KEYBOARD_ECHO_OFF                       = $0002;
  48.   KEYBOARD_BINARY_MODE                    = $0004;
  49.   KEYBOARD_ASCII_MODE                     = $0008;
  50.   KEYBOARD_MODIFY_STATE                   = $0010;
  51.   KEYBOARD_MODIFY_INTERIM                 = $0020;
  52.   KEYBOARD_MODIFY_TURNAROUND              = $0040;
  53.   KEYBOARD_2B_TURNAROUND                  = $0080;
  54.   KEYBOARD_SHIFT_REPORT                   = $0100;
  55.  
  56.   KR_KBDCHARIN                            = $00000001;
  57.   KR_KBDPEEK                              = $00000002;
  58.   KR_KBDFLUSHBUFFER                       = $00000004;
  59.   KR_KBDGETSTATUS                         = $00000008;
  60.   KR_KBDSETSTATUS                         = $00000010;
  61.   KR_KBDSTRINGIN                          = $00000020;
  62.   KR_KBDOPEN                              = $00000040;
  63.   KR_KBDCLOSE                             = $00000080;
  64.   KR_KBDGETFOCUS                          = $00000100;
  65.   KR_KBDFREEFOCUS                         = $00000200;
  66.   KR_KBDGETCP                             = $00000400;
  67.   KR_KBDSETCP                             = $00000800;
  68.   KR_KBDXLATE                             = $00001000;
  69.   KR_KBDSETCUSTXT                         = $00002000;
  70.  
  71. type
  72.   HKBD = Word;
  73.   PHKBD = ^HKBD;
  74.  
  75.   TKBDKEYINFO = record
  76.     chChar : Char;
  77.     chScan : Char;
  78.     fbStatus : Byte;
  79.     bNlsShift : Char;
  80.     fsState : Word;
  81.     time : Longint;
  82.   end;
  83.   PKBDKEYINFO = ^TKBDKEYINFO;
  84.  
  85.   TKBDINFO = record
  86.     cb : Word;
  87.     fsMask : Word;
  88.     chTurnAround : Word;
  89.     fsInterim : Word;
  90.     fsState : Word;
  91.   end;
  92.   PKBDINFO = ^TKBDINFO;
  93.  
  94.   TKBDHWID = record
  95.     cb : Word;
  96.     idKbd : Word;
  97.     usReserved1 : Word;
  98.     usReserved2 : Word;
  99.   end;
  100.   PKBDHWID = ^TKBDHWID;
  101.  
  102.   TKBDTRANS = record
  103.     chChar : Char;
  104.     chScan : Char;
  105.     fbStatus : Char;
  106.     bNlsShift : Char;
  107.     fsState : Word;
  108.     time : Longint;
  109.     fsDD : Word;
  110.     fsXlate : Word;
  111.     fsShift : Word;
  112.     sZero : Word;
  113.   end;
  114.   PKBDTRANS = ^TKBDTRANS;
  115.  
  116.   TSTRINGINBUF = record
  117.     cb : Word;
  118.     cchIn : Word;
  119.   end;
  120.   PSTRINGINBUF = ^TSTRINGINBUF;
  121.  
  122. function KbdCharIn(var kbci : TKBDKEYINFO; fWait : Word; hkbd : HKBD) : Word;
  123. function KbdClose(hkbd : HKBD) : Word;
  124. function KbdDeRegister : Word;
  125. function KbdFlushBuffer(hkbd : HKBD) : Word;
  126. function KbdFreeFocus(hkbd : HKBD) : Word;
  127. function KbdGetCp(ulReserved : Longint; var idCP : Word; hkbd : HKBD) : Word;
  128. function KbdGetFocus(fWait : Word; hkbd : HKBD) : Word;
  129. function KbdGetHWID(var kbdhwid : TKBDHWID; hkbd : HKBD) : Word;
  130. function KbdGetStatus(var kbdinfo : TKBDINFO; hkbd : HKBD) : Word;
  131. function KbdOpen(var hkbd : HKBD) : Word;
  132. function KbdPeek(var kbci : TKBDKEYINFO; hkbd : HKBD) : Word;
  133. function KbdRegister(pszModName : CONSTPSZ; pszEntryName : CONSTPSZ;
  134.     ulFunMask : Longint) : Word;
  135. function KbdSetCp(usReserved : Word; idCP : Word; hkbd : HKBD) : Word;
  136. function KbdSetCustXt(var usCodePage : Word; hkbd : HKBD) : Word;
  137. function KbdSetFgnd : Word;
  138. function KbdSetHWID(pkbdhwid : PKBDHWID; hkbd : HKBD) : Word;
  139. function KbdSetStatus(var kbdinfo : TKBDINFO; hkbd : HKBD) : Word;
  140. function KbdStringIn(pch : PCH; pchIn : PSTRINGINBUF; fWait : Word; hkbd : HKBD) : Word;
  141. function KbdSynch(fWait : Word) : Word;
  142. function KbdXlate(const kbdtrans : TKBDTRANS; hkbd : HKBD) : Word;
  143.  
  144. const
  145.   ANSI_OFF                                = 0;
  146.   ANSI_ON                                 = 1;
  147.  
  148.   COLORS_2                                = $01;
  149.   COLORS_4                                = $02;
  150.   COLORS_16                               = $04;
  151.  
  152.   VGMT_OTHER                              = $01;
  153.   VGMT_GRAPHICS                           = $02;
  154.   VGMT_DISABLEBURST                       = $04;
  155.  
  156.   VP_NOWAIT                               = $0000;
  157.   VP_WAIT                                 = $0001;
  158.   VP_OPAQUE                               = $0000;
  159.   VP_TRANSPARENT                          = $0002;
  160.  
  161.   VMWR_POPUP                              = 0;
  162.   VMWN_POPUP                              = 0;
  163.  
  164.   VSRWI_SAVEANDREDRAW                     = 0;
  165.   VSRWI_REDRAW                            = 1;
  166.  
  167.   VSRWN_SAVE                              = 0;
  168.   VSRWN_REDRAW                            = 1;
  169.  
  170.   UNDOI_GETOWNER                          = 0;
  171.   UNDOI_RELEASEOWNER                      = 1;
  172.  
  173.   UNDOK_ERRORCODE                         = 0;
  174.   UNDOK_TERMINATE                         = 1;
  175.  
  176.   LOCKIO_NOWAIT                           = 0;
  177.   LOCKIO_WAIT                             = 1;
  178.  
  179.   LOCK_SUCCESS                            = 0;
  180.   LOCK_FAIL                               = 1;
  181.  
  182.   VCC_SBCSCHAR                            = 0;
  183.   VCC_DBCSFULLCHAR                        = 1;
  184.   VCC_DBCS1STHALF                         = 2;
  185.   VCC_DBCS2NDHALF                         = 3;
  186.  
  187.   VGFI_GETCURFONT                         = 0;
  188.   VGFI_GETROMFONT                         = 1;
  189.  
  190.   VIO_CONFIG_CURRENT                      = 0;
  191.   VIO_CONFIG_PRIMARY                      = 1;
  192.   VIO_CONFIG_SECONDARY                    = 2;
  193.  
  194.   DISPLAY_MONOCHROME                      = 0;
  195.   DISPLAY_CGA                             = 1;
  196.   DISPLAY_EGA                             = 2;
  197.   DISPLAY_VGA                             = 3;
  198.   DISPLAY_8514A                           = 7;
  199.   DISPLAY_IMAGEADAPTER                    = 8;
  200.   DISPLAY_XGA                             = 9;
  201.  
  202.   MONITOR_MONOCHROME                      = $0000;
  203.   MONITOR_COLOR                           = $0001;
  204.   MONITOR_ENHANCED                        = $0002;
  205.   MONITOR_8503                            = $0003;
  206.   MONITOR_851X_COLOR                      = $0004;
  207.   MONITOR_8514                            = $0009;
  208.   MONITOR_FLATPANEL                       = $000a;
  209.   MONITOR_8507_8604                       = $000b;
  210.   MONITOR_8515                            = $000c;
  211.   MONITOR_9515                            = $000f;
  212.   MONITOR_9517                            = $0011;
  213.   MONITOR_9518                            = $0012;
  214.  
  215.   VR_VIOGETCURPOS                         = $00000001;
  216.   VR_VIOGETCURTYPE                        = $00000002;
  217.   VR_VIOGETMODE                           = $00000004;
  218.   VR_VIOGETBUF                            = $00000008;
  219.   VR_VIOGETPHYSBUF                        = $00000010;
  220.   VR_VIOSETCURPOS                         = $00000020;
  221.   VR_VIOSETCURTYPE                        = $00000040;
  222.   VR_VIOSETMODE                           = $00000080;
  223.   VR_VIOSHOWBUF                           = $00000100;
  224.   VR_VIOREADCHARSTR                       = $00000200;
  225.   VR_VIOREADCELLSTR                       = $00000400;
  226.   VR_VIOWRTNCHAR                          = $00000800;
  227.   VR_VIOWRTNATTR                          = $00001000;
  228.   VR_VIOWRTNCELL                          = $00002000;
  229.   VR_VIOWRTTTY                            = $00004000;
  230.   VR_VIOWRTCHARSTR                        = $00008000;
  231.   VR_VIOWRTCHARSTRATT                     = $00010000;
  232.   VR_VIOWRTCELLSTR                        = $00020000;
  233.   VR_VIOSCROLLUP                          = $00040000;
  234.   VR_VIOSCROLLDN                          = $00080000;
  235.   VR_VIOSCROLLLF                          = $00100000;
  236.   VR_VIOSCROLLRT                          = $00200000;
  237.   VR_VIOSETANSI                           = $00400000;
  238.   VR_VIOGETANSI                           = $00800000;
  239.   VR_VIOPRTSC                             = $01000000;
  240.   VR_VIOSCRLOCK                           = $02000000;
  241.   VR_VIOSCRUNLOCK                         = $04000000;
  242.   VR_VIOSAVREDRAWWAIT                     = $08000000;
  243.   VR_VIOSAVREDRAWUNDO                     = $10000000;
  244.   VR_VIOPOPUP                             = $20000000;
  245.   VR_VIOENDPOPUP                          = $40000000;
  246.   VR_VIOPRTSCTOGGLE                       = $80000000;
  247.  
  248.   VR_VIOMODEWAIT                          = $00000001;
  249.   VR_VIOMODEUNDO                          = $00000002;
  250.   VR_VIOGETFONT                           = $00000004;
  251.   VR_VIOGETCONFIG                         = $00000008;
  252.   VR_VIOSETCP                             = $00000010;
  253.   VR_VIOGETCP                             = $00000020;
  254.   VR_VIOSETFONT                           = $00000040;
  255.   VR_VIOGETSTATE                          = $00000080;
  256.   VR_VIOSETSTATE                          = $00000100;
  257.  
  258.  
  259. type
  260.   HVIO = Word;
  261.   PHVIO = ^HVIO;
  262.  
  263.  
  264.   TVIOMODEINFO = record
  265.     cb : Word;
  266.     fbType : Char;
  267.     color : Char;
  268.     col : Word;
  269.     row : Word;
  270.     hres : Word;
  271.     vres : Word;
  272.     fmt_ID : Char;
  273.     attrib : Char;
  274.     buf_addr : Longint;
  275.     buf_length : Longint;
  276.     full_length : Longint;
  277.     partial_length : Longint;
  278.     ext_data_addr : PCH;
  279.   end;
  280.   PVIOMODEINFO = ^TVIOMODEINFO;
  281.  
  282.   TVIOCONFIGINFO = record
  283.     cb : Word;
  284.     adapter : Word;
  285.     display : Word;
  286.     cbMemory : Longint;
  287.     Configuration : Word;
  288.     VDHVersion : Word;
  289.     Flags : Word;
  290.     HWBufferSize : Longint;
  291.     FullSaveSize : Longint;
  292.     PartSaveSize : Longint;
  293.     EMAdaptersOFF : Word;
  294.     EMDisplaysOFF : Word;
  295.   end;
  296.   PVIOCONFIGINFO = ^TVIOCONFIGINFO;
  297.  
  298.   TVIOPHYSBUF = record
  299.     pBuf : PBYTE;
  300.     cb : Longint;
  301.     asel : array[0..1-1] of SEL;
  302.   end;
  303.   PVIOPHYSBUF = ^TVIOPHYSBUF;
  304.  
  305.   TVIOPALSTATE = record
  306.     cb : Word;
  307.     _type : Word;
  308.     iFirst : Word;
  309.     acolor : array[0..1-1] of Word;
  310.   end;
  311.   PVIOPALSTATE = ^TVIOPALSTATE;
  312.  
  313.   TVIOOVERSCAN = record
  314.     cb : Word;
  315.     _type : Word;
  316.     color : Word;
  317.   end;
  318.   PVIOOVERSCAN = ^TVIOOVERSCAN;
  319.  
  320.   TVIOINTENSITY = record
  321.     cb : Word;
  322.     _type : Word;
  323.     fs : Word;
  324.   end;
  325.   PVIOINTENSITY = ^TVIOINTENSITY;
  326.  
  327.   TVIOCOLORREG = record
  328.     cb : Word;
  329.     _type : Word;
  330.     firstcolorreg : Word;
  331.     numcolorregs : Word;
  332.     colorregaddr : PCH;
  333.   end;
  334.   PVIOCOLORREG = ^TVIOCOLORREG;
  335.  
  336.   TVIOSETULINELOC = record
  337.     cb : Word;
  338.     _type : Word;
  339.     scanline : Word;
  340.   end;
  341.   PVIOSETULINELOC = ^TVIOSETULINELOC;
  342.  
  343.   TVIOSETTARGET = record
  344.     cb : Word;
  345.     _type : Word;
  346.     defaultalgorithm : Word;
  347.   end;
  348.   PVIOSETTARGET = ^TVIOSETTARGET;
  349.  
  350.   TVIOCURSORINFO = record
  351.     yStart : Word;
  352.     cEnd : Word;
  353.     cx : Word;
  354.     attr : Word;
  355.   end;
  356.   PVIOCURSORINFO = ^TVIOCURSORINFO;
  357.  
  358.   TVIOFONTINFO = record
  359.     cb : Word;
  360.     _type : Word;
  361.     cxCell : Word;
  362.     cyCell : Word;
  363.     pbData : Longint;
  364.     cbData : Word;
  365.   end;
  366.   PVIOFONTINFO = ^TVIOFONTINFO;
  367.  
  368.  
  369. function VioCheckCharType(pType : PWord; usRow : Word; usColumn : Word;
  370.     hvio : HVIO) : Word;
  371. function VioDeRegister : Word;
  372. function VioEndPopUp(hvio : HVIO) : Word;
  373. function VioGetAnsi(var fAnsi : Word; hvio : HVIO) : Word;
  374. function VioGetBuf(var LVB : Pointer; var cbLVB : Word; hvio : HVIO) : Word;
  375. function VioGetConfig(usConfigId : Word; var vioin : TVIOCONFIGINFO; hvio : HVIO) : Word;
  376. function VioGetCp(usReserved : Word; var usCodePage : Word; hvio : HVIO) : Word;
  377. function VioGetCurPos(var usRow, usColumn : Word; hvio : HVIO) : Word;
  378. function VioGetCurType(var vioCursorInfo : TVIOCURSORINFO; hvio : HVIO) : Word;
  379. function VioGetFont(var viofi : TVIOFONTINFO; hvio : HVIO) : Word;
  380. function VioGetMode(var vioModeInfo : TVIOMODEINFO; hvio : HVIO) : Word;
  381. function VioGetPhysBuf(var vioPhysBuf : TVIOPHYSBUF; usReserved : Word) : Word;
  382. function VioGlobalReg(pszModName : CONSTPSZ; pszEntryName : CONSTPSZ;
  383.     ulFunMask1 : Longint; ulFunMask2 : Longint; usReturn : Word) : Word;
  384. function VioModeUndo(usOwnerInd : Word; usKillInd : Word; usReserved : Word) : Word;
  385. function VioModeWait(usReqType : Word; var NotifyType : Word; usReserved : Word) : Word;
  386. function VioPopUp(var fWait : Word; hvio : HVIO) : Word;
  387. function VioPrtSc(hvio : HVIO) : Word;
  388. function VioPrtScToggle(hvio : HVIO) : Word;
  389. function VioReadCellStr(pchCellStr : PCH; var cb : Word; usRow : Word;
  390.     usColumn : Word; hvio : HVIO) : Word;
  391. function VioReadCharStr(pch : PCH; var cb : Word; usRow : Word; usColumn : Word;
  392.     hvio : HVIO) : Word;
  393. function VioRegister(pszModName : CONSTPSZ; pszEntryName : CONSTPSZ;
  394.     ulFunMask1 : Longint; ulFunMask2 : Longint) : Word;
  395. function VioSavRedrawUndo(usOwnerInd : Word; usKillInd : Word;
  396.     usReserved : Word) : Word;
  397. function VioSavRedrawWait(usRedrawInd : Word; var pusNotifyType : Word;
  398.     usReserved : Word) : Word;
  399. function VioScrLock(fWait : Word; var fNotLocked : Char; hvio : HVIO) : Word;
  400. function VioScrollDn(usTopRow, usLeftCol, usBotRow, usRightCol : Word;
  401.     cbLines : Word; var Cell; hvio : HVIO) : Word;
  402. function VioScrollLf(usTopRow, usLeftCol, usBotRow, usRightCol : Word;
  403.     cbCol : Word; var Cell; hvio : HVIO) : Word;
  404. function VioScrollRt(usTopRow, usLeftCol, usBotRow, usRightCol : Word;
  405.     cbCol : Word; var Cell; hvio : HVIO) : Word;
  406. function VioScrollUp(usTopRow, usLeftCol, usBotRow, usRightCol : Word;
  407.     cbLines : Word; var Cell; hvio : HVIO) : Word;
  408. function VioScrUnLock(hvio : HVIO) : Word;
  409. function VioSetAnsi(fAnsi : Word; hvio : HVIO) : Word;
  410. function VioSetCp(usReserved : Word; usCodePage : Word; hvio : HVIO) : Word;
  411. function VioSetCurPos(usRow, usColumn : Word; hvio : HVIO) : Word;
  412. function VioSetCurType(var vioCursorInfo : TVIOCURSORINFO; hvio : HVIO) : Word;
  413. function VioSetFont(var viofi : TVIOFONTINFO; hvio : HVIO) : Word;
  414. function VioSetMode(var vioModeInfo : TVIOMODEINFO; hvio : HVIO) : Word;
  415. function VioShowBuf(offLVB : Word; cb : Word; hvio : HVIO) : Word;
  416. function VioWrtCellStr(pchCellStr : CONSTPCH; cb : Word; usRow : Word;
  417.     usColumn : Word; hvio : HVIO) : Word;
  418. function VioWrtCharStr(pch : CONSTPCH; cb : Word; usRow : Word; usColumn : Word;
  419.     hvio : HVIO) : Word;
  420. function VioWrtCharStrAtt(pch : CONSTPCH; cb : Word; usRow : Word;
  421.     usColumn : Word; var Attr; hvio : HVIO) : Word;
  422. function VioWrtNAttr(pAttr : PBYTE; cb : Word; usRow : Word;
  423.     usColumn : Word; hvio : HVIO) : Word;
  424. function VioWrtNCell(var Cell; cb : Word; usRow : Word;
  425.     usColumn : Word; hvio : HVIO) : Word;
  426. function VioWrtNChar(pch : CONSTPCH; cb : Word; usRow : Word; usColumn : Word;
  427.     hvio : HVIO) : Word;
  428. function VioWrtTTY(pch : CONSTPCH; cb : Word; hvio : HVIO) : Word;
  429.  
  430. const
  431.   MHK_BUTTON1                             = $0001;
  432.   MHK_BUTTON2                             = $0002;
  433.   MHK_BUTTON3                             = $0004;
  434.  
  435.   MOU_NOWAIT                              = $0000;
  436.   MOU_WAIT                                = $0001;
  437.  
  438.   MOUSE_MOTION                            = $0001;
  439.   MOUSE_MOTION_WITH_BN1_DOWN              = $0002;
  440.   MOUSE_BN1_DOWN                          = $0004;
  441.   MOUSE_MOTION_WITH_BN2_DOWN              = $0008;
  442.   MOUSE_BN2_DOWN                          = $0010;
  443.   MOUSE_MOTION_WITH_BN3_DOWN              = $0020;
  444.   MOUSE_BN3_DOWN                          = $0040;
  445.  
  446.   MOUSE_QUEUEBUSY                         = $0001;
  447.   MOUSE_BLOCKREAD                         = $0002;
  448.   MOUSE_FLUSH                             = $0004;
  449.   MOUSE_UNSUPPORTED_MODE                  = $0008;
  450.   MOUSE_DISABLED                          = $0100;
  451.   MOUSE_MICKEYS                           = $0200;
  452.  
  453.   MOU_NODRAW                              = $0001;
  454.   MOU_DRAW                                = $0000;
  455.   MOU_MICKEYS                             = $0002;
  456.   MOU_PELS                                = $0000;
  457.  
  458.   MR_MOUGETNUMBUTTONS                     = $00000001;
  459.   MR_MOUGETNUMMICKEYS                     = $00000002;
  460.   MR_MOUGETDEVSTATUS                      = $00000004;
  461.   MR_MOUGETNUMQUEEL                       = $00000008;
  462.   MR_MOUREADEVENTQUE                      = $00000010;
  463.   MR_MOUGETSCALEFACT                      = $00000020;
  464.   MR_MOUGETEVENTMASK                      = $00000040;
  465.   MR_MOUSETSCALEFACT                      = $00000080;
  466.   MR_MOUSETEVENTMASK                      = $00000100;
  467.   MR_MOUOPEN                              = $00000800;
  468.   MR_MOUCLOSE                             = $00001000;
  469.   MR_MOUGETPTRSHAPE                       = $00002000;
  470.   MR_MOUSETPTRSHAPE                       = $00004000;
  471.   MR_MOUDRAWPTR                           = $00008000;
  472.   MR_MOUREMOVEPTR                         = $00010000;
  473.   MR_MOUGETPTRPOS                         = $00020000;
  474.   MR_MOUSETPTRPOS                         = $00040000;
  475.   MR_MOUINITREAL                          = $00080000;
  476.   MR_MOUSETDEVSTATUS                      = $00100000;
  477.  
  478.  
  479. type
  480.   HMOU = Word;
  481.   PHMOU = ^HMOU;
  482.  
  483.  
  484.   TMOUEVENTINFO = record
  485.     fs : Word;
  486.     time : Longint;
  487.     row : Integer;
  488.     col : Integer;
  489.   end;
  490.   PMOUEVENTINFO = ^TMOUEVENTINFO;
  491.  
  492.   TMOUQUEINFO = record
  493.     cEvents : Word;
  494.     cmaxEvents : Word;
  495.   end;
  496.   PMOUQUEINFO = ^TMOUQUEINFO;
  497.  
  498.   TPTRLOC = record
  499.     row : Word;
  500.     col : Word;
  501.   end;
  502.   PPTRLOC = ^TPTRLOC;
  503.  
  504.   TNOPTRRECT = record
  505.     row : Word;
  506.     col : Word;
  507.     cRow : Word;
  508.     cCol : Word;
  509.   end;
  510.   PNOPTRRECT = ^TNOPTRRECT;
  511.  
  512.   TPTRSHAPE = record
  513.     cb : Word;
  514.     col : Word;
  515.     row : Word;
  516.     colHot : Word;
  517.     rowHot : Word;
  518.   end;
  519.   PPTRSHAPE = ^TPTRSHAPE;
  520.  
  521.   TSCALEFACT = record
  522.     rowScale : Word;
  523.     colScale : Word;
  524.   end;
  525.   PSCALEFACT = ^TSCALEFACT;
  526.  
  527.   TTHRESHOLD = record
  528.     Length : Word;
  529.     Level1 : Word;
  530.     Lev1Mult : Word;
  531.     Level2 : Word;
  532.     lev2Mult : Word;
  533.   end;
  534.   PTHRESHOLD = ^TTHRESHOLD;
  535.  
  536.  
  537. function MouClose(hmou : HMOU) : Word;
  538. function MouDeRegister : Word;
  539. function MouDrawPtr(hmou : HMOU) : Word;
  540. function MouFlushQue(hmou : HMOU) : Word;
  541. function MouGetDevStatus(var fsDevStatus : Word; hmou : HMOU) : Word;
  542. function MouGetEventMask(var fsEvents : Word; hmou : HMOU) : Word;
  543. function MouGetNumButtons(var cButtons : Word; hmou : HMOU) : Word;
  544. function MouGetNumMickeys(var cMickeys : Word; hmou : HMOU) : Word;
  545. function MouGetNumQueEl(var mouqi : TMOUQUEINFO; hmou : HMOU) : Word;
  546. function MouGetPtrPos(var mouLoc : TPTRLOC; hmou : HMOU) : Word;
  547. function MouGetPtrShape(var Buf; var moupsInfo : TPTRSHAPE; hmou : HMOU) : Word;
  548. function MouGetScaleFact(var mouscFactors : TSCALEFACT; hmou : HMOU) : Word;
  549. function MouGetThreshold(var threshold : TTHRESHOLD; hmou : HMOU) : Word;
  550. function MouInitReal(pszDriverName : CONSTPSZ) : Word;
  551. function MouOpen(pszDvrName : CONSTPSZ; var hmou : HMOU) : Word;
  552. function MouReadEventQue(var mouevEvent : TMOUEVENTINFO; var fWait : Word; hmou : HMOU) : Word;
  553. function MouRegister(pszModName : CONSTPSZ; pszEntryName : CONSTPSZ;
  554.     ulFunMask : Longint) : Word;
  555. function MouRemovePtr(var mourtRect : TNOPTRRECT; hmou : HMOU) : Word;
  556. function MouSetDevStatus(var fsDevStatus : Word; hmou : HMOU) : Word;
  557. function MouSetEventMask(var fsEvents : Word; hmou : HMOU) : Word;
  558. function MouSetPtrPos(const mouLoc : TPTRLOC; hmou : HMOU) : Word;
  559. function MouSetPtrShape(var Buf; var moupsInfo : TPTRSHAPE; hmou : HMOU) : Word;
  560. function MouSetScaleFact(const mouscFactors : TSCALEFACT; hmou : HMOU) : Word;
  561. function MouSetThreshold(var threshold : TTHRESHOLD; hmou : HMOU) : Word;
  562. function MouSynch(fWait : Word) : Word;
  563.  
  564.  
  565. implementation
  566.  
  567. function KBDCHARIN; external 'KBDCALLS' index 4;
  568. function KBDCLOSE; external 'KBDCALLS' index 17;
  569. function KBDDEREGISTER; external 'KBDCALLS' index 20;
  570. function KBDFLUSHBUFFER; external 'KBDCALLS' index 13;
  571. function KBDFREEFOCUS; external 'KBDCALLS' index 18;
  572. function KBDGETCP; external 'KBDCALLS' index 3;
  573. function KBDGETFOCUS; external 'KBDCALLS' index 12;
  574. function KBDGETHWID; external 'KBDCALLS' index 24;
  575. function KBDGETSTATUS; external 'KBDCALLS' index 10;
  576. function KBDOPEN; external 'KBDCALLS' index 23;
  577. function KBDPEEK; external 'KBDCALLS' index 22;
  578. function KBDREGISTER; external 'KBDCALLS' index 8;
  579. function KBDSETCP; external 'KBDCALLS' index 5;
  580. function KBDSETCUSTXT; external 'KBDCALLS' index 1;
  581. function KBDSETFGND; external 'KBDCALLS' index 21;
  582. function KBDSETHWID; external 'KBDCALLS' index 25;
  583. function KBDSETSTATUS; external 'KBDCALLS' index 11;
  584. function KBDSTRINGIN; external 'KBDCALLS' index 9;
  585. function KBDSYNCH; external 'KBDCALLS' index 7;
  586. function KBDXLATE; external 'KBDCALLS' index 14;
  587. function MOUCLOSE; external 'MOUCALLS' index 9;
  588. function MOUDEREGISTER; external 'MOUCALLS' index 14;
  589. function MOUDRAWPTR; external 'MOUCALLS' index 26;
  590. function MOUFLUSHQUE; external 'MOUCALLS' index 7;
  591. function MOUGETDEVSTATUS; external 'MOUCALLS' index 22;
  592. function MOUGETEVENTMASK; external 'MOUCALLS' index 15;
  593. function MOUGETNUMBUTTONS; external 'MOUCALLS' index 8;
  594. function MOUGETNUMMICKEYS; external 'MOUCALLS' index 3;
  595. function MOUGETNUMQUEEL; external 'MOUCALLS' index 13;
  596. function MOUGETPTRPOS; external 'MOUCALLS' index 19;
  597. function MOUGETPTRSHAPE; external 'MOUCALLS' index 1;
  598. function MOUGETSCALEFACT; external 'MOUCALLS' index 6;
  599. function MOUGETTHRESHOLD; external 'MOUCALLS' index 30;
  600. function MOUINITREAL; external 'MOUCALLS' index 27;
  601. function MOUOPEN; external 'MOUCALLS' index 17;
  602. function MOUREADEVENTQUE; external 'MOUCALLS' index 20;
  603. function MOUREGISTER; external 'MOUCALLS' index 24;
  604. function MOUREMOVEPTR; external 'MOUCALLS' index 18;
  605. function MOUSETDEVSTATUS; external 'MOUCALLS' index 25;
  606. function MOUSETEVENTMASK; external 'MOUCALLS' index 16;
  607. function MOUSETPTRPOS; external 'MOUCALLS' index 21;
  608. function MOUSETPTRSHAPE; external 'MOUCALLS' index 2;
  609. function MOUSETSCALEFACT; external 'MOUCALLS' index 11;
  610. function MOUSETTHRESHOLD; external 'MOUCALLS' index 29;
  611. function MOUSYNCH; external 'MOUCALLS' index 23;
  612. function VIOCHECKCHARTYPE; external 'VIOCALLS' index 75;
  613. function VIODEREGISTER; external 'VIOCALLS' index 6;
  614. function VIOENDPOPUP; external 'VIOCALLS' index 1;
  615. function VIOGETANSI; external 'VIOCALLS' index 3;
  616. function VIOGETBUF; external 'VIOCALLS' index 31;
  617. function VIOGETCONFIG; external 'VIOCALLS' index 46;
  618. function VIOGETCP; external 'VIOCALLS' index 40;
  619. function VIOGETCURPOS; external 'VIOCALLS' index 9;
  620. function VIOGETCURTYPE; external 'VIOCALLS' index 27;
  621. function VIOGETFONT; external 'VIOCALLS' index 29;
  622. function VIOGETMODE; external 'VIOCALLS' index 21;
  623. function VIOGETPHYSBUF; external 'VIOCALLS' index 2;
  624. function VIOGLOBALREG; external 'VIOCALLS' index 70;
  625. function VIOMODEUNDO; external 'VIOCALLS' index 35;
  626. function VIOMODEWAIT; external 'VIOCALLS' index 37;
  627. function VIOPOPUP; external 'VIOCALLS' index 11;
  628. function VIOPRTSC; external 'VIOCALLS' index 8;
  629. function VIOPRTSCTOGGLE; external 'VIOCALLS' index 50;
  630. function VIOREADCELLSTR; external 'VIOCALLS' index 24;
  631. function VIOREADCHARSTR; external 'VIOCALLS' index 30;
  632. function VIOREGISTER; external 'VIOCALLS' index 45;
  633. function VIOSAVREDRAWUNDO; external 'VIOCALLS' index 28;
  634. function VIOSAVREDRAWWAIT; external 'VIOCALLS' index 25;
  635. function VIOSCRLOCK; external 'VIOCALLS' index 23;
  636. function VIOSCROLLDN; external 'VIOCALLS' index 47;
  637. function VIOSCROLLLF; external 'VIOCALLS' index 44;
  638. function VIOSCROLLRT; external 'VIOCALLS' index 12;
  639. function VIOSCROLLUP; external 'VIOCALLS' index 7;
  640. function VIOSCRUNLOCK; external 'VIOCALLS' index 18;
  641. function VIOSETANSI; external 'VIOCALLS' index 5;
  642. function VIOSETCP; external 'VIOCALLS' index 42;
  643. function VIOSETCURPOS; external 'VIOCALLS' index 15;
  644. function VIOSETCURTYPE; external 'VIOCALLS' index 32;
  645. function VIOSETFONT; external 'VIOCALLS' index 33;
  646. function VIOSETMODE; external 'VIOCALLS' index 22;
  647. function VIOSHOWBUF; external 'VIOCALLS' index 43;
  648. function VIOWRTCELLSTR; external 'VIOCALLS' index 10;
  649. function VIOWRTCHARSTR; external 'VIOCALLS' index 13;
  650. function VIOWRTCHARSTRATT; external 'VIOCALLS' index 48;
  651. function VIOWRTNATTR; external 'VIOCALLS' index 26;
  652. function VIOWRTNCELL; external 'VIOCALLS' index 52;
  653. function VIOWRTNCHAR; external 'VIOCALLS' index 53;
  654. function VIOWRTTTY; external 'VIOCALLS' index 19;
  655.  
  656. end.
  657.