Metropoli BBS
VIEWER: vkbd.h MODE: TEXT (ASCII)
/***	VKBD.H
 *
 *	For include file hierarchy, see MVDM.H
 *
 */


#ifndef INCL_NONE		/*  include everything by default */
#define INCL_VKBD
#endif

#ifdef	INCL_VKBD
#define INCL_VKBDSYSREQ
#define INCL_VKBDINTERFACES
#endif



#ifdef	INCL_VKBDSYSREQ

/***	VKBD constants
 */

#define VKBD_NAME		"VKBD$"

/* VKBD functions for use by PMVDMP
 */
#define VKBDSYSREQ_SETACCESS	1   /*  Obtain exclusive access for VDM */
#define VKBDSYSREQ_SETFOCUS	2   /*  Notify VDM is gaining/losing focus */
#define VKBDSYSREQ_POSTSCAN	3   /*  Send scan code (typed) */
#define VKBDSYSREQ_POSTCHAR	4   /*  Send character code (pasted) */
#define VKBDSYSREQ_MAX		4


/***	VKBD data types
 */

typedef struct keypkt_s {	    /* kp (for VKBDSYSREQ_POSTSCAN/CHAR) */
    UCHAR	kp_Scan;	    /*  scan code */
    UCHAR	kp_Char;	    /*  translated char */
    USHORT	kp_fsState;	    /*  shift states */
    USHORT	kp_fsDDFlags;	    /*  translated flags */
    USHORT	kp_fsKey;	    /*  key flags */
} KEYPKT;
typedef KEYPKT *PKEYPKT;
typedef PKEYPKT *PPKEYPKT;

typedef struct shiftpkt_s {	    /* sp (for VKBDSYSREQ_SETFOCUS) */
    USHORT	fSetFocus;	    /*  TRUE to set focus, FALSE to clear focus */
    USHORT	fsShift;	    /*  PM shift states during set focus */
				    /*    undefined during clear focus */
} SHIFTPKT;
typedef SHIFTPKT *PSHIFTPKT;
typedef PSHIFTPKT *PPSHIFTPKT;

#endif /* INCL_VKBDSYSREQ */



/***	VKBD function prototypes
 */

#ifdef INCL_VKBDINTERFACES

typedef (*PASCAL PFNSCRNP)(VOID);

VOID VDHENTRY VDHRegisterScreenProc(PFNSCRNP);
USHORT VDHENTRY VDHQueryKeyShift(HVDM);

/*  VPL Idle detection services */
VOID VDHENTRY VDHWakeIdle(HVDM);
VOID VDHENTRY VDHReportPeek(ULONG);
VOID VDHENTRY VDHNotIdle(VOID);

/*  requests for SVC access to VPL polling services */
#define VPL_NAME "VPL_IDLE"
#define VDHVPL_BUSY_ADDR 0	   /*  provide V86 busy byte address */
#define VDHVPL_WAIT	 1	   /*  make VDM sleep */
#define VDHVPL_NOIDLE	 2	   /*  Turn idle detection off */
#define VDHVPL_WAKE	 3	   /*  Report busy activity */

#endif
[ RETURN TO DIRECTORY ]