windows-nt/Source/XPSP1/NT/windows/feime/chs/ntabc/winabc/data.h
2020-09-26 16:20:57 +08:00

372 lines
14 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*************************************************
* data.h *
* *
* Copyright (C) 1995-1999 Microsoft Inc. *
* *
*************************************************/
extern WORD KeyBoardState;
extern HDC hMemoryDC;
extern HBITMAP cur_h;
extern BYTE cap_mode;
extern int kb_mode;
extern HANDLE hInputWnd;
extern WORD TimerCounter;
extern WORD cur_hibit;
extern int kb_flag , wait_flag ,waitzl_flag; //waitzl 1
extern BOOL cur_flag;
extern int TypeOfOutMsg;
extern char SoftKeyDef[3][100];
extern struct FMT now ;
extern WORD SoftKeyNum;
extern int unit_length;
extern HIMC ghIMC;
extern LPPRIVCONTEXT glpIMCP;
extern LPINPUTCONTEXT glpIMC;
extern BYTE bx_inpt_on;
extern BYTE InputBuffer[];
extern int now_cs_dot,now_cs;
extern WORD cur_start_ps;
extern WORD cur_start_count;
extern BYTE V_Flag,bx_inpt_on;
extern HANDLE cisu_hd;
BYTE step_mode =0;
int ShowCandTimerCount;
int CandWndChange = 0;
int CompWndChange = 0;
HINSTANCE hInst;
IMEG sImeG;
IMEL sImeL;
LPIMEL lpImeL;
BYTE szUIClassName[16];
BYTE szCompClassName[24];
BYTE szCandClassName[24];
BYTE szStatusClassName[24];
BYTE szHandCursor[] = "Hand";
BYTE szChinese[] = "Chinese";
BYTE szEnglish[] = "English";
BYTE szCode[] = "Code";
BYTE szEudc[] = "Eudc";
BYTE szFullShape[] = "FullShape";
BYTE szHalfShape[] = "HalfShape";
BYTE szNone[] = "None";
BYTE szNoSTD[] = "NOSTD";
BYTE szNoSDA[] = "NOSDA";
BYTE szSoftKBD[] = "SoftKBD";
BYTE szNoSoftKBD[] = "NoSoftKBD";
BYTE szDigit[] = "01234567890";
BYTE szSTD[] ="MODESTD";
BYTE szSDA[] ="MODESDA";
BYTE szCPCT[] ="CPCT";
BYTE szEPCT[] ="EPCT";
BYTE CUR_HB[] = "CUR_BMP";
BYTE szUpDown[] = "UPDOWN";
BYTE szFlower[] = "FLOWER";
BYTE szPageUp[] = "BPAGEUP";
BYTE szPageDown[] = "BPAGEDOWN";
BYTE szHome[] = "BHOME";
BYTE szEnd[] = "BEND";
BYTE szPageUp2[] = "BPAGEUP2";
BYTE szPgDown2[] = "BPGDOWN2";
BYTE szHome2[] = "BHOME2";
BYTE szEnd2[] = "BEND2";
BYTE szNumb[] = "NUMB";
BYTE szSnumb[] = "SNUMB";
// convert char to upper case
BYTE bUpper[] = {
// 0x20 - 0x27
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
// 0x28 - 0x2F
0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
// 0x30 - 0x37
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
// 0x38 - 0x3F
0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
// 0x40 - 0x47
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
// 0x48 - 0x4F
0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
// 0x50 - 0x57
0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
// 0x58 - 0x5F
0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
// ' a b c d e f g
'`', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
// h i j k l m n o
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
// p q r s t u v w
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
// x y z { | } ~
'X', 'Y', 'Z'
};
WORD fMask[] = { // offset of bitfield
0x0001, 0x0002, 0x0004, 0x0008, 0x0010, 0x0020, 0x0040, 0x0080,
0x0100, 0x0200, 0x0400, 0x0800, 0x1000, 0x2000, 0x4000, 0x8000
};
BYTE szRegIMESetting[] = "Control Panel\\Input Method";
// decide UI offset base on escapement
NEARCARET ncUIEsc[] = {
// LogFontHi ParaX PerpX ParaY PerpY
{ 1, 1, 0, 0, 1}, // 0
{ 0, 0, 1, 1, 0}, // 900
{ 0, -1, 0, 0, 1}, // 1800
{ 0, 0, -1, 1, 0} // 2700
};
// decide input rectangle base on escapement
POINT ptInputEsc[] = {
// LogFontWi LogFontHi
{1, 1}, // 0
{1, -1}, // 900
{-1, -1}, // 1800
{-1, 1} // 2700
};
// all shift keys are not for typing reading characters
BYTE bChar2VirtKey[] = {
// ' ' ! " # $ % & '
VK_SPACE, 0, 0, 0, 0, 0, 0, VK_OEM_QUOTE,
// ( ) * + , - . /
0, 0, 0, 0, VK_OEM_COMMA, VK_OEM_MINUS, VK_OEM_PERIOD, VK_OEM_SLASH,
// 0 1 2 3 4 5 6 7
'0', '1', '2', '3', '4', '5', '6', '7',
// 8 9 : ; < = > ?
'8', '9', 0, VK_OEM_SEMICLN, 0, VK_OEM_EQUAL, 0, 0,
// @ A B C D E F G
'!', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
// H I J K L M N O
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
// P Q R S T U V W
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
// X Y Z [ \ ] ^ _
'X', 'Y', 'Z', VK_OEM_LBRACKET, VK_OEM_BSLASH, VK_OEM_RBRACKET, 0, 0
};
// this table will convert key of other layout to the standard layout
// '!' for invalid key
BYTE bStandardLayout[4][0x41] = {
{
// ' ' ! " # $ % & '
' ', '!', '!', '!', '!', '!', '!', '!',
// ( ) * + , - . /
'!', '!', '!', '!', ',', '-', '.', '/',
// 0 1 2 3 4 5 6 7
'0', '1', '2', '3', '4', '5', '6', '7',
// 8 9 : ; < = > ?
'8', '9', '!', ';', '<', '!', '>', '?',
// @ A B C D E F G
'!', 'A', 'B', 'C', 'D', 'E', 'F', 'G',
// H I J K L M N O
'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O',
// P Q R S T U V W
'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
// X Y Z [ \ ] ^ _ `
'X', 'Y', 'Z', '!', '!', '!', '!', '!', '!'
}
, {
// ' ' ! " # $ % & '
' ', '!', '!', '!', '!', '!', '!', 'H',
// ( ) * + , - . /
'!', '!', '!', '!', '5', '/', 'T', 'G',
// 0 1 2 3 4 5 6 7
';', '7', '6', '3', '4', '!', '!', 'F',
// 8 9 : ; < = > ?
'0', 'P', '!', 'Y', '<', '-', '>', '?',
// @ A B C D E F G
'!', '8', '1', 'V', '2', 'U', 'Z', 'R',
// H I J K L M N O
'C', '9', 'B', 'D', 'X', 'A', 'S', 'I',
// P Q R S T U V W
'Q', 'O', 'K', 'N', 'W', 'M', 'E', ',',
// X Y Z [ \ ] ^ _ `
'J', '.', 'L', '!', '!', '!', '!', '!', '!'
}
, {
// ' ' ! " # $ % & '
' ', '!', '!', '!', '!', '!', '!', '!',
// ( ) * + , - . /
'!', '!', '!', '!', '3', 'C', '4', '7',
// 0 1 2 3 4 5 6 7
'D', '1', 'Q', 'A', 'Z', '2', 'W', 'S',
// 8 9 : ; < = > ?
'X', 'E', '!', 'L', '<', '!', '>', '?',
// @ A B C D E F G
'!', 'U', '/', 'P', 'M', 'V', '8', 'I',
// H I J K L M N O
'K', 'Y', ',', '9', 'O', '6', '-', 'H',
// P Q R S T U V W
'N', 'R', '5', 'J', 'T', 'B', ';', 'F',
// X Y Z [ \ ] ^ _ `
'0', 'G', '.', '!', '!', '!', '!', '!', '!'
}
, {
// ' ' ! " # $ % & '
' ', '!', '!', '!', '!', '!', '!', 'M',
// ( ) * + , - . /
'!', '!', '!', '!', ',', 'U', '.', '/',
// 0 1 2 3 4 5 6 7
'0', '7', '1', '2', '!', '!', '5', '!',
// 8 9 : ; < = > ?
'8', '9', '!', ';', '<', '-', '>', '?',
// @ A B C D E F G
'!', '3', 'V', 'X', 'S', 'W', 'D', 'F',
// H I J K L M N O
'G', 'I', 'H', 'K', 'L', 'N', 'B', 'O',
// P Q R S T U V W
'P', '6', 'E', 'A', 'R', 'Y', 'C', 'Q',
// X Y Z [ \ ] ^ _ `
'Z', 'T', '4', 'J', '!', '!', '!', '!', '!'
}
};
// the index (position) of bo, po, mo, and fo.
// only 0 to 3 is a valid value
char cIndexTable[] = {
// ' ' ! " # $ % & '
3, -1, -1, -1, -1, -1, -1, -1,
// ( ) * + , - . /
-1, -1, -1, -1, 2, 2, 2, 2,
// 0 1 2 3 4 5 6 7
2, 0, 0, 3, 3, 0, 3, 3,
// 8 9 : ; < = > ?
2, 2, -1, 2, -1, -1, -1, -1,
// @ A B C D E F G
-1, 0, 0, 0, 0, 0, 0, 0,
// H I J K L M N O
0, 2, 1, 2, 2, 1, 0, 2,
// P Q R S T U V W
2, 0, 0, 0, 0, 1, 0, 0,
// X Y Z [ \ ] ^ _ `
0, 0, 0, -1, -1, -1, -1, -1, -1
};
// convert sequence code to index [position]
char cSeq2IndexTbl[] = {
// 0 1 2 3 4 5 6 7
-1, 0, 0, 0, 0, 0, 0, 0,
// 8 9 10 11 12 13 14 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 17 18 19 20 21 22 23
0, 0, 0, 0, 0, 0, 1, 1,
// 24 25 26 27 28 29 30 31
1, 2, 2, 2, 2, 2, 2, 2,
// 32 33 34 35 36 37 38 39
2, 2, 2, 2, 2, 2, 3, 3,
// 40 41 42
3, 3, 3
};
const TCHAR szRegAppUser[] = REGSTR_PATH_SETUP;
const TCHAR szRegModeConfig[] = "Mode Configuration";
const TCHAR szRegNearCaret[] = REGSTR_PATH_SETUP ;
const TCHAR szAIABC[] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ABC";
//"Control Panel\\Input Method";
const TCHAR szPara[] = "Parallel Distance";
const TCHAR szPerp[] = "Perpendicular Distance";
const TCHAR szParaTol[] = "Parallel Tolerance";
const TCHAR szPerpTol[] = "Perpendicular Tolerance";
const TCHAR szKeyType[]="˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const TCHAR szImeStyle[] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const TCHAR szCpAuto[] = "<EFBFBD><EFBFBD>Ƶ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const TCHAR szBxFlag[] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const TCHAR szTuneFlag[] ="<EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
const TCHAR szAutoCvt[] = "<EFBFBD>Զ<EFBFBD>ת<EFBFBD><EFBFBD>";
const TCHAR szSdaHelp[] = "˫<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ";
//DATA.C sdk #4
const CHAR VirtKey48Map[48]
={VK_SPACE,'0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F','G','H','I','J','K',
'L','M','N','O','P','Q','R','S','T','U','V',
'W','X','Y','Z',
VK_OEM_SEMICLN,
VK_OEM_EQUAL,
//VK_OEM_PERIOD,
(CHAR)VK_OEM_COMMA,
(CHAR)VK_OEM_MINUS,
(CHAR)VK_OEM_PERIOD,
//VK_OEM_COMMA,
VK_OEM_SLASH,// '/'
(CHAR)VK_OEM_3, // '`' '~'
VK_OEM_LBRACKET, //'['
VK_OEM_BSLASH, //'\'
VK_OEM_RBRACKET, // ']'
VK_OEM_QUOTE // [']
};
CHAR SKLayout[NumsSK][48*2] = {
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۣܣݣ<EFBFBD>",
"<EFBFBD><EFBFBD> <20>ʦ֦Ԧ̦æͦΦϦȦЦ<C8A6> <20>ئצ<D8A6> <20><><EFBFBD>Ħ˦ŦǦզ¦ӦƦ<D3A6> ",
" <20>ݧ<EFBFBD><DDA7><EFBFBD><EFBFBD>ߧӧ<DFA7><D3A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ا<EFBFBD><D8A7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>٧ڧѧԧާէק<D5A7><D7A7>ҧ<EFBFBD><D2A7>֧<EFBFBD><D6A7><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20>ܧ<EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20>ڨި<DAA8><DEA8>Ǩ֨ϨΨͨѨըبۨ<D8A8><DBA8>ܨ<EFBFBD><DCA8><EFBFBD><EFBFBD>٨ߨ<D9A8><DFA8>ƨШ˨Ԩ<CBA8><D4A8>Ҩ<EFBFBD> <20>רȨ<D7A8> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ",
" <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> ",
"<EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʤ<EFBFBD><CAA4><EFBFBD><EFBFBD>̤<EFBFBD><CCA4>ͤΤϤĤҤդؤ<D5A4><D8A4><EFBFBD><EFBFBD>äƤ<C3A4><C6A4><EFBFBD><EFBFBD>ˤ<EFBFBD><CBA4><EFBFBD><EFBFBD><EFBFBD>ߤ<EFBFBD><DFA4>ޤ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򤡤<EFBFBD> <20><><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̥<EFBFBD><EFBFBD>ͥΥϥĥҥեإ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>åƥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>˥<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߥ<EFBFBD><EFBFBD>ޥۥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򥡥ȥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɢǢ碳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˢʢ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȣ<EFBFBD><EFBFBD>Ƣ<EFBFBD><EFBFBD>Ţ<EFBFBD> <20>̢<EFBFBD><CCA2>͢΢<CDA2> ",
"<EFBFBD><EFBFBD> <20>ԡ٣<D4A1><D9A3>ܡݣ<DCA1><DDA3><EFBFBD><EFBFBD>ڡۡġѡϡƣ<CFA1><C6A3>ǡȡɡҡ<C9A1> <20>ߡסաӡء<D3A1><D8A1><EFBFBD><EFBFBD>š<EFBFBD> <20>У<EFBFBD><D0A3>Σ<EFBFBD><CEA3>͡<EFBFBD> <20>ˡ<EFBFBD> <20>֡<EFBFBD> ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>׼<EFBFBD><D7BC><EFBFBD>̫<EFBFBD>İ<EFBFBD> <20>˾š<CBBE><C5A1><EFBFBD>ǧ<EFBFBD><C7A7><EFBFBD><EFBFBD>΢һ<CEA2><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ʮ ",
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>Щ<EFBFBD><D0A9><EFBFBD><EFBFBD>ҩ©өԩթǩ֩<C7A9> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>éѩĩƩ<C4A9><C6A9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ũ<EFBFBD> <20><20><><EFBFBD><EFBFBD> <20><> ",
"<EFBFBD><EFBFBD> <20><><EFBFBD>ޣ<EFBFBD><DEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߡ<EFBFBD><DFA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܡ<EFBFBD><DCA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ",
};
CHAR SKLayoutS[NumsSK][48*2] = {
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>",
" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ",
" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>",
" ",
" ",
" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѥ<EFBFBD><D1A4><EFBFBD><EFBFBD>פ<EFBFBD><D7A4>ڤݤФŤӤ֤٤<D6A4><D9A4><EFBFBD> <20>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD>Ԥ<EFBFBD><D4A4>¤줸<C2A4><ECA4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD> ",
" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ѥ<EFBFBD><D1A5><EFBFBD><EFBFBD>ץ<EFBFBD><D7A5>ڥݥХťӥ֥٥<D6A5><D9A5><EFBFBD> <20>ǥ<EFBFBD><C7A5><EFBFBD><EFBFBD>ԥ<EFBFBD><D4A5>¥쥸<C2A5><ECA5B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܥ<EFBFBD><DCA5><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> ",
" ",
" <20>٢ӢѢۢ<D1A2><DBA2>ܢݢޢ¢ߢ<C2A2><DFA2><EFBFBD><EFBFBD>բԢâĢ<C3A2><C4A2><EFBFBD><EFBFBD>ڢ<EFBFBD><DAA2><EFBFBD><EFBFBD>Ң<EFBFBD><D2A2>Т<EFBFBD><D0A2>Ϣ<EFBFBD> <20><> <20>ע<EFBFBD> ",
" ",
" <20><> <20><> <20><> <20>ƾ<EFBFBD><C6BE><EFBFBD><EFBFBD><EFBFBD>Ǫ<EFBFBD><C7AA>½ Ҽ <20><> ʰ ",
" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>ة<EFBFBD><D8A9><EFBFBD><EFBFBD>کʩ۩ܩݩϩީ<CFA9> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>ȩ˩٩̩Ω<CCA9><CEA9>ɩ<EFBFBD><C9A9>ͩ<EFBFBD> <20><20><><EFBFBD><EFBFBD> <20><> ",
" ",
};
BYTE PcKb[48*2] =
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ۣܣݣ<EFBFBD>";
BYTE SdaKb[48*2]=
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
BYTE SPcKb[48*2]=
"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ޣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>£ãģţƣǣȣɣʣˣ̣ͣΣϣУѣңӣԣգ֣ףأ٣ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
BYTE SSdaKb[48*2]={'\xa1', '\xa1'};
const NEARCARET ncAltUIEsc[] = {
// LogFontX LogFontY ParaX PerpX ParaY PerpY
{ 0, 0, 1, 0, 0, -1}, // 0
{ 0, 0, 0, -1, 1, 0}, // 900
{ 0, 0, -1, 0, 0, -1}, // 1800
{ 0, 0, 0, 1, -1, 0} // 2700
};
const POINT ptAltInputEsc[] = {
// LogFontWi LogFontHi
{1, -1}, // 0
{-1, -1}, // 900
{1, -1}, // 1800
{1, 1} // 2700
};