home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / borhead.zip / BSESUB.H < prev    next >
C/C++ Source or Header  |  1994-11-09  |  35KB  |  1,108 lines

  1. /****************************** Module Header ******************************\
  2. *
  3. * Module Name: BSESUB.H
  4. *
  5. * OS/2 Base include file.
  6. *
  7. * Copyright (c) International Business Machines Corporation 1981, 1988-1992
  8. *
  9. * ===========================================================================
  10. *
  11. * The folowing symbols are used in this file for conditional sections.
  12. *
  13. * Subcomponents marked with "+" are partially included by default:
  14. *
  15. *   #define:                To include:
  16. *
  17. *   INCL_KBD                KBD
  18. *   INCL_VIO                VIO
  19. *   INCL_MOU                MOU
  20. *
  21. * ===========================================================================
  22. *
  23. * Comments at the end of each typedef line give the name tags used in
  24. * the assembler include version of this file.
  25. *
  26. * The assembler include version of this file excludes lines between NOINC
  27. * and INC comments.
  28. *
  29. \***************************************************************************/
  30.  
  31. /* NOINC */
  32. #if defined(__IBMC__)
  33.    #pragma info( none )
  34.    #ifndef __CHKHDR__
  35.       #pragma info( none )
  36.    #endif
  37.    #pragma info( restore )
  38. #endif  /* __IBMC__ */
  39.  
  40. #ifdef __cplusplus
  41.       extern "C" {
  42. #endif
  43.  
  44. /* INC */
  45.  
  46. #ifndef __BSESUB__
  47. #define __BSESUB__
  48.  
  49. #ifdef INCL_SUB
  50.    #define INCL_KBD
  51.    #define INCL_VIO
  52.    #define INCL_MOU
  53. #endif /* INCL_SUB */
  54.  
  55. #ifdef INCL_KBD
  56.  
  57.    #define Kbd16CharIn        KBD16CHARIN
  58.    #define Kbd16Close         KBD16CLOSE
  59.    #define Kbd16DeRegister    KBD16DEREGISTER
  60.    #define Kbd16FlushBuffer   KBD16FLUSHBUFFER
  61.    #define Kbd16FreeFocus     KBD16FREEFOCUS
  62.    #define Kbd16GetCp         KBD16GETCP
  63.    #define Kbd16GetFocus      KBD16GETFOCUS
  64.    #define Kbd16GetHWID       KBD16GETHWID
  65.    #define Kbd16GetStatus     KBD16GETSTATUS
  66.    #define Kbd16Open          KBD16OPEN
  67.    #define Kbd16Peek          KBD16PEEK
  68.    #define Kbd16Register      KBD16REGISTER
  69.    #define Kbd16SetCp         KBD16SETCP
  70.    #define Kbd16SetCustXt     KBD16SETCUSTXT
  71.    #define Kbd16SetFgnd       KBD16SETFGND
  72.    #define Kbd16SetHWID       KBD16SETHWID
  73.    #define Kbd16SetStatus     KBD16SETSTATUS
  74.    #define Kbd16StringIn      KBD16STRINGIN
  75.    #define Kbd16Synch         KBD16SYNCH
  76.    #define Kbd16Xlate         KBD16XLATE
  77.  
  78.    #define KbdCharIn          KBD16CHARIN
  79.    #define KbdClose           KBD16CLOSE
  80.    #define KbdDeRegister      KBD16DEREGISTER
  81.    #define KbdFlushBuffer     KBD16FLUSHBUFFER
  82.    #define KbdFreeFocus       KBD16FREEFOCUS
  83.    #define KbdGetCp           KBD16GETCP
  84.    #define KbdGetFocus        KBD16GETFOCUS
  85.    #define KbdGetHWID         KBD16GETHWID
  86.    #define KbdGetStatus       KBD16GETSTATUS
  87.    #define KbdOpen            KBD16OPEN
  88.    #define KbdPeek            KBD16PEEK
  89.    #define KbdRegister        KBD16REGISTER
  90.    #define KbdSetCp           KBD16SETCP
  91.    #define KbdSetCustXt       KBD16SETCUSTXT
  92.    #define KbdSetFgnd         KBD16SETFGND
  93.    #define KbdSetHWID         KBD16SETHWID
  94.    #define KbdSetStatus       KBD16SETSTATUS
  95.    #define KbdStringIn        KBD16STRINGIN
  96.    #define KbdSynch           KBD16SYNCH
  97.    #define KbdXlate           KBD16XLATE
  98.  
  99.    typedef unsigned short  HKBD;
  100.    typedef HKBD  FAR16PTR  PHKBD;
  101.  
  102.    APIRET16 APIENTRY16 KbdRegister (PSZ16 pszModName,
  103.                     PSZ16 pszEntryPt,
  104.                     ULONG FunMask);
  105.  
  106.    #define KR_KBDCHARIN               0x00000001L
  107.    #define KR_KBDPEEK                 0x00000002L
  108.    #define KR_KBDFLUSHBUFFER          0x00000004L
  109.    #define KR_KBDGETSTATUS            0x00000008L
  110.    #define KR_KBDSETSTATUS            0x00000010L
  111.    #define KR_KBDSTRINGIN             0x00000020L
  112.    #define KR_KBDOPEN                 0x00000040L
  113.    #define KR_KBDCLOSE                0x00000080L
  114.    #define KR_KBDGETFOCUS             0x00000100L
  115.    #define KR_KBDFREEFOCUS            0x00000200L
  116.    #define KR_KBDGETCP                0x00000400L
  117.    #define KR_KBDSETCP                0x00000800L
  118.    #define KR_KBDXLATE                0x00001000L
  119.    #define KR_KBDSETCUSTXT            0x00002000L
  120.  
  121.    #define IO_WAIT                    0
  122.    #define IO_NOWAIT                  1
  123.  
  124.    APIRET16 APIENTRY16 KbdDeRegister (void);
  125.  
  126.    /* KBDKEYINFO structure, for KbdCharIn and KbdPeek */
  127.    #pragma pack(2)
  128.  
  129.  
  130.    typedef  struct _KBDKEYINFO      /* kbci */
  131.    {
  132.       UCHAR    chChar;
  133.       UCHAR    chScan;
  134.       UCHAR    fbStatus;
  135.       UCHAR    bNlsShift;
  136.       USHORT   fsState;
  137.       ULONG    time;
  138.    }KBDKEYINFO;
  139.    typedef KBDKEYINFO FAR16PTR PKBDKEYINFO;
  140.  
  141.    APIRET16 APIENTRY16  KbdCharIn(PKBDKEYINFO pkbci,
  142.                   USHORT fWait,
  143.                   HKBD hkbd);
  144.  
  145.    APIRET16 APIENTRY16  KbdPeek (PKBDKEYINFO pkbci,
  146.                  HKBD hkbd);
  147.  
  148.    /* structure for KbdStringIn() */
  149.  
  150.    typedef struct _STRINGINBUF     /* kbsi */
  151.    {
  152.       USHORT cb;
  153.       USHORT cchIn;
  154.    } STRINGINBUF;
  155.    typedef STRINGINBUF  FAR16PTR PSTRINGINBUF;
  156.  
  157.    APIRET16 APIENTRY16  KbdStringIn (PCHAR16 pch,
  158.                      PSTRINGINBUF pchIn,
  159.                      USHORT fsWait,
  160.                      HKBD hkbd);
  161.  
  162.    APIRET16 APIENTRY16  KbdFlushBuffer (HKBD hkbd);
  163.  
  164.    /* KBDINFO.fsMask */
  165.  
  166.    #define KEYBOARD_ECHO_ON                0x0001
  167.    #define KEYBOARD_ECHO_OFF               0x0002
  168.    #define KEYBOARD_BINARY_MODE            0x0004
  169.    #define KEYBOARD_ASCII_MODE             0x0008
  170.    #define KEYBOARD_MODIFY_STATE           0x0010
  171.    #define KEYBOARD_MODIFY_INTERIM         0x0020
  172.    #define KEYBOARD_MODIFY_TURNAROUND      0x0040
  173.    #define KEYBOARD_2B_TURNAROUND          0x0080
  174.    #define KEYBOARD_SHIFT_REPORT           0x0100
  175.  
  176.    #ifndef INCL_DOSDEVIOCTL  /* following constants defined in bsedev.h */
  177.       /* KBDINFO.fsState/KBDKEYINFO.fsState/KBDTRANS.fsState */
  178.       #define KBDSTF_RIGHTSHIFT               0x0001
  179.       #define KBDSTF_LEFTSHIFT                0x0002
  180.       #define KBDSTF_CONTROL                  0x0004
  181.       #define KBDSTF_ALT                      0x0008
  182.       #define KBDSTF_SCROLLLOCK_ON            0x0010
  183.       #define KBDSTF_NUMLOCK_ON               0x0020
  184.       #define KBDSTF_CAPSLOCK_ON              0x0040
  185.       #define KBDSTF_INSERT_ON                0x0080
  186.       #define KBDSTF_LEFTCONTROL              0x0100
  187.       #define KBDSTF_LEFTALT                  0x0200
  188.       #define KBDSTF_RIGHTCONTROL             0x0400
  189.       #define KBDSTF_RIGHTALT                 0x0800
  190.       #define KBDSTF_SCROLLLOCK               0x1000
  191.       #define KBDSTF_NUMLOCK                  0x2000
  192.       #define KBDSTF_CAPSLOCK                 0x4000
  193.       #define KBDSTF_SYSREQ                   0x8000
  194.    #endif  /* INCL_DOSDEVIOCTL */
  195.  
  196.    /* KBDINFO structure, for KbdSet/GetStatus */
  197.    typedef struct _KBDINFO         /* kbst */
  198.    {
  199.       USHORT cb;
  200.       USHORT fsMask;
  201.       USHORT chTurnAround;
  202.       USHORT fsInterim;
  203.       USHORT fsState;
  204.    }KBDINFO;
  205.    typedef KBDINFO FAR16PTR PKBDINFO;
  206.  
  207.  
  208.    APIRET16 APIENTRY16  KbdSetStatus (PKBDINFO pkbdinfo,
  209.                       HKBD hkbd);
  210.  
  211.    APIRET16 APIENTRY16  KbdGetStatus (PKBDINFO pkbdinfo,
  212.                       HKBD hdbd);
  213.  
  214.    APIRET16 APIENTRY16  KbdSetCp (USHORT usReserved,
  215.                   USHORT pidCP,
  216.                   HKBD hdbd);
  217.  
  218.    APIRET16 APIENTRY16  KbdGetCp (ULONG ulReserved,
  219.                   PUSHORT16 pidCP,
  220.                   HKBD hkbd);
  221.  
  222.    APIRET16 APIENTRY16  KbdOpen (PHKBD phkbd);
  223.  
  224.    APIRET16 APIENTRY16  KbdClose (HKBD hkbd);
  225.  
  226.    APIRET16 APIENTRY16  KbdGetFocus (USHORT fWait,
  227.                      HKBD hkbd);
  228.  
  229.    APIRET16 APIENTRY16  KbdFreeFocus (HKBD hkbd);
  230.  
  231.    APIRET16 APIENTRY16  KbdSynch (USHORT fsWait);
  232.  
  233.    APIRET16 APIENTRY16  KbdSetFgnd(VOID);
  234.  
  235.    /* structure for KbdGetHWID() */
  236.    typedef struct _KBDHWID         /* kbhw */
  237.    {
  238.       USHORT cb;
  239.       USHORT idKbd;
  240.       USHORT usReserved1;
  241.       USHORT usReserved2;
  242.    } KBDHWID;
  243.    typedef KBDHWID  FAR16PTR PKBDHWID;
  244.  
  245.    APIRET16 APIENTRY16  KbdGetHWID (PKBDHWID pkbdhwid,
  246.                     HKBD hkbd);
  247.  
  248.    APIRET16 APIENTRY16  KbdSetHWID (PKBDHWID pkbdhwid,
  249.                     HKBD hkbd);
  250.  
  251.  
  252.    /* KBDTRANS.fbStatus */
  253.  
  254.    #define KBDTRF_SHIFT_KEY_IN             0x01
  255.    #define KBDTRF_CONVERSION_REQUEST       0x20
  256.    #define KBDTRF_FINAL_CHAR_IN            0x40
  257.    #define KBDTRF_INTERIM_CHAR_IN          0x80
  258.  
  259.    /* structure for KbdXlate() */
  260.    #pragma pack(2)
  261.  
  262.    typedef  struct _KBDTRANS        /* kbxl */
  263.    {
  264.       UCHAR      chChar;
  265.       UCHAR      chScan;
  266.       UCHAR      fbStatus;
  267.       UCHAR      bNlsShift;
  268.       USHORT     fsState;
  269.       ULONG      time;
  270.       USHORT     fsDD;
  271.       USHORT     fsXlate;
  272.       USHORT     fsShift;
  273.       USHORT     sZero;
  274.    } KBDTRANS;
  275.    typedef KBDTRANS FAR16PTR PKBDTRANS;
  276.  
  277.    APIRET16 APIENTRY16  KbdXlate (PKBDTRANS pkbdtrans,
  278.                   HKBD hkbd);
  279.  
  280.    APIRET16 APIENTRY16  KbdSetCustXt (PUSHORT16 usCodePage,
  281.                       HKBD hkbd);
  282.  
  283. #endif /* INCL_KBD */
  284.  
  285. #ifdef INCL_VIO
  286.  
  287.    #define VioCheckCharType        VIO16CHECKCHARTYPE
  288.    #define VioDeRegister           VIO16DEREGISTER
  289.    #define VioEndPopUp             VIO16ENDPOPUP
  290.    #define VioGetAnsi              VIO16GETANSI
  291.    #define VioGetBuf               VIO16GETBUF
  292.    #define VioGetConfig            VIO16GETCONFIG
  293.    #define VioGetCp                VIO16GETCP
  294.    #define VioGetCurPos            VIO16GETCURPOS
  295.    #define VioGetCurType           VIO16GETCURTYPE
  296.    #define VioGetFont              VIO16GETFONT
  297.    #define VioGetMode              VIO16GETMODE
  298.    #define VioGetPhysBuf           VIO16GETPHYSBUF
  299.    #define VioGetState             VIO16GETSTATE
  300.    #define VioModeUndo             VIO16MODEUNDO
  301.    #define VioModeWait             VIO16MODEWAIT
  302.    #define VioPopUp                VIO16POPUP
  303.    #define VioPrtSc                VIO16PRTSC
  304.    #define VioPrtScToggle          VIO16PRTSCTOGGLE
  305.    #define VioReadCellStr          VIO16READCELLSTR
  306.    #define VioReadCharStr          VIO16READCHARSTR
  307.    #define VioRedrawSize           VIO16REDRAWSIZE
  308.    #define VioRegister             VIO16REGISTER
  309.    #define VioSavRedrawUndo        VIO16SAVREDRAWUNDO
  310.    #define VioSavRedrawWait        VIO16SAVREDRAWWAIT
  311.    #define VioScrLock              VIO16SCRLOCK
  312.    #define VioScrUnLock            VIO16SCRUNLOCK
  313.    #define VioScrollDn             VIO16SCROLLDN
  314.    #define VioScrollLf             VIO16SCROLLLF
  315.    #define VioScrollRt             VIO16SCROLLRT
  316.    #define VioScrollUp             VIO16SCROLLUP
  317.    #define VioSetAnsi              VIO16SETANSI
  318.    #define VioSetCp                VIO16SETCP
  319.    #define VioSetCurPos            VIO16SETCURPOS
  320.    #define VioSetCurType           VIO16SETCURTYPE
  321.    #define VioSetFont              VIO16SETFONT
  322.    #define VioSetMode              VIO16SETMODE
  323.    #define VioSetState             VIO16SETSTATE
  324.    #define VioShowBuf              VIO16SHOWBUF
  325.    #define VioWrtCellStr           VIO16WRTCELLSTR
  326.    #define VioWrtCharStr           VIO16WRTCHARSTR
  327.    #define VioWrtCharStrAtt        VIO16WRTCHARSTRATT
  328.    #define VioWrtNAttr             VIO16WRTNATTR
  329.    #define VioWrtNCell             VIO16WRTNCELL
  330.    #define VioWrtNChar             VIO16WRTNCHAR
  331.    #define VioWrtTTY               VIO16WRTTTY
  332.  
  333.    #define Vio16CheckCharType      VIO16CHECKCHARTYPE
  334.    #define Vio16DeRegister         VIO16DEREGISTER
  335.    #define Vio16EndPopUp           VIO16ENDPOPUP
  336.    #define Vio16GetAnsi            VIO16GETANSI
  337.    #define Vio16GetBuf             VIO16GETBUF
  338.    #define Vio16GetConfig          VIO16GETCONFIG
  339.    #define Vio16GetCp              VIO16GETCP
  340.    #define Vio16GetCurPos          VIO16GETCURPOS
  341.    #define Vio16GetCurType         VIO16GETCURTYPE
  342.    #define Vio16GetFont            VIO16GETFONT
  343.    #define Vio16GetMode            VIO16GETMODE
  344.    #define Vio16GetPhysBuf         VIO16GETPHYSBUF
  345.    #define Vio16GetState           VIO16GETSTATE
  346.    #define Vio16ModeUndo           VIO16MODEUNDO
  347.    #define Vio16ModeWait           VIO16MODEWAIT
  348.    #define Vio16PopUp              VIO16POPUP
  349.    #define Vio16PrtSc              VIO16PRTSC
  350.    #define Vio16PrtScToggle        VIO16PRTSCTOGGLE
  351.    #define Vio16ReadCellStr        VIO16READCELLSTR
  352.    #define Vio16ReadCharStr        VIO16READCHARSTR
  353.    #define Vio16RedrawSize         VIO16REDRAWSIZE
  354.    #define Vio16Register           VIO16REGISTER
  355.    #define Vio16SavRedrawUndo      VIO16SAVREDRAWUNDO
  356.    #define Vio16SavRedrawWait      VIO16SAVREDRAWWAIT
  357.    #define Vio16ScrLock            VIO16SCRLOCK
  358.    #define Vio16ScrUnLock          VIO16SCRUNLOCK
  359.    #define Vio16ScrollDn           VIO16SCROLLDN
  360.    #define Vio16ScrollLf           VIO16SCROLLLF
  361.    #define Vio16ScrollRt           VIO16SCROLLRT
  362.    #define Vio16ScrollUp           VIO16SCROLLUP
  363.    #define Vio16SetAnsi            VIO16SETANSI
  364.    #define Vio16SetCp              VIO16SETCP
  365.    #define Vio16SetCurPos          VIO16SETCURPOS
  366.    #define Vio16SetCurType         VIO16SETCURTYPE
  367.    #define Vio16SetFont            VIO16SETFONT
  368.    #define Vio16SetMode            VIO16SETMODE
  369.    #define Vio16SetState           VIO16SETSTATE
  370.    #define Vio16ShowBuf            VIO16SHOWBUF
  371.    #define Vio16WrtCellStr         VIO16WRTCELLSTR
  372.    #define Vio16WrtCharStr         VIO16WRTCHARSTR
  373.    #define Vio16WrtCharStrAtt      VIO16WRTCHARSTRATT
  374.    #define Vio16WrtNAttr           VIO16WRTNATTR
  375.    #define Vio16WrtNCell           VIO16WRTNCELL
  376.    #define Vio16WrtNChar           VIO16WRTNCHAR
  377.    #define Vio16WrtTTY             VIO16WRTTTY
  378.  
  379.  
  380.    typedef unsigned short  HVIO;
  381.    typedef HVIO  FAR16PTR  PHVIO16;
  382.  
  383.    APIRET16 APIENTRY16  VioRegister (PSZ16 pszModName,
  384.                      PSZ16 pszEntryName,
  385.                      ULONG flFun1,
  386.                      ULONG flFun2);
  387.  
  388.    APIRET16 APIENTRY16  VioGlobalReg(PSZ16 pszModName,
  389.                      PSZ16 pszEntryName,
  390.                      ULONG flFun1,
  391.                      ULONG flFun2,
  392.                      USHORT usReturn);
  393.  
  394.    /* first parameter registration constants   */
  395.    #define VR_VIOGETCURPOS            0x00000001L
  396.    #define VR_VIOGETCURTYPE           0x00000002L
  397.    #define VR_VIOGETMODE              0x00000004L
  398.    #define VR_VIOGETBUF               0x00000008L
  399.    #define VR_VIOGETPHYSBUF           0x00000010L
  400.    #define VR_VIOSETCURPOS            0x00000020L
  401.    #define VR_VIOSETCURTYPE           0x00000040L
  402.    #define VR_VIOSETMODE              0x00000080L
  403.    #define VR_VIOSHOWBUF              0x00000100L
  404.    #define VR_VIOREADCHARSTR          0x00000200L
  405.    #define VR_VIOREADCELLSTR          0x00000400L
  406.    #define VR_VIOWRTNCHAR             0x00000800L
  407.    #define VR_VIOWRTNATTR             0x00001000L
  408.    #define VR_VIOWRTNCELL             0x00002000L
  409.    #define VR_VIOWRTTTY               0x00004000L
  410.    #define VR_VIOWRTCHARSTR           0x00008000L
  411.  
  412.    #define VR_VIOWRTCHARSTRATT        0x00010000L
  413.    #define VR_VIOWRTCELLSTR           0x00020000L
  414.    #define VR_VIOSCROLLUP             0x00040000L
  415.    #define VR_VIOSCROLLDN             0x00080000L
  416.    #define VR_VIOSCROLLLF             0x00100000L
  417.    #define VR_VIOSCROLLRT             0x00200000L
  418.    #define VR_VIOSETANSI              0x00400000L
  419.    #define VR_VIOGETANSI              0x00800000L
  420.    #define VR_VIOPRTSC                0x01000000L
  421.    #define VR_VIOSCRLOCK              0x02000000L
  422.    #define VR_VIOSCRUNLOCK            0x04000000L
  423.    #define VR_VIOSAVREDRAWWAIT        0x08000000L
  424.    #define VR_VIOSAVREDRAWUNDO        0x10000000L
  425.    #define VR_VIOPOPUP                0x20000000L
  426.    #define VR_VIOENDPOPUP             0x40000000L
  427.    #define VR_VIOPRTSCTOGGLE          0x80000000L
  428.  
  429.    /* second parameter registration constants  */
  430.    #define VR_VIOMODEWAIT             0x00000001L
  431.    #define VR_VIOMODEUNDO             0x00000002L
  432.    #define VR_VIOGETFONT              0x00000004L
  433.    #define VR_VIOGETCONFIG            0x00000008L
  434.    #define VR_VIOSETCP                0x00000010L
  435.    #define VR_VIOGETCP                0x00000020L
  436.    #define VR_VIOSETFONT              0x00000040L
  437.    #define VR_VIOGETSTATE             0x00000080L
  438.    #define VR_VIOSETSTATE             0x00000100L
  439.  
  440.    APIRET16 APIENTRY16  VioDeRegister (void);
  441.  
  442.    APIRET16 APIENTRY16  VioGetBuf (PULONG16 pLVB,
  443.                    PUSHORT16 pcbLVB,
  444.                    HVIO hvio);
  445.  
  446.    APIRET16 APIENTRY16  VioGetCurPos (PUSHORT16 pusRow,
  447.                       PUSHORT16 pusColumn,
  448.                       HVIO hvio);
  449.  
  450.    APIRET16 APIENTRY16  VioSetCurPos (USHORT usRow,
  451.                       USHORT usColumn,
  452.                       HVIO hvio);
  453.  
  454.    /* structure for VioSet/GetCurType() */
  455.    typedef struct _VIOCURSORINFO   /* vioci */
  456.    {
  457.       USHORT   yStart;
  458.       USHORT   cEnd;
  459.       USHORT   cx;
  460.       USHORT   attr;
  461.    } VIOCURSORINFO;
  462.  
  463.    typedef VIOCURSORINFO FAR16PTR PVIOCURSORINFO;
  464.  
  465.    APIRET16 APIENTRY16  VioGetCurType (PVIOCURSORINFO pvioCursorInfo,
  466.                        HVIO hvio);
  467.  
  468.    APIRET16 APIENTRY16  VioSetCurType (PVIOCURSORINFO pvioCursorInfo,
  469.                        HVIO hvio);
  470.  
  471.  
  472.    /* VIOMODEINFO.color constants */
  473.  
  474.    #define COLORS_2        0x0001
  475.    #define COLORS_4        0x0002
  476.    #define COLORS_16       0x0004
  477.  
  478.    /* structure for VioSet/GetMode() */
  479.    #pragma pack(1)
  480.  
  481.  
  482.    typedef  struct _VIOMODEINFO     /* viomi */
  483.    {
  484.       USHORT cb;
  485.       UCHAR  fbType;
  486.       UCHAR  color;
  487.       USHORT col;
  488.       USHORT row;
  489.       USHORT hres;
  490.       USHORT vres;
  491.       UCHAR  fmt_ID;
  492.       UCHAR  attrib;
  493.       ULONG  buf_addr;
  494.       ULONG  buf_length;
  495.       ULONG  full_length;
  496.       ULONG  partial_length;
  497.       PCH    ext_data_addr;
  498.    } VIOMODEINFO;
  499.    typedef VIOMODEINFO FAR16PTR PVIOMODEINFO;
  500.  
  501.    #define VGMT_OTHER                 0x01
  502.    #define VGMT_GRAPHICS              0x02
  503.    #define VGMT_DISABLEBURST          0x04
  504.  
  505.    APIRET16 APIENTRY16  VioGetMode (PVIOMODEINFO pvioModeInfo,
  506.                     HVIO hvio);
  507.  
  508.    APIRET16 APIENTRY16  VioSetMode (PVIOMODEINFO pvioModeInfo,
  509.                     HVIO hvio);
  510.  
  511.    /* structure for VioGetPhysBuf() */
  512.    typedef struct _VIOPHYSBUF      /* viopb */
  513.    {
  514.       PBYTE    pBuf;
  515.       ULONG    cb;
  516.       SEL      asel[1];
  517.    } VIOPHYSBUF;
  518.  
  519.    typedef VIOPHYSBUF  FAR16PTR PVIOPHYSBUF;
  520.  
  521.    APIRET16 APIENTRY16  VioGetPhysBuf (PVIOPHYSBUF pvioPhysBuf,
  522.                        USHORT usReserved);
  523.  
  524.    APIRET16 APIENTRY16  VioReadCellStr (PCHAR16 pchCellStr,
  525.                     PUSHORT16 pcb,
  526.                     USHORT usRow,
  527.                     USHORT usColumn,
  528.                     HVIO hvio);
  529.  
  530.    APIRET16 APIENTRY16  VioReadCharStr (PCHAR16 pchCellStr,
  531.                     PUSHORT16 pcb,
  532.                     USHORT usRow,
  533.                     USHORT usColumn,
  534.                     HVIO hvio);
  535.  
  536.    APIRET16 APIENTRY16  VioWrtCellStr (PCHAR16 pchCellStr,
  537.                        USHORT cb,
  538.                        USHORT usRow,
  539.                        USHORT usColumn,
  540.                        HVIO hvio);
  541.  
  542.    APIRET16  APIENTRY16 VioWrtCharStr (PCHAR16 pchStr,
  543.                        USHORT cb,
  544.                        USHORT usRow,
  545.                        USHORT usColumn,
  546.                        HVIO hvio);
  547.  
  548.    APIRET16 APIENTRY16  VioScrollDn (USHORT usTopRow,
  549.                      USHORT usLeftCol,
  550.                      USHORT usBotRow,
  551.                      USHORT usRightCol,
  552.                      USHORT cbLines,
  553.                      PBYTE16 pCell,
  554.                      HVIO hvio);
  555.  
  556.    APIRET16 APIENTRY16  VioScrollUp (USHORT usTopRow,
  557.                      USHORT usLeftCol,
  558.                      USHORT usBotRow,
  559.                      USHORT usRightCol,
  560.                      USHORT cbLines,
  561.                      PBYTE16 pCell,
  562.                      HVIO hvio);
  563.  
  564.    APIRET16 APIENTRY16  VioScrollLf (USHORT usTopRow,
  565.                      USHORT usLeftCol,
  566.                      USHORT usBotRow,
  567.                      USHORT usRightCol,
  568.                      USHORT cbCol,
  569.                      PBYTE16 pCell,
  570.                      HVIO hvio);
  571.  
  572.    APIRET16 APIENTRY16  VioScrollRt (USHORT usTopRow,
  573.                      USHORT usLeftCol,
  574.                      USHORT usBotRow,
  575.                      USHORT usRightCol,
  576.                      USHORT cbCol,
  577.                      PBYTE16 pCell,
  578.                      HVIO hvio);
  579.  
  580.    APIRET16 APIENTRY16  VioWrtNAttr (PBYTE16 pAttr,
  581.                      USHORT cb,
  582.                      USHORT usRow,
  583.                      USHORT usColumn,
  584.                      HVIO hvio);
  585.  
  586.    APIRET16 APIENTRY16  VioWrtNCell (PBYTE16 pCell,
  587.                      USHORT cb,
  588.                      USHORT usRow,
  589.                      USHORT usColumn,
  590.                      HVIO hvio);
  591.  
  592.    APIRET16 APIENTRY16  VioWrtNChar (PCHAR16 pchChar,
  593.                      USHORT cb,
  594.                      USHORT usRow,
  595.                      USHORT usColumn,
  596.                      HVIO hvio);
  597.  
  598.    APIRET16 APIENTRY16  VioWrtTTY (PCHAR16 pch,
  599.                    USHORT cb,
  600.                    HVIO hvio);
  601.  
  602.    APIRET16 APIENTRY16  VioWrtCharStrAtt (PCHAR16 pch,
  603.                       USHORT cb,
  604.                       USHORT usRow,
  605.                       USHORT usColumn,
  606.                       PBYTE16 pAttr,
  607.                       HVIO hvio);
  608.  
  609.    #define VCC_SBCSCHAR               0
  610.    #define VCC_DBCSFULLCHAR           1
  611.    #define VCC_DBCS1STHALF            2
  612.    #define VCC_DBCS2NDHALF            3
  613.  
  614.    APIRET16 APIENTRY16  VioCheckCharType (PUSHORT16 pType,
  615.                       USHORT usRow,
  616.                       USHORT usColumn,
  617.                       HVIO hvio);
  618.  
  619.    APIRET16 APIENTRY16  VioShowBuf (USHORT offLVB,
  620.                     USHORT cb,
  621.                     HVIO hvio);
  622.  
  623.  
  624.    #define ANSI_ON                    1
  625.    #define ANSI_OFF                   0
  626.  
  627.    APIRET16 APIENTRY16  VioSetAnsi (USHORT fAnsi,
  628.                     HVIO hvio);
  629.  
  630.    APIRET16 APIENTRY16  VioGetAnsi (PUSHORT16 pfAnsi,
  631.                     HVIO hvio);
  632.  
  633.    APIRET16 APIENTRY16  VioPrtSc (HVIO hvio);
  634.  
  635.    APIRET16 APIENTRY16  VioPrtScToggle (HVIO hvio);
  636.  
  637.    #define VSRWI_SAVEANDREDRAW        0
  638.    #define VSRWI_REDRAW               1
  639.  
  640.    #define VSRWN_SAVE                 0
  641.    #define VSRWN_REDRAW               1
  642.  
  643.    #define UNDOI_GETOWNER             0
  644.    #define UNDOI_RELEASEOWNER         1
  645.  
  646.    #define UNDOK_ERRORCODE            0
  647.    #define UNDOK_TERMINATE            1
  648.  
  649.    APIRET16 APIENTRY16  VioRedrawSize (PULONG16 pcbRedraw);
  650.  
  651.    APIRET16 APIENTRY16  VioSavRedrawWait (USHORT usRedrawInd,
  652.                       PUSHORT16 pNotifyType,
  653.                       USHORT usReserved);
  654.  
  655.    APIRET16 APIENTRY16  VioSavRedrawUndo (USHORT usOwnerInd,
  656.                       USHORT usKillInd,
  657.                       USHORT usReserved);
  658.  
  659.    #define VMWR_POPUP                 0
  660.    #define VMWN_POPUP                 0
  661.  
  662.    APIRET16 APIENTRY16  VioModeWait (USHORT usReqType,
  663.                      PUSHORT16 pNotifyType,
  664.                      USHORT usReserved);
  665.  
  666.    APIRET16 APIENTRY16  VioModeUndo (USHORT usOwnerInd,
  667.                      USHORT usKillInd,
  668.                      USHORT usReserved);
  669.  
  670.    #define LOCKIO_NOWAIT              0
  671.    #define LOCKIO_WAIT                1
  672.  
  673.    #define LOCK_SUCCESS               0
  674.    #define LOCK_FAIL                  1
  675.  
  676.    APIRET16 APIENTRY16  VioScrLock (USHORT fWait,
  677.                     PUCHAR16 pfNotLocked,
  678.                     HVIO hvio);
  679.  
  680.    APIRET16 APIENTRY16  VioScrUnLock (HVIO hvio);
  681.  
  682.    #define VP_NOWAIT                  0x0000
  683.    #define VP_WAIT                    0x0001
  684.    #define VP_OPAQUE                  0x0000
  685.    #define VP_TRANSPARENT             0x0002
  686.  
  687.    APIRET16 APIENTRY16  VioPopUp (PUSHORT16 pfWait,
  688.                   HVIO hvio);
  689.  
  690.    APIRET16 APIENTRY16  VioEndPopUp (HVIO hvio);
  691.  
  692.  
  693.    /* VIOCONFIGINFO.adapter constants */
  694.  
  695.    #define DISPLAY_MONOCHROME      0x0000
  696.    #define DISPLAY_CGA             0x0001
  697.    #define DISPLAY_EGA             0x0002
  698.    #define DISPLAY_VGA             0x0003
  699.    #define DISPLAY_8514A           0x0007
  700.    #define DISPLAY_IMAGEADAPTER    0x0008
  701.    #define DISPLAY_XGA             0x0009
  702.  
  703.    /* VIOCONFIGINFO.display constants */
  704.  
  705.    #define MONITOR_MONOCHROME      0x0000
  706.    #define MONITOR_COLOR           0x0001
  707.    #define MONITOR_ENHANCED        0x0002
  708.    #define MONITOR_8503            0x0003
  709.    #define MONITOR_851X_COLOR      0x0004
  710.    #define MONITOR_8514            0x0009
  711.    #define MONITOR_FLATPANEL       0x000A
  712.    #define MONITOR_8507_8604       0x000B
  713.    #define MONITOR_8515            0x000C
  714.    #define MONITOR_9515            0x000F
  715.    #define MONITOR_9517            0x0011
  716.    #define MONITOR_9518            0x0012
  717.  
  718.    /* structure for VioGetConfig() */
  719.    #pragma pack(2)
  720.  
  721.    typedef  struct _VIOCONFIGINFO   /* vioin */
  722.    {
  723.       USHORT  cb;
  724.       USHORT  adapter;
  725.       USHORT  display;
  726.       ULONG   cbMemory;
  727.       USHORT  Configuration;
  728.       USHORT  VDHVersion;
  729.       USHORT  Flags;
  730.       ULONG   HWBufferSize;
  731.       ULONG   FullSaveSize;
  732.       ULONG   PartSaveSize;
  733.       USHORT  EMAdaptersOFF;
  734.       USHORT  EMDisplaysOFF;
  735.    } VIOCONFIGINFO;
  736.  
  737.    typedef VIOCONFIGINFO FAR16PTR PVIOCONFIGINFO;
  738.  
  739.  
  740.    #define VIO_CONFIG_CURRENT         0
  741.    #define VIO_CONFIG_PRIMARY         1
  742.    #define VIO_CONFIG_SECONDARY       2
  743.  
  744.    APIRET16 APIENTRY16  VioGetConfig (USHORT usConfigId,
  745.                       PVIOCONFIGINFO pvioin,
  746.                       HVIO hvio);
  747.  
  748.    /* structure for VioGet/SetFont() */
  749.    typedef struct _VIOFONTINFO     /* viofi */
  750.    {
  751.       USHORT  cb;
  752.       USHORT  type;
  753.       USHORT  cxCell;
  754.       USHORT  cyCell;
  755.       PVOID16 pbData;
  756.       USHORT  cbData;
  757.    } VIOFONTINFO;
  758.    typedef VIOFONTINFO FAR16PTR PVIOFONTINFO;
  759.  
  760.    #define VGFI_GETCURFONT            0
  761.    #define VGFI_GETROMFONT            1
  762.  
  763.    APIRET16 APIENTRY16  VioGetFont (PVIOFONTINFO pviofi,
  764.                     HVIO hvio);
  765.  
  766.    APIRET16 APIENTRY16  VioSetFont (PVIOFONTINFO pviofi,
  767.                     HVIO hvio);
  768.  
  769.    APIRET16 APIENTRY16  VioGetCp (USHORT usReserved,
  770.                   PUSHORT16 pIdCodePage,
  771.                   HVIO hvio);
  772.  
  773.    APIRET16 APIENTRY16  VioSetCp (USHORT usReserved,
  774.                   USHORT idCodePage,
  775.                   HVIO hvio);
  776.  
  777.    typedef struct _VIOPALSTATE     /* viopal */
  778.    {
  779.       USHORT  cb;
  780.       USHORT  type;
  781.       USHORT  iFirst;
  782.       USHORT  acolor[1];
  783.    } VIOPALSTATE;
  784.    typedef VIOPALSTATE FAR16PTR PVIOPALSTATE;
  785.  
  786.    typedef struct _VIOOVERSCAN     /* vioos */
  787.    {
  788.       USHORT  cb;
  789.       USHORT  type;
  790.       USHORT  color;
  791.    } VIOOVERSCAN;
  792.    typedef VIOOVERSCAN FAR16PTR PVIOOVERSCAN;
  793.  
  794.    typedef struct _VIOINTENSITY    /* vioint */
  795.    {
  796.       USHORT  cb;
  797.       USHORT  type;
  798.       USHORT  fs;
  799.    } VIOINTENSITY;
  800.    typedef VIOINTENSITY FAR16PTR PVIOINTENSITY;
  801.  
  802.    typedef struct _VIOCOLORREG    /* viocreg */
  803.    {
  804.       USHORT  cb;
  805.       USHORT  type;
  806.       USHORT  firstcolorreg;
  807.       USHORT  numcolorregs;
  808.       PCH     colorregaddr;
  809.    } VIOCOLORREG;
  810.    typedef VIOCOLORREG FAR16PTR PVIOCOLORREG;
  811.  
  812.    typedef struct _VIOSETULINELOC    /* viouline */
  813.    {
  814.       USHORT  cb;
  815.       USHORT  type;
  816.       USHORT  scanline;
  817.    } VIOSETULINELOC;
  818.    typedef VIOSETULINELOC FAR16PTR PVIOSETULINELOC;
  819.  
  820.    typedef struct _VIOSETTARGET    /* viosett */
  821.    {
  822.       USHORT  cb;
  823.       USHORT  type;
  824.       USHORT  defaultalgorithm;
  825.    } VIOSETTARGET;
  826.    typedef VIOSETTARGET FAR16PTR PVIOSETTARGET;
  827.  
  828.    APIRET16 APIENTRY16  VioGetState (PVOID16 pState,
  829.                      HVIO hvio);
  830.    APIRET16 APIENTRY16  VioSetState (PVOID16 pState,
  831.                      HVIO hvio);
  832.  
  833. #endif /* INCL_VIO */
  834.  
  835.  
  836.  
  837. #ifdef INCL_MOU
  838.  
  839.    #define MouClose                MOU16CLOSE
  840.    #define MouDeRegister           MOU16DEREGISTER
  841.    #define MouDrawPtr              MOU16DRAWPTR
  842.    #define MouFlushQue             MOU16FLUSHQUE
  843.    #define MouGetDevStatus         MOU16GETDEVSTATUS
  844.    #define MouGetEventMask         MOU16GETEVENTMASK
  845.    #define MouGetNumButtons        MOU16GETNUMBUTTONS
  846.    #define MouGetNumMickeys        MOU16GETNUMMICKEYS
  847.    #define MouGetNumQueEl          MOU16GETNUMQUEEL
  848.    #define MouGetPtrPos            MOU16GETPTRPOS
  849.    #define MouGetPtrShape          MOU16GETPTRSHAPE
  850.    #define MouGetScaleFact         MOU16GETSCALEFACT
  851.    #define MouGetThreshold         MOU16GETTHRESHOLD
  852.    #define MouInitReal             MOU16INITREAL
  853.    #define MouOpen                 MOU16OPEN
  854.    #define MouReadEventQue         MOU16READEVENTQUE
  855.    #define MouRegister             MOU16REGISTER
  856.    #define MouRemovePtr            MOU16REMOVEPTR
  857.    #define MouSetDevStatus         MOU16SETDEVSTATUS
  858.    #define MouSetEventMask         MOU16SETEVENTMASK
  859.    #define MouSetPtrPos            MOU16SETPTRPOS
  860.    #define MouSetPtrShape          MOU16SETPTRSHAPE
  861.    #define MouSetScaleFact         MOU16SETSCALEFACT
  862.    #define MouSetThreshold         MOU16SETTHRESHOLD
  863.    #define MouSynch                MOU16SYNCH
  864.  
  865.    #define Mou16Close              MOU16CLOSE
  866.    #define Mou16DeRegister         MOU16DEREGISTER
  867.    #define Mou16DrawPtr            MOU16DRAWPTR
  868.    #define Mou16FlushQue           MOU16FLUSHQUE
  869.    #define Mou16GetDevStatus       MOU16GETDEVSTATUS
  870.    #define Mou16GetEventMask       MOU16GETEVENTMASK
  871.    #define Mou16GetNumButtons      MOU16GETNUMBUTTONS
  872.    #define Mou16GetNumMickeys      MOU16GETNUMMICKEYS
  873.    #define Mou16GetNumQueEl        MOU16GETNUMQUEEL
  874.    #define Mou16GetPtrPos          MOU16GETPTRPOS
  875.    #define Mou16GetPtrShape        MOU16GETPTRSHAPE
  876.    #define Mou16GetScaleFact       MOU16GETSCALEFACT
  877.    #define Mou16GetThreshold       MOU16GETTHRESHOLD
  878.    #define Mou16InitReal           MOU16INITREAL
  879.    #define Mou16Open               MOU16OPEN
  880.    #define Mou16ReadEventQue       MOU16READEVENTQUE
  881.    #define Mou16Register           MOU16REGISTER
  882.    #define Mou16RemovePtr          MOU16REMOVEPTR
  883.    #define Mou16SetDevStatus       MOU16SETDEVSTATUS
  884.    #define Mou16SetEventMask       MOU16SETEVENTMASK
  885.    #define Mou16SetPtrPos          MOU16SETPTRPOS
  886.    #define Mou16SetPtrShape        MOU16SETPTRSHAPE
  887.    #define Mou16SetScaleFact       MOU16SETSCALEFACT
  888.    #define Mou16SetThreshold       MOU16SETTHRESHOLD
  889.    #define Mou16Synch              MOU16SYNCH
  890.  
  891.  
  892.    typedef unsigned short  HMOU;
  893.    typedef HMOU  FAR16PTR  PHMOU;
  894.  
  895.    APIRET16 APIENTRY16  MouRegister (PSZ16 pszModName,
  896.                      PSZ16 pszEntryName,
  897.                      ULONG flFuns);
  898.  
  899.    #define MR_MOUGETNUMBUTTONS        0x00000001L
  900.    #define MR_MOUGETNUMMICKEYS        0x00000002L
  901.    #define MR_MOUGETDEVSTATUS         0x00000004L
  902.    #define MR_MOUGETNUMQUEEL          0x00000008L
  903.    #define MR_MOUREADEVENTQUE         0x00000010L
  904.    #define MR_MOUGETSCALEFACT         0x00000020L
  905.    #define MR_MOUGETEVENTMASK         0x00000040L
  906.    #define MR_MOUSETSCALEFACT         0x00000080L
  907.    #define MR_MOUSETEVENTMASK         0x00000100L
  908.    #define MR_MOUOPEN                 0x00000800L
  909.    #define MR_MOUCLOSE                0x00001000L
  910.    #define MR_MOUGETPTRSHAPE          0x00002000L
  911.    #define MR_MOUSETPTRSHAPE          0x00004000L
  912.    #define MR_MOUDRAWPTR              0x00008000L
  913.    #define MR_MOUREMOVEPTR            0x00010000L
  914.    #define MR_MOUGETPTRPOS            0x00020000L
  915.    #define MR_MOUSETPTRPOS            0x00040000L
  916.    #define MR_MOUINITREAL             0x00080000L
  917.    #define MR_MOUSETDEVSTATUS         0x00100000L
  918.  
  919.    APIRET16 APIENTRY16  MouDeRegister (void);
  920.  
  921.    APIRET16 APIENTRY16  MouFlushQue (HMOU hmou);
  922.  
  923.    #define MHK_BUTTON1                0x0001
  924.    #define MHK_BUTTON2                0x0002
  925.    #define MHK_BUTTON3                0x0004
  926.  
  927.    /* structure for MouGet/SetPtrPos() */
  928.    typedef struct _PTRLOC      /* moupl */
  929.    {
  930.       USHORT row;
  931.       USHORT col;
  932.    } PTRLOC;
  933.    typedef PTRLOC FAR16PTR PPTRLOC;
  934.  
  935.    APIRET16 APIENTRY16  MouGetPtrPos (PPTRLOC pmouLoc,
  936.                       HMOU hmou);
  937.    APIRET16 APIENTRY16  MouSetPtrPos (PPTRLOC pmouLoc,
  938.                       HMOU hmou);
  939.  
  940.    /* structure for MouGet/SetPtrShape() */
  941.    typedef struct _PTRSHAPE    /* moups */
  942.    {
  943.       USHORT cb;
  944.       USHORT col;
  945.       USHORT row;
  946.       USHORT colHot;
  947.       USHORT rowHot;
  948.    } PTRSHAPE;
  949.    typedef PTRSHAPE FAR16PTR PPTRSHAPE;
  950.  
  951.    APIRET16 APIENTRY16  MouSetPtrShape (PBYTE16 pBuf,
  952.                     PPTRSHAPE pmoupsInfo,
  953.                     HMOU hmou);
  954.  
  955.    APIRET16 APIENTRY16  MouGetPtrShape (PBYTE16 pBuf,
  956.                     PPTRSHAPE pmoupsInfo,
  957.                     HMOU hmou);
  958.  
  959.    /* MouGetDevStatus/MouSetDevStatus device status constants */
  960.  
  961.    #define MOUSE_QUEUEBUSY        0x0001
  962.    #define MOUSE_BLOCKREAD        0x0002
  963.    #define MOUSE_FLUSH            0x0004
  964.    #define MOUSE_UNSUPPORTED_MODE 0x0008
  965.    #define MOUSE_DISABLED         0x0100
  966.    #define MOUSE_MICKEYS          0x0200
  967.  
  968.  
  969.    APIRET16 APIENTRY16  MouGetDevStatus (PUSHORT16 pfsDevStatus,
  970.                      HMOU hmou);
  971.  
  972.    APIRET16 APIENTRY16  MouGetNumButtons (PUSHORT16 pcButtons,
  973.                       HMOU hmou);
  974.  
  975.    APIRET16 APIENTRY16  MouGetNumMickeys (PUSHORT16 pcMickeys,
  976.                       HMOU hmou);
  977.  
  978.    /* MouReadEventQue */
  979.  
  980.    #define MOU_NOWAIT      0x0000
  981.    #define MOU_WAIT        0x0001
  982.  
  983.    /* structure for MouReadEventQue() */
  984.    #pragma pack(2)
  985.  
  986.    typedef  struct _MOUEVENTINFO    /* mouev */
  987.    {
  988.       USHORT fs;
  989.       ULONG  time;
  990.       SHORT  row;
  991.       SHORT  col;
  992.    } MOUEVENTINFO;
  993.    typedef MOUEVENTINFO FAR16PTR PMOUEVENTINFO;
  994.  
  995.    APIRET16 APIENTRY16  MouReadEventQue (PMOUEVENTINFO pmouevEvent,
  996.                      PUSHORT16 pfWait,
  997.                      HMOU hmou);
  998.  
  999.    /* structure for MouGetNumQueEl() */
  1000.    typedef struct _MOUQUEINFO      /* mouqi */
  1001.    {
  1002.       USHORT cEvents;
  1003.       USHORT cmaxEvents;
  1004.    } MOUQUEINFO;
  1005.    typedef MOUQUEINFO FAR16PTR PMOUQUEINFO;
  1006.  
  1007.    APIRET16 APIENTRY16  MouGetNumQueEl (PMOUQUEINFO qmouqi,
  1008.                     HMOU hmou);
  1009.  
  1010.    /* MouGetEventMask/MouSetEventMask events */
  1011.  
  1012.    #define MOUSE_MOTION                 0x0001
  1013.    #define MOUSE_MOTION_WITH_BN1_DOWN   0x0002
  1014.    #define MOUSE_BN1_DOWN               0x0004
  1015.    #define MOUSE_MOTION_WITH_BN2_DOWN   0x0008
  1016.    #define MOUSE_BN2_DOWN               0x0010
  1017.    #define MOUSE_MOTION_WITH_BN3_DOWN   0x0020
  1018.    #define MOUSE_BN3_DOWN               0x0040
  1019.  
  1020.    APIRET16 APIENTRY16  MouGetEventMask (PUSHORT16 pfsEvents,
  1021.                      HMOU hmou);
  1022.  
  1023.    APIRET16 APIENTRY16  MouSetEventMask (PUSHORT16 pfsEvents,
  1024.                      HMOU hmou);
  1025.  
  1026.    /* structure for MouGet/SetScaleFact() */
  1027.    typedef  struct _SCALEFACT   /* mousc */
  1028.    {
  1029.       USHORT rowScale;
  1030.       USHORT colScale;
  1031.    } SCALEFACT;
  1032.    typedef SCALEFACT FAR16PTR PSCALEFACT;
  1033.  
  1034.    APIRET16 APIENTRY16  MouGetScaleFact (PSCALEFACT pmouscFactors,
  1035.                      HMOU hmou);
  1036.  
  1037.    APIRET16 APIENTRY16  MouSetScaleFact (PSCALEFACT pmouscFactors,
  1038.                      HMOU hmou);
  1039.  
  1040.    APIRET16 APIENTRY16  MouOpen (PSZ16 pszDvrName,
  1041.                  PHMOU phmou);
  1042.  
  1043.    APIRET16 APIENTRY16  MouClose (HMOU hmou);
  1044.  
  1045.    /* structure for MouRemovePtr() */
  1046.    typedef struct _NOPTRRECT   /* mourt */
  1047.    {
  1048.       USHORT row;
  1049.       USHORT col;
  1050.       USHORT cRow;
  1051.       USHORT cCol;
  1052.    } NOPTRRECT;
  1053.    typedef NOPTRRECT FAR16PTR PNOPTRRECT;
  1054.  
  1055.    APIRET16 APIENTRY16  MouRemovePtr (PNOPTRRECT pmourtRect,
  1056.                       HMOU hmou);
  1057.  
  1058.    APIRET16 APIENTRY16  MouDrawPtr (HMOU hmou);
  1059.  
  1060.    #define MOU_NODRAW                 0x0001
  1061.    #define MOU_DRAW                   0x0000
  1062.    #define MOU_MICKEYS                0x0002
  1063.    #define MOU_PELS                   0x0000
  1064.  
  1065.    APIRET16 APIENTRY16  MouSetDevStatus (PUSHORT16 pfsDevStatus,
  1066.                      HMOU hmou);
  1067.  
  1068.    APIRET16 APIENTRY16  MouInitReal (PSZ16);
  1069.  
  1070.    APIRET16 APIENTRY16  MouSynch(USHORT pszDvrName);
  1071.  
  1072.    typedef struct _THRESHOLD       /* threshold */
  1073.    {
  1074.       USHORT Length;          /* Length Field            */
  1075.       USHORT Level1;          /* First movement level    */
  1076.       USHORT Lev1Mult;        /* First level multiplier  */
  1077.       USHORT Level2;          /* Second movement level   */
  1078.       USHORT lev2Mult;        /* Second level multiplier */
  1079.    } THRESHOLD;
  1080.    typedef THRESHOLD FAR16PTR PTHRESHOLD;
  1081.  
  1082.    APIRET16 APIENTRY16  MouGetThreshold(PTHRESHOLD pthreshold,
  1083.                     HMOU hmou);
  1084.  
  1085.    APIRET16 APIENTRY16  MouSetThreshold(PTHRESHOLD pthreshold,
  1086.                     HMOU hmou);
  1087.  
  1088. #endif /* INCL_MOU */
  1089.  
  1090. #endif /* __BSESUB__ */
  1091.  
  1092. /* NOINC */
  1093. #ifdef __cplusplus
  1094.     }
  1095. #endif
  1096.  
  1097. #if defined(__IBMC__)
  1098.    #pragma info( none )
  1099.    #ifndef __CHKHDR__
  1100.       #pragma info( restore )
  1101.    #endif
  1102.    #pragma info( restore )
  1103. #endif  /* __IBMC__ */
  1104.  
  1105. /* INC */
  1106.  
  1107. /**************************** end of file **********************************/
  1108.