|
|
/****************************** Module Header ******************************\
* Module Name: access.h * * Copyright (c) 1985 - 1999, Microsoft Corporation * * Typedefs, defines, and prototypes that are used by the accessibility * routines and the various routines that call them (input routines and * SystemParametersInfo). * * History: * 11 Feb 93 GregoryW Created \***************************************************************************/
#ifndef _ACCESS_
#define _ACCESS_
/*
* Main accessibility routine entry points. */ typedef BOOL (* ACCESSIBILITYPROC)(PKE, ULONG, int);
BOOL FilterKeys(PKE, ULONG, int); BOOL xxxStickyKeys(PKE, ULONG, int); BOOL MouseKeys(PKE, ULONG, int); BOOL ToggleKeys(PKE, ULONG, int); BOOL HighContrastHotKey(PKE, ULONG, int); BOOL UtilityManager(PKE, ULONG, int);
BOOL AccessProceduresStream(PKE, ULONG, int); VOID SetAccessEnabledFlag(VOID); VOID StopFilterKeysTimers(VOID);
/*
* Sound support. */ typedef BOOL (* BEEPPROC)(void);
BOOL HighBeep(void); BOOL LowBeep(void); BOOL KeyClick(void); BOOL UpSiren(void); BOOL DownSiren(void); BOOL DoBeep(BEEPPROC BeepProc, UINT Count);
/*
* Macros for dwFlags support */ #define TEST_ACCESSFLAG(s, f) TEST_FLAG(g##s.dwFlags, f)
#define TEST_BOOL_ACCESSFLAG(s, f) TEST_BOOL_FLAG(g##s.dwFlags, f)
#define SET_ACCESSFLAG(s, f) SET_FLAG(g##s.dwFlags, f)
#define CLEAR_ACCESSFLAG(s, f) CLEAR_FLAG(g##s.dwFlags, f)
#define SET_OR_CLEAR_ACCESSFLAG(s, f, fSet) SET_OR_CLEAR_FLAG(g##s.dwFlags, f, fSet)
#define TOGGLE_ACCESSFLAG(s, f) TOGGLE_FLAG(g##s.dwFlags, f)
#define RIGHTSHIFTBIT 0x2
#define ONLYRIGHTSHIFTDOWN(state) ((state) == RIGHTSHIFTBIT)
#define FKFIRSTWARNINGTIME 4000
#define FKACTIVATIONDELTA 4000
#define FKEMERGENCY1DELTA 4000
#define FKEMERGENCY2DELTA 4000
//
// Warning: do not change the ordering of these.
//
#define FKIDLE 0
#define FKFIRSTWARNING 1
#define FKTOGGLE 2
#define FKFIRSTLEVELEMERGENCY 3
#define FKSECONDLEVELEMERGENCY 4
#define FKMOUSEMOVE 8
/*
* StickyKeys support. */ #define TOGGLE_STICKYKEYS_COUNT 5
#define UNION(x, y) ((x) | (y))
#define LEFTSHIFTKEY(key) (((key) & 0xff) == VK_LSHIFT)
#define RIGHTSHIFTKEY(key) (((key) & 0xff) == VK_RSHIFT)
#define LEFTORRIGHTSHIFTKEY(key) (LEFTSHIFTKEY(key) || RIGHTSHIFTKEY(key))
BOOL xxxTwoKeysDown(int); VOID SetGlobalCursorLevel(INT iCursorLevel); VOID xxxUpdateModifierState(int, int); VOID xxxTurnOffStickyKeys(VOID); VOID xxxHardwareMouseKeyUp(DWORD);
/*
* ToggleKeys support. */ #define TOGGLEKEYTOGGLETIME 5000
/*
* MouseKeys support. */
//
// Parameter Constants for xxxButtonEvent()
//
#define MOUSE_BUTTON_LEFT 0x0001
#define MOUSE_BUTTON_RIGHT 0x0002
#define MOUSEKEYMODBITS 0x11
#define LRALT 0x30
#define LRCONTROL 0x0c
#define LRSHIFT 0x03
#define LRWIN 0xc0
#define VK_U 0x55
//
// Mouse cursor movement data.
//
#define MK_UP 0xFF00
#define MK_DOWN 0x0100
#define MK_RIGHT 0x0001
#define MK_LEFT 0x00FF
#define MOUSETIMERRATE 50
#define MOUSETICKS (1000 / MOUSETIMERRATE)
/*
* Factor for high-speed movement. */ #define MK_CONTROL_SPEED 4
/*
* Valid ranges and default values. */ #define MAXSPEED_MIN (10)
#define MAXSPEED_MAX (360)
#define MAXSPEED_DEF (40)
#define TIMETOMAXSPEED_MIN (1000)
#define TIMETOMAXSPEED_MAX (5000)
#define TIMETOMAXSPEED_DEF (3000)
typedef BOOL (* MOUSEPROC)(USHORT);
VOID TurnOffMouseKeys(VOID); BOOL xxxMKButtonClick(USHORT); BOOL xxxMKMouseMove(USHORT); BOOL xxxMKButtonSetState(USHORT); BOOL MKButtonSelect(USHORT); BOOL xxxMKButtonDoubleClick(USHORT); BOOL xxxMKToggleMouseKeys(USHORT); VOID MKShowMouseCursor(VOID); VOID MKHideMouseCursor(VOID); VOID CalculateMouseTable(VOID);
/*
* TimeOut support. */ VOID AccessTimeOutReset(VOID); VOID xxxAccessTimeOutTimer(PWND, UINT, UINT_PTR, LPARAM);
/*
* SoundSentry support. */ BOOL _UserSoundSentryWorker(VOID);
#endif // !_ACCESS_
|