File:  [OS/2 SDKs] / pmsdk / include / bsesub.h
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 12:28:36 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: pmsdk-1989, HEAD
Microsoft OS/2 SDK PM 02-24-1989

/***************************************************************************\
*
* Module Name: BSESUB.H
*
* OS/2 Base Include File
*
* Copyright (c) 1987,1989  Microsoft Corporation
*
*****************************************************************************
*
* Subcomponents marked with "+" are partially included by default
*   #define:                To include:
*
*   INCL_KBD                KBD
*   INCL_VIO                VIO
*   INCL_MOU                MOU
*
\***************************************************************************/

#ifdef INCL_SUB

#define INCL_KBD
#define INCL_VIO
#define INCL_MOU

#endif /* INCL_SUB */

#ifdef INCL_KBD

typedef SHANDLE         HKBD;
typedef HKBD    far *   PHKBD;

USHORT APIENTRY KbdRegister (PSZ, PSZ, ULONG);

#define KR_KBDCHARIN        0x00000001L
#define KR_KBDPEEK          0x00000002L
#define KR_KBDFLUSHBUFFER   0x00000004L
#define KR_KBDGETSTATUS     0x00000008L
#define KR_KBDSETSTATUS     0x00000010L
#define KR_KBDSTRINGIN      0x00000020L
#define KR_KBDOPEN          0x00000040L
#define KR_KBDCLOSE         0x00000080L
#define KR_KBDGETFOCUS      0x00000100L
#define KR_KBDFREEFOCUS     0x00000200L
#define KR_KBDGETCP         0x00000400L
#define KR_KBDSETCP         0x00000800L
#define KR_KBDXLATE         0x00001000L
#define KR_KBDSETCUSTXT     0x00002000L

#define IO_WAIT     0
#define IO_NOWAIT   1

USHORT APIENTRY KbdDeRegister ( void );

/* KBDKEYINFO structure, for KbdCharIn and KbdPeek */

typedef struct _KBDKEYINFO {    /* kbci */
        UCHAR    chChar;
        UCHAR    chScan;
        UCHAR    fbStatus;
        UCHAR    bNlsShift;
        USHORT   fsState;
        ULONG    time;
        }KBDKEYINFO;
typedef KBDKEYINFO far *PKBDKEYINFO;

USHORT APIENTRY KbdCharIn ( PKBDKEYINFO, USHORT, HKBD );
USHORT APIENTRY KbdPeek ( PKBDKEYINFO, HKBD );

/* structure for KbdStringIn() */

typedef struct _STRINGINBUF {   /* kbsi */
        USHORT cb;
        USHORT cchIn;
        } STRINGINBUF;
typedef STRINGINBUF far *PSTRINGINBUF;

USHORT APIENTRY KbdStringIn ( PCH, PSTRINGINBUF, USHORT, HKBD );

USHORT APIENTRY KbdFlushBuffer ( HKBD );

/* KBDINFO.fsMask */

#define KEYBOARD_ECHO_ON            0x0001
#define KEYBOARD_ECHO_OFF           0x0002
#define KEYBOARD_BINARY_MODE        0x0004
#define KEYBOARD_ASCII_MODE         0x0008
#define KEYBOARD_MODIFY_STATE       0x0010
#define KEYBOARD_MODIFY_INTERIM     0x0020
#define KEYBOARD_MODIFY_TURNAROUND  0x0040
#define KEYBOARD_2B_TURNAROUND      0x0080
#define KEYBOARD_SHIFT_REPORT       0x0100

#ifndef INCL_DOSDEVIOCTL  /* following constants defined in bsedev.h */

/* KBDINFO.fsState/KBDKEYINFO.fsState/KBDTRANS.fsState */

#define RIGHTSHIFT     0x0001
#define LEFTSHIFT      0x0002
#define CONTROL        0x0004
#define ALT            0x0008
#define SCROLLLOCK_ON  0x0010
#define NUMLOCK_ON     0x0020
#define CAPSLOCK_ON    0x0040
#define INSERT_ON      0x0080
#define LEFTCONTROL    0x0100
#define LEFTALT        0x0200
#define RIGHTCONTROL   0x0400
#define RIGHTALT       0x0800
#define SCROLLLOCK     0x1000
#define NUMLOCK        0x2000
#define CAPSLOCK       0x4000
#define SYSREQ         0x8000

#endif  /* INCL_DOSDEVIOCTL */

/* KBDINFO structure, for KbdSet/GetStatus */
typedef struct _KBDINFO {       /* kbst */
        USHORT cb;
        USHORT fsMask;
        USHORT chTurnAround;
        USHORT fsInterim;
        USHORT fsState;
        }KBDINFO;
typedef KBDINFO far *PKBDINFO;

USHORT APIENTRY KbdSetStatus ( PKBDINFO, HKBD );
USHORT APIENTRY KbdGetStatus ( PKBDINFO, HKBD );

USHORT APIENTRY KbdSetCp ( USHORT, USHORT, HKBD);
USHORT APIENTRY KbdGetCp ( ULONG, PUSHORT, HKBD );

USHORT APIENTRY KbdOpen ( PHKBD );
USHORT APIENTRY KbdClose ( HKBD );

USHORT APIENTRY KbdGetFocus ( USHORT, HKBD );
USHORT APIENTRY KbdFreeFocus ( HKBD );

USHORT APIENTRY KbdSynch ( USHORT );

USHORT APIENTRY KbdSetFgnd( VOID );

/* KBDTRANS.fbStatus */

#define SHIFT_KEY_IN	    0x01
#define CONVERSION_REQUEST  0x20
#define FINAL_CHAR_IN	    0x40
#define INTERIM_CHAR_IN     0x80

/* structure for KbdXlate() */
typedef struct _KBDTRANS {      /* kbxl */
        UCHAR      chChar;
        UCHAR      chScan;
        UCHAR      fbStatus;
        UCHAR      bNlsShift;
        USHORT     fsState;
        ULONG      time;
        USHORT     fsDD;
        USHORT     fsXlate;
        USHORT     fsShift;
        USHORT     sZero;
        } KBDTRANS;
typedef KBDTRANS far *PKBDTRANS;

USHORT APIENTRY KbdXlate ( PKBDTRANS, HKBD );
USHORT APIENTRY KbdSetCustXt ( PUSHORT, HKBD );

#endif /* INCL_KBD */

#ifdef INCL_VIO

typedef SHANDLE         HVIO;
typedef HVIO    far *   PHVIO;

USHORT APIENTRY VioRegister ( PSZ, PSZ, ULONG, ULONG );

/* first parameter registration constants */
#define VR_VIOGETCURPOS     0x00000001L
#define VR_VIOGETCURTYPE    0x00000002L
#define VR_VIOGETMODE       0x00000004L
#define VR_VIOGETBUF        0x00000008L
#define VR_VIOGETPHYSBUF    0x00000010L
#define VR_VIOSETCURPOS     0x00000020L
#define VR_VIOSETCURTYPE    0x00000040L
#define VR_VIOSETMODE       0x00000080L
#define VR_VIOSHOWBUF       0x00000100L
#define VR_VIOREADCHARSTR   0x00000200L
#define VR_VIOREADCELLSTR   0x00000400L
#define VR_VIOWRTNCHAR      0x00000800L
#define VR_VIOWRTNATTR      0x00001000L
#define VR_VIOWRTNCELL      0x00002000L
#define VR_VIOWRTTTY        0x00004000L
#define VR_VIOWRTCHARSTR    0x00008000L

#define VR_VIOWRTCHARSTRATT 0x00010000L
#define VR_VIOWRTCELLSTR    0x00020000L
#define VR_VIOSCROLLUP      0x00040000L
#define VR_VIOSCROLLDN      0x00080000L
#define VR_VIOSCROLLLF      0x00100000L
#define VR_VIOSCROLLRT      0x00200000L
#define VR_VIOSETANSI       0x00400000L
#define VR_VIOGETANSI       0x00800000L
#define VR_VIOPRTSC         0x01000000L
#define VR_VIOSCRLOCK       0x02000000L
#define VR_VIOSCRUNLOCK     0x04000000L
#define VR_VIOSAVREDRAWWAIT 0x08000000L
#define VR_VIOSAVREDRAWUNDO 0x10000000L
#define VR_VIOPOPUP         0x20000000L
#define VR_VIOENDPOPUP      0x40000000L
#define VR_VIOPRTSCTOGGLE   0x80000000L

/* second parameter registration constants */
#define VR_VIOMODEWAIT      0x00000001L
#define VR_VIOMODEUNDO      0x00000002L
#define VR_VIOGETFONT       0x00000004L
#define VR_VIOGETCONFIG     0x00000008L
#define VR_VIOSETCP         0x00000010L
#define VR_VIOGETCP         0x00000020L
#define VR_VIOSETFONT       0x00000040L
#define VR_VIOGETSTATE      0x00000080L
#define VR_VIOSETSTATE      0x00000100L

USHORT APIENTRY VioDeRegister ( void );

USHORT APIENTRY VioGetBuf ( PULONG, PUSHORT, HVIO );

USHORT APIENTRY VioGetCurPos ( PUSHORT, PUSHORT, HVIO );
USHORT APIENTRY VioSetCurPos ( USHORT, USHORT, HVIO );

/* structure for VioSet/GetCurType() */
typedef struct _VIOCURSORINFO { /* vioci */
        USHORT   yStart;
        USHORT   cEnd;
        USHORT   cx;
        USHORT   attr;
        } VIOCURSORINFO;
typedef VIOCURSORINFO FAR *PVIOCURSORINFO;

USHORT APIENTRY VioGetCurType ( PVIOCURSORINFO, HVIO );
USHORT APIENTRY VioSetCurType ( PVIOCURSORINFO, HVIO );

/* VIOMODEINFO.color constants */

#define COLORS_2   0x0001
#define COLORS_4   0x0002
#define COLORS_16  0x0004

/* structure for VioSet/GetMode() */
typedef struct _VIOMODEINFO {   /* viomi */
        USHORT cb;
        UCHAR  fbType;
        UCHAR  color;
        USHORT col;
        USHORT row;
        USHORT hres;
        USHORT vres;
        } VIOMODEINFO;
typedef VIOMODEINFO FAR *PVIOMODEINFO;

#define VGMT_OTHER          0x01
#define VGMT_GRAPHICS       0x02
#define VGMT_DISABLEBURST   0x04

USHORT APIENTRY VioGetMode ( PVIOMODEINFO, HVIO );
USHORT APIENTRY VioSetMode ( PVIOMODEINFO, HVIO );

/* structure for VioGetPhysBuf() */

typedef struct _VIOPHYSBUF {    /* viopb */
        PBYTE    pBuf;
        ULONG    cb;
        SEL      asel[1];
        } VIOPHYSBUF;
typedef VIOPHYSBUF far *PVIOPHYSBUF;

USHORT APIENTRY VioGetPhysBuf ( PVIOPHYSBUF, USHORT );

USHORT APIENTRY VioReadCellStr ( PCH, PUSHORT, USHORT, USHORT, HVIO );
USHORT APIENTRY VioReadCharStr ( PCH, PUSHORT, USHORT, USHORT, HVIO );
USHORT APIENTRY VioWrtCellStr ( PCH, USHORT, USHORT, USHORT, HVIO );
USHORT APIENTRY VioWrtCharStr ( PCH, USHORT, USHORT, USHORT, HVIO );

USHORT APIENTRY VioScrollDn ( USHORT, USHORT, USHORT, USHORT,
                              USHORT, PBYTE,  HVIO );
USHORT APIENTRY VioScrollUp ( USHORT, USHORT, USHORT, USHORT,
                              USHORT, PBYTE,  HVIO );
USHORT APIENTRY VioScrollLf ( USHORT, USHORT, USHORT, USHORT,
                              USHORT, PBYTE,  HVIO );
USHORT APIENTRY VioScrollRt ( USHORT, USHORT, USHORT, USHORT,
                              USHORT, PBYTE,  HVIO );

USHORT APIENTRY VioWrtNAttr ( PBYTE, USHORT, USHORT, USHORT, HVIO );
USHORT APIENTRY VioWrtNCell ( PBYTE, USHORT, USHORT, USHORT, HVIO );
USHORT APIENTRY VioWrtNChar ( PCH, USHORT, USHORT, USHORT, HVIO );
USHORT APIENTRY VioWrtTTY ( PCH, USHORT, HVIO );
USHORT APIENTRY VioWrtCharStrAtt ( PCH, USHORT, USHORT, USHORT, PBYTE, HVIO );

USHORT APIENTRY VioShowBuf ( USHORT, USHORT, HVIO );


#define ANSI_ON     1
#define ANSI_OFF    0

USHORT APIENTRY VioSetAnsi ( USHORT, HVIO );
USHORT APIENTRY VioGetAnsi ( PUSHORT, HVIO );

USHORT APIENTRY VioPrtSc ( HVIO );
USHORT APIENTRY VioPrtScToggle ( HVIO );

#define VSRWI_SAVEANDREDRAW  0
#define VSRWI_REDRAW         1

#define VSRWN_SAVE           0
#define VSRWN_REDRAW         1

#define UNDOI_GETOWNER          0
#define UNDOI_RELEASEOWNER      1

#define UNDOK_ERRORCODE         0
#define UNDOK_TERMINATE         1

USHORT APIENTRY VioSavRedrawWait ( USHORT, PUSHORT, USHORT);
USHORT APIENTRY VioSavRedrawUndo ( USHORT, USHORT, USHORT );

#define VMWR_POPUP  0
#define VMWN_POPUP  0

USHORT APIENTRY VioModeWait ( USHORT, PUSHORT, USHORT );
USHORT APIENTRY VioModeUndo ( USHORT, USHORT, USHORT );

#define LOCKIO_NOWAIT   0
#define LOCKIO_WAIT     1

#define LOCK_SUCCESS    0
#define LOCK_FAIL       1

USHORT APIENTRY VioScrLock ( USHORT, PUCHAR, HVIO );
USHORT APIENTRY VioScrUnLock ( HVIO );

#define VP_NOWAIT       0x0000
#define VP_WAIT         0x0001
#define VP_OPAQUE       0x0000
#define VP_TRANSPARENT  0x0002

USHORT APIENTRY VioPopUp ( PUSHORT, HVIO );
USHORT APIENTRY VioEndPopUp ( HVIO );

/* VIOCONFIGINFO.adapter constants */

#define DISPLAY_MONOCHROME  0x0000
#define DISPLAY_CGA	    0x0001
#define DISPLAY_EGA	    0x0002
#define DISPLAY_VGA         0x0003
#define DISPLAY_8514A       0x0007

/* VIOCONFIGINFO.display constants */

#define MONITOR_MONOCHROME  0x0000
#define MONITOR_COLOR	    0x0001
#define MONITOR_ENHANCED    0x0002
#define MONITOR_8503	    0x0003
#define MONITOR_851X_COLOR  0x0004
#define MONITOR_8514        0x0009

/* structure for VioGetConfig() */

typedef struct _VIOCONFIGINFO { /* vioin */
        USHORT  cb     ;
        USHORT  adapter;
        USHORT  display;
        ULONG   cbMemory;
        } VIOCONFIGINFO;
typedef VIOCONFIGINFO far *PVIOCONFIGINFO;

USHORT APIENTRY VioGetConfig ( USHORT, PVIOCONFIGINFO, HVIO );

/* structure for VioGet/SetFont() */
typedef struct _VIOFONTINFO {   /* viofi */
        USHORT  cb;
        USHORT  type;
        USHORT  cxCell;
        USHORT  cyCell;
        PVOID   pbData;
        USHORT  cbData;
        } VIOFONTINFO;
typedef VIOFONTINFO far *PVIOFONTINFO;

#define VGFI_GETCURFONT     0
#define VGFI_GETROMFONT     1

USHORT APIENTRY VioGetFont ( PVIOFONTINFO, HVIO );
USHORT APIENTRY VioSetFont ( PVIOFONTINFO, HVIO );

USHORT APIENTRY VioGetCp ( USHORT, PUSHORT, HVIO );
USHORT APIENTRY VioSetCp ( USHORT, USHORT, HVIO );

typedef struct _VIOPALSTATE {   /* viopal */
        USHORT  cb;
        USHORT  type;
        USHORT  iFirst;
        USHORT  acolor[1];
        }VIOPALSTATE;
typedef VIOPALSTATE far *PVIOPALSTATE;

typedef struct _VIOOVERSCAN {   /* vioos */
        USHORT  cb;
        USHORT  type;
        USHORT  color;
        }VIOOVERSCAN;
typedef VIOOVERSCAN far *PVIOOVERSCAN;

typedef struct _VIOINTENSITY {  /* vioint */
        USHORT  cb;
        USHORT  type;
        USHORT  fs;
        }VIOINTENSITY;
typedef VIOINTENSITY far *PVIOINTENSITY;

USHORT APIENTRY VioGetState ( PVOID, HVIO );
USHORT APIENTRY VioSetState ( PVOID, HVIO );

#endif /* INCL_VIO */

#ifdef INCL_MOU

typedef SHANDLE         HMOU;
typedef HMOU    far *   PHMOU;

USHORT APIENTRY MouRegister ( PSZ, PSZ, ULONG );

#define MR_MOUGETNUMBUTTONS 0x00000001L
#define MR_MOUGETNUMMICKEYS 0x00000002L
#define MR_MOUGETDEVSTATUS  0x00000004L
#define MR_MOUGETNUMQUEEL   0x00000008L
#define MR_MOUREADEVENTQUE  0x00000010L
#define MR_MOUGETSCALEFACT  0x00000020L
#define MR_MOUGETEVENTMASK  0x00000040L
#define MR_MOUSETSCALEFACT  0x00000080L
#define MR_MOUSETEVENTMASK  0x00000100L
#define MR_MOUOPEN          0x00000800L
#define MR_MOUCLOSE         0x00001000L
#define MR_MOUGETPTRSHAPE   0x00002000L
#define MR_MOUSETPTRSHAPE   0x00004000L
#define MR_MOUDRAWPTR       0x00008000L
#define MR_MOUREMOVEPTR     0x00010000L
#define MR_MOUGETPTRPOS     0x00020000L
#define MR_MOUSETPTRPOS     0x00040000L
#define MR_MOUINITREAL      0x00080000L
#define MR_MOUSETDEVSTATUS  0x00100000L

USHORT APIENTRY MouDeRegister ( void );

USHORT APIENTRY MouFlushQue ( HMOU );

#define MHK_BUTTON1         0x0001
#define MHK_BUTTON2         0x0002
#define MHK_BUTTON3         0x0004

/* structure for MouGet/SetPtrPos() */
typedef struct _PTRLOC {    /* moupl */
        USHORT row;
        USHORT col;
        } PTRLOC;
typedef PTRLOC far *PPTRLOC;

USHORT APIENTRY MouGetPtrPos ( PPTRLOC, HMOU );
USHORT APIENTRY MouSetPtrPos ( PPTRLOC, HMOU );

/* structure for MouGet/SetPtrShape() */
typedef struct _PTRSHAPE {  /* moups */
        USHORT cb;
        USHORT col;
        USHORT row;
        USHORT colHot;
        USHORT rowHot;
        } PTRSHAPE;
typedef PTRSHAPE far *PPTRSHAPE;

USHORT APIENTRY MouSetPtrShape ( PBYTE, PPTRSHAPE, HMOU );
USHORT APIENTRY MouGetPtrShape ( PBYTE, PPTRSHAPE, HMOU );

/* MouGetDevStatus/MouSetDevStatus device status constants */

#define MOUSE_QUEUEBUSY         0x0001
#define MOUSE_BLOCKREAD         0x0002
#define MOUSE_FLUSH             0x0004
#define MOUSE_UNSUPPORTED_MODE  0x0008
#define MOUSE_DISABLED          0x0100
#define MOUSE_MICKEYS           0x0200

USHORT APIENTRY MouGetDevStatus ( PUSHORT, HMOU );

USHORT APIENTRY MouGetNumButtons ( PUSHORT, HMOU );
USHORT APIENTRY MouGetNumMickeys ( PUSHORT, HMOU );

/* MouReadEventQue */

#define MOU_NOWAIT  0x0000
#define MOU_WAIT    0x0001

/* structure for MouReadEventQue() */
typedef struct _MOUEVENTINFO {  /* mouev */
        USHORT fs;
        ULONG  time;
        USHORT row;
        USHORT col;
        }MOUEVENTINFO;
typedef MOUEVENTINFO far *PMOUEVENTINFO;

USHORT APIENTRY MouReadEventQue ( PMOUEVENTINFO, PUSHORT, HMOU );

/* structure for MouGetNumQueEl() */
typedef struct _MOUQUEINFO {    /* mouqi */
        USHORT cEvents;
        USHORT cmaxEvents;
        } MOUQUEINFO;
typedef MOUQUEINFO far *PMOUQUEINFO;

USHORT APIENTRY MouGetNumQueEl ( PMOUQUEINFO, HMOU );

/* MouGetEventMask/MouSetEventMask events */

#define MOUSE_MOTION                0x0001
#define MOUSE_MOTION_WITH_BN1_DOWN  0x0002
#define MOUSE_BN1_DOWN              0x0004
#define MOUSE_MOTION_WITH_BN2_DOWN  0x0008
#define MOUSE_BN2_DOWN              0x0010
#define MOUSE_MOTION_WITH_BN3_DOWN  0x0020
#define MOUSE_BN3_DOWN              0x0040


USHORT APIENTRY MouGetEventMask ( PUSHORT, HMOU );
USHORT APIENTRY MouSetEventMask ( PUSHORT, HMOU );

/* structure for MouGet/SetScaleFact() */
typedef struct _SCALEFACT { /* mousc */
        USHORT rowScale;
        USHORT colScale;
        } SCALEFACT;
typedef SCALEFACT far *PSCALEFACT;

USHORT APIENTRY MouGetScaleFact ( PSCALEFACT, HMOU );
USHORT APIENTRY MouSetScaleFact ( PSCALEFACT, HMOU );

USHORT APIENTRY MouOpen ( PSZ, PHMOU );
USHORT APIENTRY MouClose ( HMOU );

/* structure for MouRemovePtr() */
typedef struct _NOPTRRECT { /* mourt */
        USHORT row;
        USHORT col;
        USHORT cRow;    /* spec says this is a coordinate, not a cx */
        USHORT cCol;
        } NOPTRRECT;
typedef NOPTRRECT far *PNOPTRRECT;

USHORT APIENTRY MouRemovePtr ( PNOPTRRECT, HMOU );

USHORT APIENTRY MouDrawPtr ( HMOU );

#define MOU_NODRAW      0x0001
#define MOU_DRAW        0x0000
#define MOU_MICKEYS     0x0002
#define MOU_PELS        0x0000

USHORT APIENTRY MouSetDevStatus ( PUSHORT, HMOU );
USHORT APIENTRY MouInitReal ( PSZ );

USHORT APIENTRY MouSynch( USHORT );

#endif /* INCL_MOU */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.