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.
 
 
 
 
 
 

466 lines
16 KiB

/*************************************************
* dayi.rc *
* *
* Copyright (C) 1995-1999 Microsoft Inc. *
* *
*************************************************/
#include <winuser.h>
#include "dayi.rcv"
#include "imeattr.h"
#include "imerc.h"
#include "ime.rc"
IDBM_CMODE_NATIVE BITMAP Chinese.bmp
IDIC_IME_ICON ICON IME.ICO
IDRC_VALIDCHAR RCDATA
BEGIN
// DWORD dwVersion;
0, 1,
// WORD fwProperties1
#ifdef UNICODE
IMEPROP_UNICODE|
#endif
0x0000,
// WORD fwProperties2
0x0000,
// WORD nMaxKey;
4,
// WORD nSeqCode;
0x29,
// WORD fChooseChar[6]; bit 15 -> 0xF, bit 0 -> 0x0
// when this bit == 1, this char can be entered in choosing candidates
// 20-2F /.-, +*)( '&%$ #"!
0xF085, // 1111 0000 1000 0101
// 30-3F ?>=< ;:98 7654 3210
0x0BFF, // 0000 1011 1111 1111
// 40-4F ONML KJIH GFED CBA@
0xFFFE, // 1111 1111 1111 1110
// 50-5f _^]\ [ZYX WVUT SRQP
0xBFFF, // 1011 1111 1111 1111
// 60-6F onml kjih gfed cba`
0x0000, // 0000 0000 0000 0000
// 70-7F ~}| {zyx wvut srqp
0x2800, // 0010 1000 0000 0000
// WORD wReserved1[2];
0x0000, 0x0000,
// Dayi not use 1, 2, 3 ... to select candidate, it use micro code
// we translate 10 micro to 0 - 9
// BYTE cChooseTrans[0x60]; ASCII 0x20 to 0x7F
"\000!\006#$%&\001()*+,\004./",
"0123456789:;<=>?",
"@ABCDEFGHIJKLMNO",
"PQRSTUVWXYZ\002\005\003^\011",
"`abcdefghijklmno",
"pqrstuvwxyz\007|\010~\177",
// WORD fCompChar[6]; bit 15 -> 0xF, bit 0 -> 0x0
// when this bit == 1, this char can be entered in composing char
// 20-2F /.-, +*)( '&%$ #"!
0xD001, // 1101 0000 0000 0001
// 30-3F ?>=< ;:98 7654 3210
0x0BFF, // 0000 1011 1111 1111
// 40-4F ONML KJIH GFED CBA@
0xFFFE, // 1111 1111 1111 1110
// 50-5F _^]\ [ZYX WVUT SRQP
0x07FF, // 0000 0111 1111 1111
// 60-6F onml kjih gfed cba`
0x0000, // 0000 0000 0000 0000
// 70-7F ~}| {zyx wvut srqp
0x0000, // 0000 0000 0000 0000
// WORD wReserved2[2];
0x0000, 0x0000,
// WORD wCandPerPage;
0x000A,
// WORD wCandStart;
0x0000,
// WORD wCandRangeStart;
0x0000,
// WORD wReserved3[1];
0x0000,
// WORD wSeq2CompTbl[64];
// 0 1 2 3 4 5 6 7 8 9 A B C D E F - sequence code
#ifdef UNICODE
0x3000, 0x8A00, 0x725B, 0x76EE, 0x56DB, 0x738B, 0x9580, 0x7530,
0x7C73, 0x8DB3, 0x91D1, 0x77F3, 0x5C71, 0x4E00, 0x5DE5, 0x7CF8,
#else
" 言牛目四王門田米足金石山一工糸", // comp char
// 0x40A1, 0xA5A8, 0xFBA4, 0xD8A5, 0x7CA5, 0xFDA4, 0xAEA8, 0xD0A5,
// 0x4BA4, 0xACA8, 0xF7AA, 0xDBA5, 0x73A4, 0x40A4, 0x75A4, 0x74A8,
#endif
// 101112131415161718191A1B1C1D1E1F
#ifdef UNICODE
0x706B, 0x8278, 0x6728, 0x53E3, 0x8033, 0x4EBA, 0x9769, 0x65E5,
0x571F, 0x624B, 0x9CE5, 0x6708, 0x7ACB, 0x5973, 0x866B, 0xFF1F,
#else
"火艸木口耳人革日土手鳥月立女虫? ",
// 0xF5A4, 0x7BA4, 0xECA4, 0x66A4, 0xD5A6, 0x48A4, 0xB2AD, 0xE9A4,
// 0x67A4, 0xE2A4, 0xBEB3, 0xEBA4, 0xDFA5, 0x6BA4, 0xE4A6, 0x203F,
#endif
// 202122232425262728292A2B2C2D2E2F
#ifdef UNICODE
0x5FC3, 0x6C34, 0x9E7F, 0x79BE, 0x99AC, 0x9B5A, 0x96E8, 0x529B,
0x821F, 0x7AF9, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0xFF1D,
#else
"心水鹿禾馬魚雨力舟竹     =",
// 0xDFA4, 0xF4A4, 0xC0B3, 0xDDA5, 0xA8B0, 0xBDB3, 0x42AB, 0x4FA4,
// 0x49C2, 0xCBA6, 0x40A1, 0x40A1, 0x40A1, 0x40A1, 0x40A1, 0xD7A1,
#endif
// 303132333435363738393A3B3C3D3E3F
#ifdef UNICODE
0x865F, 0x8DEF, 0x8857, 0x9109, 0x93AE, 0x5DF7, 0x3000, 0x3000,
0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000,
#else
"號路街鄉鎮巷          ",
// 0xB9B8, 0xF4B8, 0xF3B5, 0x6DB6, 0xEDC2, 0xD1AB, 0x40A1, 0x40A1,
// 0x40A1, 0x40A1, 0x40A1, 0x40A1, 0x40A1, 0x40A1, 0x40A1, 0x40A1,
#endif
// WORD wChar2SeqTbl[0x42];
// ' ' ! " # $ % & ' - char code
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, // sequence code
// ( ) * + , - . /
0x00, 0x00, 0x00, 0x00, 0x27, 0x33, 0x28, 0x29,
// 0 1 2 3 4 5 6 7
0x0A, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
// 8 9 : ; < = > ?
0x08, 0x09, 0x00, 0x1E, 0x00, 0x2F, 0x00, 0x00,
// @ A B C D E F G
0x00, 0x15, 0x24, 0x22, 0x17, 0x0D, 0x18, 0x19,
// H I J K L M N O
0x1A, 0x12, 0x1B, 0x1C, 0x1D, 0x26, 0x25, 0x13,
// P Q R S T U V W
0x14, 0x0B, 0x0E, 0x16, 0x0F, 0x11, 0x23, 0x0C,
// X Y Z [ \ ] ^ _
0x21, 0x10, 0x20, 0x31, 0x34, 0x32, 0x00, 0x00,
// ` a
0x35, 0x00,
// WORD wReserved4[2];
0x0000, 0x0000,
// WORD wSymbol
// ' ' ! " #
#ifdef UNICODE
// ' ' !
0x0020, 0x3000, 0x0021, 0xFF01, 0x2581, 0x2582, 0x2583, 0x2584,
// " #
0x2585, 0x2586, 0x2587, 0x2588, 0x0022, 0x301E, 0x0023, 0xFF03,
0x25B3, 0x25B2, 0x25BD, 0x25BC, 0x25E2, 0x25E3, 0x25E5, 0x25E4,
#else
"\0  \0!!▁▂▃▄▅▆▇█\0\042〞\0##△▲▽▼◢◣◥◤",
// ' ' !
// 0x0020, 0xA140, 0x0021, 0xA149, 0xA262, 0xA263, 0xA264, 0xA265,
// " #
// 0xA266, 0xA267, 0xA268, 0xA269, 0x0022, 0xA1A8, 0x0023, 0xA1AD,
// 0xA1B5, 0xA1B6, 0xA1BE, 0xA1BF, 0xA2A8, 0xA2A9, 0xA2AA, 0xA2AB,
#endif
// $ % & '
#ifdef UNICODE
// $ %
0x0024, 0xFF04, 0xFFE5, 0x20AC, 0xFFE1, 0xFFE0, 0x3012, 0x0025,
0xFF05, 0x00B0, 0x2103, 0x2109, 0x2105, 0x33D2, 0x33D1, 0x221A,
// &
0x221E, 0x2261, 0x0026, 0xFF06, 0x2550, 0x255E, 0x256A, 0x2561,
// '
0xFE34, 0xFE4F, 0xFE4B, 0xFE4C, 0x0027, 0x2032,
#else
"\0$$¥<Euro>£¢〒\0%%°℃℉℅㏒㏑√∞≡\0&&═╞╪╡︴﹏134﹋﹌\0'′",
// $ %
// 0x0024, 0xA243, 0xA244, 0xA247, 0xA246, 0xA245, 0x0025, 0xA248,
// 0xA258, 0xA24A, 0xA24B, 0xA1C1, 0xA1EA, 0xA1EB, 0xA1D4, 0xA1DB,
// &
// 0xA1DD, 0x0026, 0xA1AE, 0xA2A4, 0xA2A5, 0xA2A6, 0xA7A2, 0xA15B,
// '
// 0xA15C, 0xA1CA, 0xA1CB, 0x0027, 0xA1AC,
#endif
// ( )
#ifdef UNICODE
// (
0x0028, 0xFF08, 0x339C, 0x339D, 0x339E, 0x338E, 0x338F, 0x33C4,
// )
0x33A1, 0x33CE, 0x33D5, 0x0029, 0xFF09, 0x2609, 0x25CE, 0x25CB,
0x25CF, 0x32A3, 0x2641, 0x2642, 0x2640,
#else
"\0((㎜㎝㎞㎎㎏㏄㎡㏎㏕\0))⊙◎○●㊣⊕♂♀",
// (
// 0x0028, 0xA15D, 0xA250, 0xA251, 0xA252, 0xA255, 0xA256, 0xA257,
// )
// 0xA254, 0xA253, 0xA24F, 0x0029, 0xA15E, 0xA1F3, 0xA1B7, 0xA1B3,
// 0xA1B4, 0xA1C0, 0xA1F2, 0xA1F1, 0xA1F0
#endif
// * +
#ifdef UNICODE
// *
0x002A, 0xFF0A, 0x203B, 0x00A7, 0x2606, 0x2605, 0x25C7, 0x25C6,
// +
0x25A1, 0x25A0, 0xFE61, 0x002B, 0x253C, 0xFF1D, 0x2260, 0x2252,
0xFF0B, 0xFF0D, 0x00D7, 0x00F7, 0x00B1, 0x2573,
#else
"\0**※§☆★◇◆□■﹡\0+┼=≠≒+-×÷±╳",
// *
// 0x002A, 0xA1AF, 0xA1B0, 0xA1B1, 0xA1B8, 0xA1B9, 0xA1BA, 0xA1BB,
// +
// 0xA1BC, 0xA1BD, 0xA1CE, 0x002B, 0xA271, 0xA1D7, 0xA1DA, 0xA1DC,
// 0xA1CF, 0xA1D0, 0xA1D1, 0xA1D2, 0xA1D3, 0xA2AE,
#endif
// , -
#ifdef UNICODE
// ,
0x002C, 0xFF0C, 0x2018, 0x2019, 0x201C, 0x201D, 0x3003, 0x301D,
// -
0x301E, 0x002D, 0x2500, 0x2514, 0x2534, 0x2518, 0x251C, 0x2502,
0x2524, 0x250C, 0x252C, 0x2510,
#else
"\0,,‘’“”〃〝〞\0-─└┴┘├│┤┌┬┐",
// ,
// 0x002C, 0xA141, 0xA1A5, 0xA1A6, 0xA1A7, 0xA1A8, 0xA1B2, 0xA1A9,
// -
// 0xA1AA, 0x002D, 0xA277, 0xA27C, 0xA272, 0xA27D, 0xA275, 0xA278,
// 0xA274, 0xA27A, 0xA273, 0xA27B,
#endif
// . /
#ifdef UNICODE
// .
0x002E, 0x3002, 0x3001, 0xFF0E, 0xFF1A, 0xFE55, 0x2026, 0x2025,
// /
0x2027, 0x2235, 0x2234, 0x002F, 0xFF0F, 0x03A3, 0x03A9, 0x03B8,
0x03A6, 0x03A8, 0x03C6, 0x03C8, 0x03C9, 0x03C1
#else
"\0.。、.:﹕…‥‧∵∴\0//ΣΩθΦΨφψωρ",
// .
// 0x002E, 0xA143, 0xA142, 0xA144, 0xA147, 0xA152, 0xA14B, 0xA14C,
// /
// 0xA145, 0xA1EE, 0xA1EF, 0x002F, 0xA1FE, 0xA355, 0xA35B, 0xA363,
// 0xA358, 0xA35A, 0xA370, 0xA372, 0xA373, 0xA36C
#endif
// 0 1 2 - lost some chars in C6XX range, need to consider it in UNICODE
#ifdef UNICODE
// 0 1
0x0030, 0xFF10, 0x2169, 0x2469, 0x247D, 0x2179, 0x5341, 0x0031,
// 2
0xFF11, 0x2160, 0x2460, 0x2474, 0x2170, 0x3021, 0x0032, 0xFF12
0x2161, 0x2475, 0x2461, 0x2171, 0x3022, 0x5344,
#else
"\00000Ⅹ十\0\0\0\0\0\0\00011Ⅰ〡\0\0\0\0\0\0\00022Ⅱ〢卄\0\0\0\0\0\0",
// 0 1
// 0x0030, 0xA2AF, 0xA2C2, 0xA2CC, 0x0000, 0x0000, 0x0000, 0x0031,
// 2
// 0xA2B0, 0xA2B9, 0xA2C3, 0x0000, 0x0000, 0x0000, 0x0032, 0xA2B1,
// 0xA2BA, 0xA2C4, 0xA2CD, 0x0000, 0x0000, 0x0000,
#endif
// 3 4 5 - lost some chars in C6XX range, need to consider it in UNICODE
#ifdef UNICODE
// 3
0x0033, 0xFF13, 0x2162, 0x2476, 0x2462, 0x2172, 0x3023, 0x5345,
// 4 5
0x0034, 0xFF14, 0x2163, 0x2477, 0x2463, 0x2173, 0x3024, 0x0035,
0xFF15, 0x2164, 0x2478, 0x2464, 0x2174, 0x3025,
#else
"\00033Ⅲ〣卅\0\0\0\0\0\0\00044Ⅳ〤\0\0\0\0\0\0\00055Ⅴ〥\0\0\0\0\0\0",
// 3
// 0x0033, 0xA2B2, 0xA2BA, 0xA2C5, 0xA2CE, 0x0000, 0x0000, 0x0000,
// 4 5
// 0x0034, 0xA2B3, 0xA2BC, 0xA2C6, 0x0000, 0x0000, 0x0000, 0x0035,
// 0xA2B4, 0xA2BD, 0xA2C7, 0x0000, 0x0000, 0x0000,
#endif
// 6 7 8 - lost some chars in C6XX range, need to consider it in UNICODE
#ifdef UNICODE
// 6 7
0x0036, 0xFF16, 0x2165, 0x2479, 0x2465, 0x2175, 0x3026, 0x0037,
// 8
0xFF17, 0x2166, 0x247A, 0x2466, 0x2176, 0x3027, 0x0038, 0xFF18,
0x2167, 0x247B, 0x2467, 0x2177, 0x3028,
#else
"\00066Ⅵ〦\0\0\0\0\0\0\00077Ⅶ〧\0\0\0\0\0\0\00088Ⅷ〨\0\0\0\0\0\0",
// 6 7
// 0x0036, 0xA2B5, 0xA2BE, 0xA2C8, 0x0000, 0x0000, 0x0000, 0x0037,
// 8
// 0xA2B6, 0xA2BF, 0xA2C9, 0x0000, 0x0000, 0x0000, 0x0038, 0xA2B7,
// 0xA2C0, 0xA2CA, 0x0000, 0x0000, 0x0000,
#endif
// 9 : ; < - lost some chars in C6XX range, need to consider it in UNICODE
#ifdef UNICODE
// 9 :
0x0039, 0xFF19, 0x2168, 0x247C, 0x2468, 0x2178, 0x3029, 0x003A,
// ; <
0xFF1A, 0x003B, 0xFF1B, 0x003C, 0x3008, 0x300A, 0xFF1C, 0x2266,
0xFE3D, 0x2229, 0x222A, 0x222B, 0x222E,
#else
"\00099Ⅸ〩\0::\0;;\0<〈《<≦︽∩∪∫∮",
// 9 :
// 0x0039, 0xA2B8, 0xA2C1, 0xA2CB, 0x0000, 0x0000, 0x0000, 0x003A,
// ; <
// 0xA147, 0x003B, 0xA146, 0x003C, 0xA171, 0xA16D, 0xA1D5, 0xA1D8,
// 0xA16F, 0xA1E4, 0xA1E5, 0xA1EC, 0xA1ED,
#endif
// > ?
#ifdef UNICODE
// >
0x003E, 0x3009, 0x300B, 0xFF1E, 0x2267, 0xFE3E, 0x22A5, 0x2220,
// ?
0x221F, 0x22BF, 0x003F, 0xFF1F, 0x03B1, 0x03B2, 0x03B3, 0x03C0,
0x03BC, 0x03BB, 0x03B5, 0x03B7, 0x03B4,
#else
"\0>〉》>≧︾⊥∠∟⊿\0??α134βγπμλεηδ",
// >
// 0x003E, 0xA172, 0xA16E, 0xA1D6, 0xA1D9, 0xA170, 0xA1E6, 0xA1E7,
// ?
// 0xA1E8, 0xA1E9, 0x003F, 0xA148, 0xA35C, 0xA35D, 0xA35E, 0xA36B,
// 0xA367, 0xA366, 0xA360, 0xA362, 0xA35F,
#endif
// @ [
#ifdef UNICODE
// @
0x0040, 0xFF20, 0x7CCE, 0x74E9, 0x55E7, 0x515B, 0x5161, 0x5159,
// [
0x515D, 0x5163, 0x515E, 0x005B, 0xFE42, 0xFE44, 0x3014, 0x3010,
0xFE39, 0xFE3B, 0x2570,
#else
"\0@@糎瓩嗧兛兡兙兝134兣兞\0[﹂﹄〔【︹︻╰",
// @
// 0x0040, 0xA249, 0xA261, 0xA260, 0xA25F, 0xA25A, 0xA25D, 0xA259,
// [
// 0xA25C, 0xA25E, 0xA25B, 0x005B, 0xA178, 0xA17C, 0xA165, 0xA169,
// 0xA167, 0xA16B, 0xA2A2,
#endif
// \ ]
#ifdef UNICODE
// \ (watch out this backslash)
0x005C, 0xFF3C, 0xFE68, 0x2572, 0xFF0F, 0x2215, 0x2571, 0x7881,
// ]
0x005D, 0x300D, 0x300F, 0x3015, 0x3011, 0xFE3A, 0xFE3C, 0x256F,
#else
"\0\\\﹨╲/∕╱碁\0]」』〕】︺︼╯",
// \
// 0x005C, 0xA240, 0xA242, 0xA2AD, 0xA1FE, 0xA241, 0xA2AC, 0xF9D6,
// ]
// 0x005D, 0xA176, 0xA17A, 0xA166, 0xA16A, 0xA168, 0xA16C, 0xA2A3,
#endif
// ^ _
#ifdef UNICODE
// ^
0x005E, 0x2191, 0x2193, 0x2190, 0x2192, 0x2196, 0x2197, 0x2199,
// _
0x2198, 0xFF3E, 0xFE40, 0x005F, 0xFF3F, 0xFF1F, 0xFE4D, 0xFE4E,
0x203E, 0x00AF, 0xFE49, 0xFE4A,
#else
"\0^↑↓←→↖↗↙↘︿﹀\0_ˍˍ﹍﹎ ̄¯﹉﹊",
// ^
// 0x005E, 0xA1F4, 0xA1F5, 0xA1F6, 0xA1F7, 0xA1F8, 0xA1F9, 0xA1FA,
// _
// 0xA1FB, 0xA173, 0xA174, 0x005F, 0xA1C5, 0xA1C4, 0xA1C8, 0xA1C9,
// 0xA1C3, 0xA1C2, 0xA1C6, 0xA1C7,
#endif
// ` {
#ifdef UNICODE
// `
0x0060, 0x2035, 0x258F, 0x258E, 0x258D, 0x258C, 0x258B, 0x258A,
// {
0x2589, 0x007B, 0x300C, 0x300E, 0xFF08, 0xFE5B, 0xFE35, 0xFE37,
0x256D,
#else
"\0`‵▏▎▍▌▋▊▉\0{「『(﹛︵︷╭",
// `
// 0x0060, 0xA1AB, 0xA26A, 0xA26B, 0xA26C, 0xA26D, 0xA26E, 0xA26F,
// {
// 0xA270, 0x007B, 0xA175, 0xA179, 0xA15D, 0xA161, 0xA167, 0xA16B,
// 0xA2A2,
#endif
// | } ~
#ifdef UNICODE
// |
0x007C, 0x2013, 0xFF5C, 0x2014, 0xFE31, 0xFF1F, 0xFE33, 0x2594,
// }
0x2595, 0x2225, 0x2223, 0x007D, 0xFE41, 0xFE43, 0xFF09, 0xFE5C,
// ~ ' ' ' '
0xFE36, 0xFE38, 0x256E, 0x007E, 0xFF5E, 0x221E, 0x0020, 0x0020
#else
"\0|–|—︱▁︳▔▕∥∣\0}﹁﹃)﹜︶︸╮\0~~∞\0 \0 "
// |
// 0x007C, 0xA156, 0xA155, 0xA158, 0xA157, 0xA15A, 0xA159, 0xA276,
// }
// 0xA279, 0xA1FC, 0xA1FD, 0x007D, 0xA177, 0xA17B, 0xA15E, 0xA162,
// ~ ' ' ' '
// 0xA160, 0xA164, 0xA2A1, 0x007E, 0xA1E3, 0xA1DB, 0x0020, 0x0020
#endif
END
IDRC_TABLEFILES RCDATA
BEGIN
#ifdef UNICODE
// szTblFile[4][16]
L"MSDAYI.TBL\0 3456", L"DAYIPTR.TBL\0 456",
L"DAYIPHR.TBL\0 456", L"\0 34567890123456",
#else
// szTblFile[4][32]
"MSDAYI.TBL\0 34567890123456789012", "DAYIPTR.TBL\0 4567890123456789012",
"DAYIPHR.TBL\0 4567890123456789012", "\0 345678901234567890123456789012",
#endif
END
STRINGTABLE
BEGIN
IDS_IMENAME, "Dayi"
IDS_IMEUICLASS, "DAYI"
IDS_IMECOMPCLASS, "CompDAYI"
IDS_IMECANDCLASS, "CandDAYI"
IDS_IMESTATUSCLASS, "StatusDAYI"
IDS_IMEOFFCARETCLASS, "OffDAYI"
IDS_IMECMENUCLASS, "CMenuDAYI"
END