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