Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

160 lines
4.2 KiB

/****************************** 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_