Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

352 lines
13 KiB

/*************************************************
* winar30.rc *
* *
* Copyright (C) 1995-1999 Microsoft Inc. *
* *
*************************************************/
#include <winuser.h>
//LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
LANGUAGE 0x04, 0x01
#pragma code_page(950)
#include "winar30.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;
#ifdef UNICODE
5,
#else
4,
#endif
// WORD nSeqCode;
0x1E,
// WORD fChooseChar[6];, bit 15 -> 0xF, bit 0 -> 0x0
// when this bit == 1, this char can be entered in choosing candidates
// 20-2F /.-, +*)( '&%$ #"!
0xD001, // 1101 0000 0000 0001
// 30-3F ?>=< ;:98 7654 3210
0xDBFF, // 1101 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 wReserved1[2];
0x0000, 0x0000,
// WORD fCompChar[6]; bit 15 -> 0xF, bit 0 -> 0x0
// when this bit == 1, this char can be entered in composing char
// 20-2F /.-, +*)( '&%$ #"!
0xD401, // 1101 0100 0000 0001
// 30-3F ?>=< ;:98 7654 3210
0x8800, // 1000 1000 0000 0000
// 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;
0x0001,
// 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
// " 1-5v3v3-3^4-5-6-8^7-8-9-7v6v9^", // comp char
// 0xFF0E, 0xFF0F, 0xFF1B, 0xFF0C,
0x3000, 0xFF0C,0xFF0E,0xFF0F,0xFF1B,
0xFF21, 0xFF22, 0xFF23, 0xFF24, 0xFF25, 0xFF26, 0xFF27,
0xFF28, 0xFF29, 0xFF2A, 0xFF2B, 0xFF2C, 0xFF2D, 0xFF2E, 0xFF2F,
// 101112131415161718191A1B1C1D1E1F
// "0^1^4^2-5^7^4v2^2v6^1v9v0v0-8v ",
0xFF30, 0xFF31, 0xFF32, 0xFF33, 0xFF34, 0xFF35, 0xFF36, 0xFF37,
0xFF38, 0xFF39, 0xFF3A, 0x3000,
// 202122232425262728292A2B2C2D2E2F
// "                ",
0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000,
0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000,
// 303132333435363738393A3B3C3D3E3F
// "              ?*",
0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x3000,
0x3000, 0x3000, 0x3000, 0x3000, 0x3000, 0x20AC, 0xFF1F, 0xFF0A,
// WORD wChar2SeqTbl[0x42];
// ' ' ! " # $ % & ' - char code
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // sequence code
// ( ) * + , - . /
0x00, 0x00, 0x3F, 0x00, 0x01, 0x00, 0x02, 0x03,
// 0 1 2 3 4 5 6 7
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
// 8 9 : ; < = > ?
0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x3E,
// @ A B C D E F G
0x00, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b,
// H I J K L M N O
0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13,
// P Q R S T U V W
0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b,
// X Y Z [ \ ] ^ _
0x1c, 0x1d, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00,
// ` a
0x3D, 0x00,
// WORD wReserved4[2];
0x0000, 0x0000,
#if 0
// WORD wSymbol[10][4]
0xA374, 0xA3BF, 0x0000, 0x0000, 0xA141, 0xA15C, 0x0000, 0x0000,
0xA15D, 0xA1AC, 0x0000, 0x0000, 0xA1AD, 0xA1CE, 0x0000, 0x0000,
0xA1CF, 0xA1EF, 0x0000, 0x0000, 0xA1F0, 0xA242, 0x0000, 0x0000,
0xA243, 0xA261, 0x0000, 0x0000, 0xA262, 0xA2AE, 0x0000, 0x0000,
0xA2B9, 0xA2CE, 0x0000, 0x0000, 0xA344, 0xA373, 0x0000, 0x0000
#endif
// WORD wSymbol
// '0'
#ifdef UNICODE
0x0030, 0x3105, 0x3106, 0x3107, 0x3108, 0x3109, 0x310A, 0x310B,
0x310C, 0x310D, 0x310E, 0x310F, 0x3110, 0x3111, 0x3112, 0x3113,
0x3114, 0x3115, 0x3116, 0x3117, 0x3118, 0x3119, 0x311A, 0x311B,
0x311C, 0x311D, 0x311E, 0x311F, 0x3120, 0x3121, 0x3122, 0x3123,
0x3124, 0x3125, 0x3126, 0x3127, 0x3128, 0x3129, 0x02D9, 0x02C9,
0x02CA, 0x02C7, 0x02CB,
#else
"\0000ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ",
// 0x0030, 0xA374, 0xA375, 0xA376, 0xA377, 0xA378, 0xA379, 0xA37A,
// 0xA37B, 0xA37C, 0xA37D, 0xA37E, 0xA3A1, 0xA3A2, 0xA3A3, 0xA3A4,
// 0xA3A5, 0xA3A6, 0xA3A7, 0xA3A8, 0xA3A9, 0xA3AA, 0xA3AB, 0xA3AC,
// 0xA3AD, 0xA3AE, 0xA3AF, 0xA3B0, 0xA3B1, 0xA3B2, 0xA3B3, 0xA3B4,
// 0xA3B5, 0xA3B6, 0xA3B7, 0xA3B8, 0xA3B9, 0xA3BA, 0xA3BB, 0xA3BC,
// 0xA3BD, 0xA3BE, 0xA3BF,
#endif
// '1'
#ifdef UNICODE
0x0031, 0xFF0C, 0x3001, 0x3002, 0xFF0E, 0x2022, 0xFF1B, 0xFF1A,
0xFF1F, 0xFF01, 0xFE30, 0x2026, 0x2025, 0xFE50, 0xFE51, 0xFE52,
0x00B7, 0xFE54, 0xFE55, 0xFE56, 0xFE57, 0xFF5C, 0x2013, 0xFE31,
// ??????
0x2014, 0xFE33, 0x2574, 0xFE34, 0xFE4F,
#else
//"\0001,、。.‧;:?!︰…‥﹐﹑﹒·﹔:﹖﹗|–︱—︳╴︴﹏",
// 0x0031, 0xA141, 0xA142, 0xA143, 0xA144, 0xA145, 0xA146, 0xA147,
// 0xA148, 0xA149, 0xA14A, 0xA14B, 0xA14C, 0xA14D, 0xA14E, 0xA14F,
// 0xA150, 0xA151, 0xA152, 0xA153, 0xA154, 0xA155, 0xA156, 0xA157,
// 0xA158, 0xA159, 0xA15A, 0xA15B, 0xA15C,
#endif
// '2'
#ifdef UNICODE
0x0032, 0xFF08, 0xFF09, 0xFE35, 0xFE36, 0xFF5B, 0xFF5D, 0xFE37,
0xFE38, 0x3014, 0xFF3D, 0xFE39, 0xFE3A, 0x3010, 0x3011, 0xFE3B,
0xFE3C, 0x300A, 0x300B, 0xFE3D, 0xFE3E, 0x3008, 0x3009, 0xFF3E,
0xFE40, 0x300C, 0x300D, 0xFE41, 0xFE42, 0x300E, 0x300F, 0xFE43,
0xFE44, 0xFE59, 0xFE5A, 0xFE5B, 0xFE5C, 0xFE5D, 0xFE5E, 0xFF40,
0xFF07, 0x201C, 0xFF02, 0x301D, 0x301E, 0x2035, 0x2032,
#else
"\0002()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚﹛﹜﹝﹞‘’“”〝〞‵′",
// 0x0032, 0xA15D, 0xA15E, 0xA15F, 0xA160, 0xA161, 0xA162, 0xA163,
// 0xA164, 0xA165, 0xA166, 0xA167, 0xA168, 0xA169, 0xA16A, 0xA16B,
// 0xA16C, 0xA16D, 0xA16E, 0xA16F, 0xA170, 0xA171, 0xA172, 0xA173,
// 0xA174, 0xA175, 0xA176, 0xA177, 0xA178, 0xA179, 0xA17A, 0xA17B,
// 0xA17C, 0xA17D, 0xA17E, 0xA1A1, 0xA1A2, 0xA1A3, 0xA1A4, 0xA1A5,
// 0xA1A6, 0xA1A7, 0xA1A8, 0xA1A9, 0xA1AA, 0xA1AB, 0xA1AC,
#endif
// '3'
#ifdef UNICODE
0x0033, 0xFF03, 0xFF06, 0xFF0A, 0x203B, 0x00A7, 0x3003, 0x25CB,
0x25CF, 0x25B3, 0x25B2, 0x25CE, 0x2606, 0x2605, 0x25C7, 0x25C6,
0x25A1, 0x25A0, 0x25BD, 0x25BC, 0x32A3, 0x2105, 0x00AF, 0xFFE3,
0xFF3F, 0x02CD, 0xFE49, 0xFE4A, 0xFE4D, 0xFE4E, 0xFE4B, 0xFE4C,
0xFE5F, 0xFE60, 0xFE61,
#else
"\0003#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡",
// 0x0033, 0xA1AD, 0xA1AE, 0xA1AF, 0xA1B0, 0xA1B1, 0xA1B2, 0xA1B3,
// 0xA1B4, 0xA1B5, 0xA1B6, 0xA1B7, 0xA1B8, 0xA1B9, 0xA1BA, 0xA1BB,
// 0xA1BC, 0xA1BD, 0xA1BE, 0xA1BF, 0xA1C0, 0xA1C1, 0xA1C2, 0xA1C3,
// 0xA1C4, 0xA1C5, 0xA1C6, 0xA1C7, 0xA1C8, 0xA1C9, 0xA1CA, 0xA1CB,
// 0xA1CC, 0xA1CD, 0xA1CE,
#endif
// '4'
#ifdef UNICODE
0x0034, 0xFF0B, 0xFF0D, 0x00D7, 0x00F7, 0x00B1, 0x221A, 0xFF1C,
0xFF1E, 0xFF1D, 0x2266, 0x2267, 0x2260, 0x221E, 0x2252, 0x2261,
0xFE62, 0xFE63, 0xFE64, 0xFE65, 0xFE66, 0xFF5E, 0x2229, 0x222A,
0x22A5, 0x2220, 0x221F, 0x22BF, 0x33D2, 0x33D1, 0x222B, 0x222E,
0x2235, 0x2234,
#else
"\0004+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴",
// 0x0034, 0xA1CF, 0xA1D0, 0xA1D1, 0xA1D2, 0xA1D3, 0xA1D4, 0xA1D5,
// 0xA1D6, 0xA1D7, 0xA1D8, 0xA1D9, 0xA1DA, 0xA1DB, 0xA1DC, 0xA1DD,
// 0xA1DE, 0xA1DF, 0xA1E0, 0xA1E1, 0xA1E2, 0xA1E3, 0xA1E4, 0xA1E5,
// 0xA1E6, 0xA1E7, 0xA1E8, 0xA1E9, 0xA1EA, 0xA1EB, 0xA1EC, 0xA1ED,
// 0xA1EE, 0xA1EF,
#endif
// '5'
#ifdef UNICODE
0x0035, 0x2640, 0x2642, 0x2641, 0x2609, 0x2191, 0x2193, 0x2190,
0x2192, 0x2196, 0x2197, 0x2199, 0x2198, 0x2225, 0x2223, 0xFF0F,
0xFF3C, 0x2215, 0xFE68,
#else
"\0005♀♂⊕⊙↑↓←→↖↗↙↘∥∣/\∕﹨",
// 0x0035, 0xA1F0, 0xA1F1, 0xA1F2, 0xA1F3, 0xA1F4, 0xA1F5, 0xA1F6,
// 0xA1F7, 0xA1F8, 0xA1F9, 0xA1FA, 0xA1FB, 0xA1FC, 0xA1FD, 0xA1FE,
// 0xA240, 0xA241, 0xA242,
#endif
// '6'
#ifdef UNICODE
0x0036, 0xFF04, 0xFFE5, 0x3012, 0x00A2, 0x00A3, 0xFF05, 0xFF20,
0x2103, 0x2109, 0x20AC, 0xFE69, 0xFE6A, 0xFE6B, 0x33D5, 0x339C,
0x339D, 0x339E, 0x33CE, 0x33A1, 0x338E, 0x338F, 0x33C4, 0x00B0,
0x5159, 0x515B, 0x515E, 0x515D, 0x5161, 0x5163, 0x55E7, 0x74E9,
0x7CCE,
#else
"\0006$¥〒¢£%@℃℉<Euro>﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎",
// 0x0036, 0xA243, 0xA244, 0xA245, 0xA246, 0xA247, 0xA248, 0xA249,
// 0xA24A, 0xA24B, 0xA24C, 0xA24D, 0xA24E, 0xA24F, 0xA250, 0xA251,
// 0xA252, 0xA253, 0xA254, 0xA255, 0xA256, 0xA257, 0xA258, 0xA259,
// 0xA25A, 0xA25B, 0xA25C, 0xA25D, 0xA25E, 0xA25F, 0xA260, 0xA261,
#endif
// '7'
#ifdef UNICODE
0x0037, 0x2581, 0x2582, 0x2583, 0x2584, 0x2585, 0x2586, 0x2587,
0x2588, 0x258F, 0x258E, 0x258D, 0x258C, 0x258B, 0x258A, 0x2589,
0x253C, 0x2534, 0x252C, 0x2524, 0x251C, 0x2594, 0x2500, 0x2502,
0x2595, 0x250C, 0x2510, 0x2514, 0x2518, 0x256D, 0x256E, 0x2570,
// 0x256F 0x256F 0x256F 0x256F
0x256F, 0x2550, 0x255E, 0x256A, 0x2561, 0x25E2, 0x25E3, 0x25E5,
0x25E4, 0x2571, 0x2572, 0x2573,
#else
"\0007▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭╮╰╯═╞╪╡◢◣◥◤╱╲╳",
// 0x0037, 0xA262, 0xA263, 0xA264, 0xA265, 0xA266, 0xA267, 0xA268,
// 0xA269, 0xA26A, 0xA26B, 0xA26C, 0xA26D, 0xA26E, 0xA26F, 0xA270,
// 0xA271, 0xA272, 0xA273, 0xA274, 0xA275, 0xA276, 0xA277, 0xA278,
// 0xA279, 0xA27A, 0xA27B, 0xA27C, 0xA27D, 0xA27E, 0xA2A1, 0xA2A2,
// 0xA2A3, 0xA2A4, 0xA2A5, 0xA2A6, 0xA2A7, 0xA2A8, 0xA2A9, 0xA2AA,
// 0xA2AB, 0xA2AC, 0xA2AD, 0xA2AE,
#endif
// '8'
#ifdef UNICODE
0x0038, 0x2160, 0x2161, 0x2162, 0x2163, 0x2164, 0x2165, 0x2166,
0x2167, 0x2168, 0x2169, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025,
0x3026, 0x3027, 0x3028, 0x3029, 0x5341, 0x5344, 0x5345,
#else
"\0008ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅",
// 0x0038, 0xA2B9, 0xA2BA, 0xA2BB, 0xA2BC, 0xA2BD, 0xA2BE, 0xA2BF,
// 0xA2C0, 0xA2C1, 0xA2C2, 0xA2C3, 0xA2C4, 0xA2C5, 0xA2C6, 0xA2C7,
// 0xA2C8, 0xA2C9, 0xA2CA, 0xA2CB, 0xA2CC, 0xA2CD, 0xA2CE,
#endif
// '9'
#ifdef UNICODE
0x0039, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
0x03A0, 0x03A1, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7, 0x03A8,
0x03A9, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
0x03C0, 0x03C1, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7, 0x03C8,
0x03C9, 0x0030
#else
"\0009ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψω",
// 0x0039, 0xA344, 0xA345, 0xA346, 0xA347, 0xA348, 0xA349, 0xA34A,
// 0xA34B, 0xA34C, 0xA34D, 0xA34E, 0xA34F, 0xA350, 0xA351, 0xA352,
// 0xA353, 0xA354, 0xA355, 0xA356, 0xA357, 0xA358, 0xA359, 0xA35A,
// 0xA35B, 0xA35C, 0xA35D, 0xA35E, 0xA35F, 0xA360, 0xA361, 0xA362,
// 0xA363, 0xA364, 0xA365, 0xA366, 0xA367, 0xA368, 0xA369, 0xA36A,
// 0xA36B, 0xA36C, 0xA36D, 0xA36E, 0xA36F, 0xA370, 0xA371, 0xA372,
// 0xA373, 0x0030
#endif
END
IDRC_TABLEFILES RCDATA
BEGIN
#ifdef UNICODE
// szTblFile[6][16]
L"ARRAY30.TAB\0 456", L"ARRAYHW.TAB\0 456",
L"\0 34567890123456", L"\0 34567890123456",
L"ARPTR.TBL\0 23456", L"ARPHR.TBL\0 45656",
#else
// szTblFile[6][32]
"ARRAY30.TAB\0 4567890123456789012", "ARRAYHW.TAB\0 4567890123456789012",
"\0 345678901234567890123456789012", "XUSRAR30.TBL\0 567890123456789012",
"ARPTR.TBL\0 234567890123456789012", "ARPHR.TBL\0 234567890123456789012",
#endif
END
STRINGTABLE
BEGIN
IDS_IMENAME, "行列"
IDS_IMEUICLASS, "WINAR30"
IDS_IMECOMPCLASS, "CompWINAR30"
IDS_IMECANDCLASS, "CandWINAR30"
IDS_IMESTATUSCLASS, "StatusWINAR30"
IDS_IMEOFFCARETCLASS, "OffWINAR30"
IDS_IMECMENUCLASS, "CMenuWINAR30"
END