data.c

来自「蒙古文输入法源码」· C语言 代码 · 共 348 行 · 第 1/2 页

C
348
字号

        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,

        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x4F70, 0x0020, 0x0020, 0x0020, 0x8D30,
        0x0020, 0x0020, 0x0020, 0x67D2, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x634C, 0x7396, 0x96F6, 0x53C1, 0x4EDF, 0x8086, 0x9646,
        0x0020, 0x58F9, 0x0020, 0x4F0D, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x62FE, 0x0020, 0x0020, 0x0020, 

        0x0020, 0x2505, 0x2515, 0x2516, 0x2517, 0x2518, 0x2519, 0x251A,
        0x251B, 0x0020, 0x2501, 0x2534, 0x2548, 0x2546, 0x2536, 0x2526,
        0x2537, 0x2538, 0x2539, 0x252B, 0x253A, 0x253B, 0x0020, 0x254A,
        0x2549, 0x0020, 0x2503, 0x2524, 0x2527, 0x2535, 0x2528, 0x252A,
        0x2547, 0x2525, 0x2545, 0x2529, 0x2544, 0x0020, 0x0020, 0x254B,
        0x2509, 0x0020, 0x0020, 0x2514, 0x2507, 0x0020, 0x250B, 0x0020, 

        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
        0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020,
    };


const TCHAR MongolAsciiTable[] = 
{ 0x22, 0x23, 0x24, 0x27, 0X28, 0X29, ////"#$'()
  0x2A, 0X2C, 0x2D, 0X2E, 0X2F, 0x3A, ///*`-.
  0X3B, 0x3C, 0x3E, 0X3F, 0x40, 0x41,
  0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
  0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 
  0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 
  0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 
  0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 
  0X60, 0x61, 0x62, 0x63, 0x64, 0x65, 
  0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 
  0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 
  0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 
  0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D,
  0x00, 0x00
};

#pragma data_seg()

HDC   ST_UI_hDC;
UINT  uStartComp = 0;
UINT  uOpenCand = 0;
UINT  uCaps = 0;
DWORD SaTC_Trace;

HINSTANCE hInst;
IMEL      sImeL;
LPIMEL    lpImeL;
TCHAR      szUIClassName[CLASS_LEN];
TCHAR      szCompClassName[CLASS_LEN];
TCHAR      szCandClassName[CLASS_LEN];
TCHAR      szStatusClassName[CLASS_LEN];
TCHAR      szCMenuClassName[CLASS_LEN];            
TCHAR      szSoftkeyMenuClassName[CLASS_LEN];    
TCHAR      szHandCursor[] = TEXT("Hand");
TCHAR      szChinese[] = TEXT("Chinese");
TCHAR      szEnglish[] = TEXT("English");
TCHAR        pszImeName[IMEINDEXNUM][MAX_PATH];
TCHAR        pszImeOutName[IMEINDEXOUTNUM][MAX_PATH];
TCHAR        *szImeName;
TCHAR        *szImeOutName;
TCHAR        szImeRegName[MAX_PATH];
TCHAR      szCode[] = TEXT("Code");
TCHAR      szEudc[] = TEXT("Eudc");
TCHAR      szFullShape[] = TEXT("FullShape");
TCHAR      szHalfShape[] = TEXT("HalfShape");
TCHAR      szSymbol[] = TEXT("Symbol");
TCHAR      szNoSymbol[] = TEXT("NoSymbol");
TCHAR      szNone[] = TEXT("None");
TCHAR      szSoftKBD[] = TEXT("SoftKBD");
TCHAR      szNoSoftKBD[] = TEXT("NoSoftKBD");
TCHAR      szDigit[] = TEXT("01234567890");

TCHAR      szCandInf[] ={0x0020, 0x0020, 0x0020, 0x6570, 0x5B57, 0x952E, 0x0000};
TCHAR       szTrace[]= {0x5149, 0x6807, 0x8DDF, 0x968F, 0x0000};
TCHAR      szRegRevKL[] = {0x7F16, 0x7801, 0x67E5, 0x8BE2, 0x0000};
TCHAR      szRegRevMaxKey[] = {0x7F16, 0x7801, 0x67E5, 0x8BE2, 0x7801, 0x957F, 0x0000};
TCHAR       szWarnTitle[] = {0x8B66, 0x544A, 0x0000};
TCHAR       szErrorTitle[] = {0x9519, 0x8BEF, 0x0000};

// 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
};

TCHAR szRegIMESetting[] = TEXT("Software\\Ganjike\\Ime4MN\\1.0");
TCHAR szPara[] = TEXT("Parallel Distance");
TCHAR szPerp[] = TEXT("Perpendicular Distance");
TCHAR szParaTol[] = TEXT("Parallel Tolerance");
TCHAR szPerpTol[] = TEXT("Perpendicular Tolerance");
TCHAR szRegImeIndex[] = TEXT("IME Index");
// decide UI offset base on escapement
const NEARCARET ncUIEsc[] = {
   // LogFontX  LogFontY  ParaX   PerpX   ParaY   PerpY
    { 0,        1,        1,      0,      0,      1},       // 0
    { 1,        0,        0,      1,      1,      0},       // 900
    { 0,        0,       -1,      0,      0,      1},       // 1800
    {-1,        0,        0,     -1,     -1,      0}        // 2700
};
// decide another UI offset base on escapement
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
};
// decide input rectangle base on escapement
const POINT ptInputEsc[] = {
    // LogFontWi   LogFontHi
    {1,            1},                                  // 0
    {1,           -1},                                  // 900
    {1,            1},                                  // 1800
    {-1,           1}                                   // 2700
};

// decide another input rectangle base on escapement
const POINT ptAltInputEsc[] = {
    // LogFontWi   LogFontHi
    {1,           -1},                                  // 0
    {-1,          -1},                                  // 900
    {1,           -1},                                  // 1800
    {1,            1}                                   // 2700
};


BYTE VirtKey48Map[48] = {
    0x20, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38,
    0x39, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49,
    0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53,
    0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5a, 0xba, 0xbb, 0xbc,
    0xbd, 0xbe, 0xbf, 0xc0, 0xdb, 0xdc, 0xdd, 0xde
};

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?