//////////////////////////////////////////////////////////////////////
//
// MxKeys.ch
//
//  Copyright:
//      Maniacc Software Inc., (c) 2003. All rights reserved.  To obtain rights to use
//      this code, please contact me at joe.carrick@att.net
//
//  Contents:
//      ********************************************************************************
//      defines for Keyboard Status Functions
//      ********************************************************************************
//
//////////////////////////////////////////////////////////////////////

#command SET CAPS ON	=> CapsLock( .T. )
#command SET CAPS OFF => CapsLock( .F. )

#command SET NUMLOCK ON  => NumLock( .T. )
#command SET NUMLOCK OFF => NumLock( .F. )

#command SET SCROLLLOCK ON  => ScrollLock( .T. )
#command SET SCROLLLOCK OFF => ScrollLock( .F. )

#command PRINT ACTIVE WINDOW => Print_Window( VK_SNAPSHOT,1,0,0 )
#command PRINT DESKTOP => Print_Window( VK_SNAPSHOT,0,0,0 )

#define INPUT_KEYBOARD	1

#define KEYEVENTF_EXTENDEDKEY 0x0001
#define KEYEVENTF_KEYUP       0x0002

/*
 * Virtual Keys, Standard Set
 */
#define VK_LBUTTON        0x0001
#define VK_RBUTTON        0x0002
#define VK_CANCEL         0x0003
#define VK_MBUTTON        0x0004    /* NOT contiguous with L & RBUTTON */

#define VK_BACK           0x0008
#define VK_TAB            0x0009

#define VK_CLEAR          0x000C
#define VK_RETURN         0x000D

#define VK_SHIFT          0x0010
#define VK_CONTROL        0x0011
#define VK_MENU           0x0012
#define VK_PAUSE          0x0013
#define VK_CAPITAL        0x0014

#define VK_KANA           0x0015
#define VK_HANGEUL        0x0015  /* old name - should be here for compatibility */
#define VK_HANGUL         0x0015
#define VK_JUNJA          0x0017
#define VK_FINAL          0x0018
#define VK_HANJA          0x0019
#define VK_KANJI          0x0019

#define VK_ESCAPE         0x001B

#define VK_CONVERT        0x001C
#define VK_NONCONVERT     0x001D
#define VK_ACCEPT         0x001E
#define VK_MODECHANGE     0x001F

#define VK_SPACE          0x0020
#define VK_PRIOR          0x0021
#define VK_NEXT           0x0022
#define VK_END            0x0023
#define VK_HOME           0x0024
#define VK_LEFT           0x0025
#define VK_UP             0x0026
#define VK_RIGHT          0x0027
#define VK_DOWN           0x0028
#define VK_SELECT         0x0029
#define VK_PRINT          0x002A
#define VK_EXECUTE        0x002B
#define VK_SNAPSHOT       0x002C
#define VK_INSERT         0x002D
#define VK_DELETE         0x002E
#define VK_HELP           0x002F

/* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
/* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */

#define VK_LWIN           0x005B
#define VK_RWIN           0x005C
#define VK_APPS           0x005D

#define VK_NUMPAD0        0x0060
#define VK_NUMPAD1        0x0061
#define VK_NUMPAD2        0x0062
#define VK_NUMPAD3        0x0063
#define VK_NUMPAD4        0x0064
#define VK_NUMPAD5        0x0065
#define VK_NUMPAD6        0x0066
#define VK_NUMPAD7        0x0067
#define VK_NUMPAD8        0x0068
#define VK_NUMPAD9        0x0069
#define VK_MULTIPLY       0x006A
#define VK_ADD            0x006B
#define VK_SEPARATOR      0x006C
#define VK_SUBTRACT       0x006D
#define VK_DECIMAL        0x006E
#define VK_DIVIDE         0x006F
#define VK_F1             0x0070
#define VK_F2             0x0071
#define VK_F3             0x0072
#define VK_F4             0x0073
#define VK_F5             0x0074
#define VK_F6             0x0075
#define VK_F7             0x0076
#define VK_F8             0x0077
#define VK_F9             0x0078
#define VK_F10            0x0079
#define VK_F11            0x007A
#define VK_F12            0x007B
#define VK_F13            0x007C
#define VK_F14            0x007D
#define VK_F15            0x007E
#define VK_F16            0x007F
#define VK_F17            0x0080
#define VK_F18            0x0081
#define VK_F19            0x0082
#define VK_F20            0x0083
#define VK_F21            0x0084
#define VK_F22            0x0085
#define VK_F23            0x0086
#define VK_F24            0x0087

#define VK_NUMLOCK        0x0090
#define VK_SCROLL         0x0091

/*
 * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
 * Used only as parameters to GetAsyncKeyState() and GetKeyState().
 * No other API or message will distinguish left and right keys in this way.
 */
#define VK_LSHIFT         0x00A0
#define VK_RSHIFT         0x00A1
#define VK_LCONTROL       0x00A2
#define VK_RCONTROL       0x00A3
#define VK_LMENU          0x00A4
#define VK_RMENU          0x00A5
/*
//#if(WINVER >= 0x0400)
#define VK_PROCESSKEY     0x00E5
//#endif /* WINVER >= 0x0400 */

#define VK_ATTN           0x00F6
#define VK_CRSEL          0x00F7
#define VK_EXSEL          0x00F8
#define VK_EREOF          0x00F9
#define VK_PLAY           0x00FA
#define VK_ZOOM           0x00FB
#define VK_NONAME         0x00FC
#define VK_PA1            0x00FD
#define VK_OEM_CLEAR      0x00FE
*/


