home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************
- *
- * Module Name: VMD.H (MVDM Virtual Mouse Exported Definitions)
- *
- * OS/2 public header file.
- *
- * Copyright (c) 1987 - 1993 IBM Corporation
- *
- *****************************************************************************/
-
-
- #ifndef INCL_NONE // include everything by default
- #define INCL_VMOUSE
- #endif
-
- #ifdef INCL_VMOUSE
- #define INCL_VMOUSEINT
- #define INCL_VMOUSESYSREQ
- #define INCL_VMOUSEDEVREQ
- #endif
-
- #pragma checkout( suspend )
- #ifndef __CHKHDR__
- #pragma checkout( suspend )
- #endif
- #pragma checkout( resume )
-
- #ifndef __VMD__
- #define __VMD__
-
- #ifdef INCL_VMOUSEINT
-
- /*** VMD INT 33h constants
- */
-
- #define INT_MOUSE 0x33 // mouse software interrupt
-
- #define INT33_RESET 0 // mouse reset and status
- #define INT33_SHOWPOINTER 1 // show pointer
- #define INT33_HIDEPOINTER 2 // hide pointer
- #define INT33_QUERYSTATUS 3 // query button status and mouse pos.
- #define INT33_SETPOSITION 4 // set mouse position
- #define INT33_GETPRESSINFO 5 // get button press information
- #define INT33_GETRELEASEINFO 6 // get button release information
- #define INT33_SETHORIZONTAL 7 // set horizontal min/max boundaries
- #define INT33_SETVERTICAL 8 // set vertical min/max boundaries
- #define INT33_DEFINEGRPOINTER 9 // define graphics pointer
- #define INT33_DEFINETEXTPOINTER 10 // define text/hardware pointer
- #define INT33_GETMOTIONCOUNTS 11 // get mouse motion counters
- #define INT33_SETUSERSUB 12 // set user call mask/address
- #define INT33_ENABLELIGHTPEN 13 // enable lightpen emulation
- #define INT33_DISABLELIGHTPEN 14 // disable lightpen emulation
- #define INT33_SETMICKEYRATIO 15 // set mickeys-to-8-pixels ratio
- #define INT33_SETCONDITIONAL 16 // set conditional-off area
- #define INT33_FUNCTION17 17 // UNDEFINED (points to function 19)
- #define INT33_DEFINEVARPOINTER 18 // define variable-size graphics pointer
- #define INT33_SETDBLSPEED 19 // set dbl-speed threshold
- #define INT33_SWAPUSERSUB 20 // swap user call mask/address
- #define INT33_QUERYSTATESIZE 21 // query save-state storage req.
- #define INT33_SAVESTATE 22 // save driver state
- #define INT33_RESTORESTATE 23 // restore driver state
- #define INT33_SETALTUSERSUB 24 // set alternate call mask/address
- #define INT33_QUERYALTUSERSUB 25 // query alternate call mask/address
- #define INT33_SETSENSITIVITY 26 // set mickeys/pixel, dbl-speed thres.
- #define INT33_QUERYSENSITIVITY 27 // query mickeys/pixel, dbl-speed thres.
- #define INT33_SETINTERRUPTRATE 28 // set interrupt rate (inport only)
- #define INT33_SETCRTPAGE 29 // set CRT page #
- #define INT33_QUERYCRTPAGE 30 // query CRT page #
- #define INT33_DISABLEDRIVER 31 // disable driver
- #define INT33_ENABLEDRIVER 32 // enable driver
- #define INT33_SOFTWARERESET 33 // more complete mouse reset
- #define INT33_SETLANGUAGE 34 // set language #
- #define INT33_QUERYLANGUAGE 35 // query language #
- #define INT33_QUERYMOUSEVERSION 36 // query mouse version, type, and IRQ
- #define INT33_MAXFUNC INT33_QUERYMOUSEVERSION
-
- #define INT33_ERROR -1 // error return in AX of INT 33 function
-
- #define MAX_PTRWIDTH 2 // maximum # bytes across
- #define MAX_PTRHEIGHT 16 // maximum # bytes in height
-
- #define BUTTON_LEFT 0 // button ordinals
- #define BUTTON_RIGHT 1
- #define BUTTON_CENTER 2
-
- #define BUTBIT_LEFT 0x0001 // button bit positions
- #define BUTBIT_RIGHT 0x0002
- #define BUTBIT_CENTER 0x0004
-
- #define CALLMASK_MOTION 0x0001 // motion
- #define CALLMASK_LEFTDOWN 0x0002 // LEFT button down
- #define CALLMASK_LEFTUP 0x0004 // LEFT button up
- #define CALLMASK_RIGHTDOWN 0x0008 // RIGHT button down
- #define CALLMASK_RIGHTUP 0x0010 // RIGHT button up
- #define CALLMASK_SHIFTBUTTON 0x0020 // SHIFT key held while button up/down
- #define CALLMASK_CTRLBUTTON 0x0040 // CTRL key held while button up/down
- #define CALLMASK_ALTBUTTON 0x0080 // ALT key held while button up/down
- #define CALLMASK_CENTERDOWN 0x0100 // CENTER button down
- #define CALLMASK_CENTERUP 0x0200 // CENTER button up
- #define CALLMASK_ALLOWED 0x03FF
- #define CALLMASK_BUTTONSHIFTS (CALLMASK_SHIFTBUTTON | \
- CALLMASK_CTRLBUTTON | \
- CALLMASK_ALTBUTTON)
-
- #define CALL12MASK_CENTERDOWN 0x0020 // CENTER button down (SETUSERSUB only)
- #define CALL12MASK_CENTERUP 0x0040 // CENTER button up (SETUSERSUB only)
- #define CALL12MASK_ALLOWED 0x007F
-
-
- #define DEF_XMICKEYS 8 // (x_pixel)
- #define DEF_YMICKEYS 16 // (y_pixel)
-
- #define DEF_XMICSSCALE 50 // range 0-100
- #define DEF_YMICSSCALE 50 // range 0-100
- #define DEF_THRESHOLDSCALE 50 // range 0-100
-
- #define DEF_TEXTANDMASK 0xffff // (DfltTextAndMask)
- #define DEF_TEXTXORMASK 0x7700 // (DfltTextXorMask)
-
- #define DEF_THRESHOLD 64
-
- #endif
-
-
- #ifdef INCL_VMOUSESYSREQ
-
- /*** VMSE constants
- */
-
- #define VMD_NAME "VMOUSE$" // name of VMD
-
- /*** VMSE functions for use by PMVDMP
- */
-
- #define VMSESYSREQ_SETACCESS 1 // obtain exclusive access for VDM
- #define VMSESYSREQ_SETFOCUS 2 // notify VDM is gaining/losing focus
- #define VMSESYSREQ_POSTMOUSE 3 // send mouse events to a VDM
- #define VMSESYSREQ_MAX 3
-
- #endif
-
-
- #ifdef INCL_VMOUSEDEVREQ
-
- /***EK+ VMD constants
- */
-
- #define VMDEVREQ_REGISTER 1 // VMD-defined functions for
- #define VMDEVREQ_SETSIZE 2 // communication from VVD to VMD
- #define VMDEVREQ_SEAMLESS 3 // Seamless notification
- #define VMDEVREQ_PROTINT33 4 // VDPX to VMD for Pmode Int 33h calls
- #define VMDEVREQ_DPMITASK 5 // DPMI program start/stop notification
- /*end*/
-
-
- /***ET+ VMD VDHRequestVDD communication structures
- *
- * VMREG is the input packet passed with the VMDEVREQ_REGISTER request
- * from a VVD, and contains all the functions required by VMD of every
- * supported VVD, which are:
- *
- * Show pointer
- * Hide pointer
- * Define text pointer
- * Define graphics pointer
- * Enable/disable light pen emulation
- *
- * VMFUNC is the output packet filled in on the same (VMDEVREQ_REGISTER)
- * request. It points to the following functions:
- *
- * VDM Light pen request (to call only when light pen emulation enabled)
- *
- * VMSSIZE is the input packet passed with the VMDEVREQ_SETSIZE request
- * from a VVD, and defines the current video mode (or -1 if unknown),
- * physical screen dimensions, and cell size. There is no output packet
- * for this request.
- */
-
- typedef BOOL (*EXPENTRY PFNSHOWPTR)(HVDM, ULONG, ULONG);
- typedef BOOL (*EXPENTRY PFNHIDEPTR)(HVDM);
- typedef BOOL (*EXPENTRY PFNDEFTEXT)(HVDM, ULONG, ULONG, BOOL);
- typedef BOOL (*EXPENTRY PFNDEFGRAPH)(HVDM, PUSHORT, ULONG, ULONG);
- typedef BOOL (*EXPENTRY PFNSETPAGE)(HVDM, ULONG);
- typedef BOOL (*EXPENTRY PFNSETLPEN)(HVDM, BOOL);
-
- typedef struct vmreg_s { /* vmreg */
- ULONG vmreg_nb; // size of structure, in bytes (24)
- PFNSHOWPTR vmreg_pfnShowPtr; // ptr to show pointer fn.
- PFNHIDEPTR vmreg_pfnHidePtr; // ptr to hide pointer fn.
- PFNDEFTEXT vmreg_pfnDefTextPtr; // ptr to define text pointer fn.
- PFNDEFGRAPH vmreg_pfnDefGraphPtr; // ptr to define graphics pointer fn.
- PFNSETPAGE vmreg_pfnSetVideoPage; // ptr to set video page fn.
- PFNSETLPEN vmreg_pfnSetLPenEm; // ptr to enable/disable lpen fn.
- } VMREG;
-
- typedef VMREG *PVMREG;
-
-
- typedef struct vmstat_s {
- BOOL vmstat_fPtrHidden; // visual pointer status
- ULONG vmstat_x; // current virtual position
- ULONG vmstat_y;
- ULONG vmstat_flButtons; // current button status (see BUTBITs)
- } VMSTAT;
-
- typedef VMSTAT *PVMSTAT;
-
- typedef BOOL (*EXPENTRY PFNQUERYSTAT)(HVDM, PVMSTAT);
-
- typedef struct vmfunc_s { /* vmfunc */
- ULONG vmfunc_nb; // size of structure, in bytes (8)
- PFNQUERYSTAT vmfunc_pfnQueryStatus; // ptr to query virtual status proc.
- } VMFUNC;
-
- typedef VMFUNC *PVMFUNC;
-
- typedef struct vmss_s { /* vmss */
- ULONG vmss_nb; // size of structure, in bytes (36)
- LONG vmss_lMode; // video mode (eg, 00h-13h, or -1)
- ULONG vmss_ulWidth; // width of screen, in pixels
- ULONG vmss_ulHeight; // height of screen, in pixels
- ULONG vmss_ulCellWidth; // width of screen cells, in pixels
- ULONG vmss_ulCellHeight; // height of screen cells, in pixels
- ULONG vmss_ulPtrWidth; // width of pointer drawing size, in pixels
- ULONG vmss_ulPtrHeight; // height of pointer drawing size, in pixels
- ULONG vmss_ulPtrUnitWidth; // width of pointer drawing unit, in pixels
- } VMSSIZE;
-
- typedef VMSSIZE *PVMSSIZE;
- /*end*/
-
- #endif // INCL_VMOUSEDEVREQ
-
- #endif /* __VMD__ */
-
- #pragma checkout( suspend )
- #ifndef __CHKHDR__
- #pragma checkout( resume )
- #endif
- #pragma checkout( resume )
-