#ifndef __SFJP_MYU__AGH_KeyCode_H__
#define __SFJP_MYU__AGH_KeyCode_H__

//	ASCIIコードとして存在している制御文字。そのままASCIIコードを利用する
#define AGH_KEYCODE_NULL		(0x00)
#define AGH_KEYCODE_BS			(0x08)		//	Back space
#define AGH_KEYCODE_BACKSPACE	(0x08)		//	Back space
#define AGH_KEYCODE_TAB			(0x09)		//	Tab。'\t'でも可
#define AGH_KEYCODE_HTAB		(0x09)		//	Horizontal Tab。普通のタブ（AGH_KEYCODE_TAB）と同じ
#define AGH_KEYCODE_RETURN		(0x0A)		//	Enterキー
#define AGH_KEYCODE_ENTER		(0x0A)		//	Enterキー
#define AGH_KEYCODE_ESC			(0x1B)		//	エスケープ（ESC）キー
#define AGH_KEYCODE_ESCAPE		(0x1B)		//	エスケープ（ESC）キー
#define AGH_KEYCODE_SP			(0x20)		//	スペースキー。' 'でも可
#define AGH_KEYCODE_SPACE		(0x20)		//	スペースキー。' 'でも可
#define AGH_KEYCODE_DELETE		(0x7F)		//	Deleteキー

//// こっからはASCIIコード以降のコードを使う : After ASCII Code /////////////////

#define AGH_KEYCODE_UP			(130)			//	矢印キー上
#define AGH_KEYCODE_DOWN		(131)			//	矢印キー下
#define AGH_KEYCODE_LEFT		(132)			//	矢印キー左
#define AGH_KEYCODE_RIGHT		(133)			//	矢印キー右

#define AGH_KEYCODE_ARROWUP		(AGH_KEYCODE_UP)	//	矢印キー上
#define AGH_KEYCODE_ARROWDOWN	(AGH_KEYCODE_DOWN)	//	矢印キー下
#define AGH_KEYCODE_ARROWLEFT	(AGH_KEYCODE_LEFT)	//	矢印キー左
#define AGH_KEYCODE_ARROWRIGHT	(AGH_KEYCODE_RIGHT)	//	矢印キー右

#define AGH_KEYCODE_ARWUP		(AGH_KEYCODE_UP)	//	矢印キー上
#define AGH_KEYCODE_ARWDOWN		(AGH_KEYCODE_DOWN)	//	矢印キー下
#define AGH_KEYCODE_ARWLEFT		(AGH_KEYCODE_LEFT)	//	矢印キー左
#define AGH_KEYCODE_ARWRIGHT	(AGH_KEYCODE_RIGHT)	//	矢印キー右

#define AGH_KEYCODE_LCTRL		(0x90)					//	左コントロール（Ctrl）キー
#define AGH_KEYCODE_RCTRL		(AGH_KEYCODE_LCTRL+1)	//	右コントロール（Ctrl）キー
#define AGH_KEYCODE_LSHIFT		(AGH_KEYCODE_LCTRL+2)	//	左シフト（Shift）キー
#define AGH_KEYCODE_RSHIFT		(AGH_KEYCODE_LCTRL+3)	//	右シフト（Shift）キー
#define AGH_KEYCODE_LALT		(AGH_KEYCODE_LCTRL+4)	//	左Altキー
#define AGH_KEYCODE_RALT		(AGH_KEYCODE_LCTRL+5)	//	右Altキー
#define AGH_KEYCODE_LWIN		(AGH_KEYCODE_LCTRL+6)	//	左Windowsキー
#define AGH_KEYCODE_RWIN		(AGH_KEYCODE_LCTRL+7)	//	右Windowsキー
#define AGH_KEYCODE_LWINDOWS	(AGH_KEYCODE_LWIN)		//	左Windowsキー
#define AGH_KEYCODE_RWINDOWS	(AGH_KEYCODE_RWIN)		//	右Windowsキー
#define AGH_KEYCODE_MENU		(AGH_KEYCODE_RCTRL+8)	//	メニューキー（右Ctrlの左の奴）
#define AGH_KEYCODE_RMENU		(AGH_KEYCODE_MENU)		//	メニューキー（右Ctrlの左の奴）

#define AGH_KEYCODE_CAPSLOCK	(0xa0)			//	Caps Lock
#define AGH_KEYCODE_KANJI		(0xa1)			//	漢字キー（「半角/全角」キー）
#define AGH_KEYCODE_KANA		(0xa2)			//	かなキー（「カタカナ　ひらがな」キー）
#define AGH_KEYCODE_MUHENKAN	(0xa8)			//	無変換キー
#define AGH_KEYCODE_HENKAN		(0xa9)			//	変換キー

#define AGH_KEYCODE_INSERT		(0xb1)			//	Insertキー
//#define AGH_KEYCODE_DELETE	(0xb2)	//	既に7Fであんじゃん
#define AGH_KEYCODE_HOME		(0xb3)			//	Homeキー
#define AGH_KEYCODE_END			(0xb4)			//	Endキー
#define AGH_KEYCODE_PGDOWN		(0xb5)			//	PageDownキー
#define AGH_KEYCODE_PGUP		(0xb6)			//	PageUpキー
#define AGH_KEYCODE_PAGEDOWN	(AGH_KEYCODE_PGDOWN)	//	PageDownキー
#define AGH_KEYCODE_PGDWN		(AGH_KEYCODE_PGDOWN)	//	PageDownキー
#define AGH_KEYCODE_PGDN		(AGH_KEYCODE_PGDOWN)	//	PageDownキー
#define AGH_KEYCODE_PAGEUP		(AGH_KEYCODE_PGUP)		//	PageUpキー

/*#define AGH_KEYCODE_UP		(130)
#define AGH_KEYCODE_DOWN		(131)
#define AGH_KEYCODE_LEFT		(132)
#define AGH_KEYCODE_RIGHT		(133)*/

#define AGH_KEYCODE_F1			(0xc1)					//	ファンクションキー F1
#define AGH_KEYCODE_F2			(AGH_KEYCODE_F1+1)		//	ファンクションキー F2
#define AGH_KEYCODE_F3			(AGH_KEYCODE_F1+2)		//	ファンクションキー F3
#define AGH_KEYCODE_F4			(AGH_KEYCODE_F1+3)		//	ファンクションキー F4
#define AGH_KEYCODE_F5			(AGH_KEYCODE_F1+4)		//	ファンクションキー F5
#define AGH_KEYCODE_F6			(AGH_KEYCODE_F1+5)		//	ファンクションキー F6
#define AGH_KEYCODE_F7			(AGH_KEYCODE_F1+6)		//	ファンクションキー F7
#define AGH_KEYCODE_F8			(AGH_KEYCODE_F1+7)		//	ファンクションキー F8
#define AGH_KEYCODE_F9			(AGH_KEYCODE_F1+8)		//	ファンクションキー F9
#define AGH_KEYCODE_F10			(AGH_KEYCODE_F1+9)		//	ファンクションキー F10
#define AGH_KEYCODE_F11			(AGH_KEYCODE_F1+10)		//	ファンクションキー F11
#define AGH_KEYCODE_F12			(AGH_KEYCODE_F1+11)		//	ファンクションキー F12
#define AGH_KEYCODE_F13			(AGH_KEYCODE_F1+12)		//	ファンクションキー F13（なんかPC98だとあると言う噂が・・・）
#define AGH_KEYCODE_F14			(AGH_KEYCODE_F1+13)		//	ファンクションキー F14（なんかPC98だとあると言う噂が・・・）
#define AGH_KEYCODE_F15			(AGH_KEYCODE_F1+14)		//	ファンクションキー F15（なんかPC98だとあると言う噂が・・・）
#define AGH_KEYCODE_F16			(AGH_KEYCODE_F1-1)		//	ファンクションキー F16（Macとかだとある場合があるらしいですよ（何

#define AGH_KEYCODE_NUMLOCK		(0xef)
#define AGH_KEYCODE_NL			(AGH_KEYCODE_NUMLOCK)
#define AGH_KEYCODE_NUMPAD0		(0xf0)
#define AGH_KEYCODE_TENKEY0		(AGH_KEYCODE_NUMPAD0)
#define AGH_KEYCODE_NUMPAD1		(AGH_KEYCODE_NUMPAD0+1)
#define AGH_KEYCODE_TENKEY1		(AGH_KEYCODE_NUMPAD0+1)
#define AGH_KEYCODE_NUMPAD2		(AGH_KEYCODE_NUMPAD0+2)
#define AGH_KEYCODE_TENKEY2		(AGH_KEYCODE_NUMPAD0+2)
#define AGH_KEYCODE_NUMPAD3		(AGH_KEYCODE_NUMPAD0+3)
#define AGH_KEYCODE_TENKEY3		(AGH_KEYCODE_NUMPAD0+3)
#define AGH_KEYCODE_NUMPAD4		(AGH_KEYCODE_NUMPAD0+4)
#define AGH_KEYCODE_TENKEY4		(AGH_KEYCODE_NUMPAD0+4)
#define AGH_KEYCODE_NUMPAD5		(AGH_KEYCODE_NUMPAD0+5)
#define AGH_KEYCODE_TENKEY5		(AGH_KEYCODE_NUMPAD0+5)
#define AGH_KEYCODE_NUMPAD6		(AGH_KEYCODE_NUMPAD0+6)
#define AGH_KEYCODE_TENKEY6		(AGH_KEYCODE_NUMPAD0+6)
#define AGH_KEYCODE_NUMPAD7		(AGH_KEYCODE_NUMPAD0+7)
#define AGH_KEYCODE_TENKEY7		(AGH_KEYCODE_NUMPAD0+7)
#define AGH_KEYCODE_NUMPAD8		(AGH_KEYCODE_NUMPAD0+8)
#define AGH_KEYCODE_TENKEY8		(AGH_KEYCODE_NUMPAD0+8)
#define AGH_KEYCODE_NUMPAD9		(AGH_KEYCODE_NUMPAD0+9)
#define AGH_KEYCODE_TENKEY9		(AGH_KEYCODE_NUMPAD0+9)
#define AGH_KEYCODE_NUMPAD_DOT	(AGH_KEYCODE_NUMPAD0+10)
#define AGH_KEYCODE_TENKEY_DOT	(AGH_KEYCODE_NUMPAD0+10)
#define AGH_KEYCODE_NUMPAD_SLASH	(AGH_KEYCODE_NUMPAD0+11)
#define AGH_KEYCODE_TENKEY_SLASH	(AGH_KEYCODE_NUMPAD0+11)
#define AGH_KEYCODE_NUMPAD_ASTER	(AGH_KEYCODE_NUMPAD0+12)
#define AGH_KEYCODE_TENKEY_ASTER	(AGH_KEYCODE_NUMPAD0+12)
#define AGH_KEYCODE_NUMPAD_MINUS	(AGH_KEYCODE_NUMPAD0+13)
#define AGH_KEYCODE_TENKEY_MINUS	(AGH_KEYCODE_NUMPAD0+13)
#define AGH_KEYCODE_NUMPAD_PLUS		(AGH_KEYCODE_NUMPAD0+14)
#define AGH_KEYCODE_TENKEY_PLUS		(AGH_KEYCODE_NUMPAD0+14)
#define AGH_KEYCODE_NUMPAD_ENTER	(AGH_KEYCODE_NUMPAD0+15)
#define AGH_KEYCODE_TENKEY_ENTER	(AGH_KEYCODE_NUMPAD0+15)
/*#define AGH_KEYCODE_NUMPAD_HOME	(AGH_KEYCODE_NUMPAD0+16)
#define AGH_KEYCODE_TENKEY_HOME		(AGH_KEYCODE_NUMPAD0+16)*/

#define AGH_KEYCODE_PS			(0xe1)
#define AGH_KEYCODE_PRTSCR		(AGH_KEYCODE_PS)
#define AGH_KEYCODE_PRTSCRN		(AGH_KEYCODE_PS)
#define AGH_KEYCODE_PRINT_SCREEN(AGH_KEYCODE_PS)
#define AGH_KEYCODE_PRINTSCREEN	(AGH_KEYCODE_PS)
#define AGH_KEYCODE_SL			(0xe2)
#define AGH_KEYCODE_SCRLCK		(AGH_KEYCODE_SL)
#define AGH_KEYCODE_SCROLL_LOCK	(AGH_KEYCODE_SL)
#define AGH_KEYCODE_SCROLLLOCK	(AGH_KEYCODE_SL)
#define AGH_KEYCODE_PAUSE		(0xe3)


///////////////////////////////////////////////////////////////////////////


#define AGH_KEYCODE_EQUALS          0x0D
#define AGH_KEYCODE_LBRACKET        0x1A
#define AGH_KEYCODE_RBRACKET        0x1B
#define AGH_KEYCODE_LCONTROL        0x1D
#define AGH_KEYCODE_SEMICOLON       0x27
#define AGH_KEYCODE_APOSTROPHE      0x28
#define AGH_KEYCODE_GRAVE           0x29    /* accent grave */
#define AGH_KEYCODE_BACKSLASH       0x2B
#define AGH_KEYCODE_COMMA           0x33
#define AGH_KEYCODE_PERIOD          0x34    /* . on main keyboard */
#define AGH_KEYCODE_SLASH           0x35    /* / on main keyboard */
#define AGH_KEYCODE_MULTIPLY        0x37    /* * on numeric keypad */
#define AGH_KEYCODE_CAPITAL         0x3A
#define AGH_KEYCODE_SCROLL          0x46    /* Scroll Lock */
#define AGH_KEYCODE_SUBTRACT        0x4A    /* - on numeric keypad */
#define AGH_KEYCODE_ADD             0x4E    /* + on numeric keypad */
#define AGH_KEYCODE_DECIMAL         0x53    /* . on numeric keypad */
#define AGH_KEYCODE_OEM_102         0x56    /* <> or \| on RT 102-key keyboard (Non-U.S.) */
#define AGH_KEYCODE_ABNT_C1         0x73    /* /? on Brazilian keyboard */
#define AGH_KEYCODE_ABNT_C2         0x7E    /* Numpad . on Brazilian keyboard */
#define AGH_KEYCODE_NUMPADEQUALS    0x8D    /* = on numeric keypad (NEC PC98) */
#define AGH_KEYCODE_PREVTRACK       0x90    /* Previous Track (AGH_KEYCODE_CIRCUMFLEX on Japanese keyboard) */
#define AGH_KEYCODE_AT              0x91    /*                     (NEC PC98) */
#define AGH_KEYCODE_COLON           0x92    /*                     (NEC PC98) */
#define AGH_KEYCODE_UNDERLINE       0x93    /*                     (NEC PC98) */
#define AGH_KEYCODE_STOP            0x95    /*                     (NEC PC98) */
#define AGH_KEYCODE_AX              0x96    /*                     (Japan AX) */
#define AGH_KEYCODE_UNLABELED       0x97    /*                        (J3100) */
#define AGH_KEYCODE_NEXTTRACK       0x99    /* Next Track */
#define AGH_KEYCODE_NUMPADENTER     0x9C    /* Enter on numeric keypad */
#define AGH_KEYCODE_RCONTROL        0x9D
#define AGH_KEYCODE_MUTE            0xA0    /* Mute */
#define AGH_KEYCODE_CALCULATOR      0xA1    /* Calculator */
#define AGH_KEYCODE_PLAYPAUSE       0xA2    /* Play / Pause */
#define AGH_KEYCODE_MEDIASTOP       0xA4    /* Media Stop */
#define AGH_KEYCODE_VOLUMEDOWN      0xAE    /* Volume - */
#define AGH_KEYCODE_VOLUMEUP        0xB0    /* Volume + */
#define AGH_KEYCODE_WEBHOME         0xB2    /* Web home */
#define AGH_KEYCODE_NUMPADCOMMA     0xB3    /* , on numeric keypad (NEC PC98) */
#define AGH_KEYCODE_DIVIDE          0xB5    /* / on numeric keypad */
#define AGH_KEYCODE_SYSRQ           0xB7
#define AGH_KEYCODE_PRIOR           0xC9    /* PgUp on arrow keypad */
#define AGH_KEYCODE_NEXT            0xD1    /* PgDn on arrow keypad */
#define AGH_KEYCODE_APPS            0xDD    /* AppMenu key */
#define AGH_KEYCODE_POWER           0xDE    /* System Power */
#define AGH_KEYCODE_SLEEP           0xDF    /* System Sleep */
#define AGH_KEYCODE_WAKE            0xE3    /* System Wake */
#define AGH_KEYCODE_WEBSEARCH       0xE5    /* Web Search */
#define AGH_KEYCODE_WEBFAVORITES    0xE6    /* Web Favorites */
#define AGH_KEYCODE_WEBREFRESH      0xE7    /* Web Refresh */
#define AGH_KEYCODE_WEBSTOP         0xE8    /* Web Stop */
#define AGH_KEYCODE_WEBFORWARD      0xE9    /* Web Forward */
#define AGH_KEYCODE_WEBBACK         0xEA    /* Web Back */
#define AGH_KEYCODE_MYCOMPUTER      0xEB    /* My Computer */
#define AGH_KEYCODE_MAIL            0xEC    /* Mail */
#define AGH_KEYCODE_MEDIASELECT     0xED    /* Media Select */



#endif//__SFJP_MYU__AGH_KeyCode_H__
