/************************************************* * dayi.rc * * * * Copyright (C) 1995-1999 Microsoft Inc. * * * *************************************************/ #include #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 "¡@¨¥¤û¥Ø¥|¤ýªù¥Ð¦Ì¨¬ª÷¥Û¤s¤@¤u¦Í", // 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 "¤õÊJ¤ì¤f¦Õ¤H­²¤é¤g¤â³¾¤ë¥ß¤k¦ä? ", // 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 "¤ß¤ô³À¥Ý°¨³½«B¤O¦à¦Ë¡@¡@¡@¡@¡@¡×", // 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 "¸¹¸ôµó¶mÂí«Ñ¡@¡@¡@¡@¡@¡@¡@¡@¡@¡@", // 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!¡I¢b¢c¢d¢e¢f¢g¢h¢i\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$¢C¢D¢G¢F¢E\0%¢H¢X¢J¢K¡Á¡ê¡ë¡Ô¡Û¡Ý\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(¡]¢P¢Q¢R¢U¢V¢W¢T¢S¢O\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+¢q¡×¡Ú¡Ü¡Ï¡Ð¡Ñ¡Ò¡Ó¢®", // * // 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,¡A¡¥¡¦¡§¡¨¡²¡©¡ª\0-¢w¢|¢r¢}¢u¢x¢t¢z¢s¢{", // , // 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.¡C¡B¡D¡G¡R¡K¡L¡E¡î¡ï\0/¡þ£U£[£c£X£Z£p£r£s£l", // . // 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 "\0000¢¯¢Â¤Q\0\0\0\0\0\0\0001¢°¢¹¢Ã\0\0\0\0\0\0\0002¢±¢º¢Ä¢Í\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 "\0003¢²¢»¢Å¤Ê\0\0\0\0\0\0\0004¢³¢¼¢Æ\0\0\0\0\0\0\0005¢´¢½¢Ç\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 "\0006¢µ¢¾¢È\0\0\0\0\0\0\0007¢¶¢¿¢É\0\0\0\0\0\0\0008¢·¢À¢Ê\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 "\0009¢¸¢Á¢Ë\0:¡G\0;¡F\0<¡q¡m¡Õ¡Ø¡o¡ä¡å¡ì¡í", // 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>¡r¡n¡Ö¡Ù¡p¡æ¡ç¡è¡é\0?¡H£\134£]£^£k£g£f£`£b£_", // > // 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@¢I¢a¢`¢_¢Z¢]¢Y¢\134¢^¢[\0[¡x¡|¡e¡i¡g¡k¢¢", // @ // 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\\¢@¢B¢­¡þ¢A¢¬ùÖ\0]¡v¡z¡f¡j¡h¡l¢£", // \ // 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^¡ô¡õ¡ö¡÷¡ø¡ù¡ú¡û¡s¡t\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`¡«¢j¢k¢l¢m¢n¢o¢p\0{¡u¡y¡]¡¡¡_¡c¢~", // ` // 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|¡V¡U¡X¡W¢b¡Y¢v¢y¡ü¡ý\0}¡w¡{¡^¡¢¡`¡d¢¡\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