OSDN Git Service

Add UTF-8 to UTF-16 API bridge.
authors_kawamoto <s_kawamoto@users.sourceforge.jp>
Thu, 8 Sep 2011 15:05:08 +0000 (00:05 +0900)
committers_kawamoto <s_kawamoto@users.sourceforge.jp>
Thu, 8 Sep 2011 15:05:08 +0000 (00:05 +0900)
Change internal chars to UTF-8.
Add support for UTF-8 to text transfer mode.
Add support for UTF-8 filenames (some buggy).
Add UIs for UTF-8.

34 files changed:
FFFTP.exe
FFFTP.vc90.vcproj
FFFTP_English.vc90.vcproj
Resource/FFFTP.APS
Resource/FFFTP.rc
Resource/resource.h
Resource/toolbar1.bmp
Resource_eng/FFFTP-eng.aps
Resource_eng/FFFTP-eng.rc
Resource_eng/resource.h
Resource_eng/toolbar1.bmp
common.h
config.h
ftpproc.c
getput.c
hostman.c
main.c
mbswrapper.c [new file with mode: 0644]
mbswrapper.h [new file with mode: 0644]
mbtoutf8.bat [new file with mode: 0644]
mbtoutf8.exe [new file with mode: 0644]
mbtoutf8/ReadMe.txt [new file with mode: 0644]
mbtoutf8/mbtoutf8.cpp [new file with mode: 0644]
mbtoutf8/mbtoutf8.sln [new file with mode: 0644]
mbtoutf8/mbtoutf8.vcproj [new file with mode: 0644]
mbtoutf8/stdafx.cpp [new file with mode: 0644]
mbtoutf8/stdafx.h [new file with mode: 0644]
mbtoutf8/targetver.h [new file with mode: 0644]
mesg-eng.h
mesg-eng.old.h [new file with mode: 0644]
mesg-jpn.h
mesg-jpn.old.h [new file with mode: 0644]
remote.c
toolmenu.c

index 36a50df..2214070 100644 (file)
Binary files a/FFFTP.exe and b/FFFTP.exe differ
index adcd747..ab1b0aa 100644 (file)
                                >
                        </File>
                        <File
+                               RelativePath=".\mbswrapper.c"
+                               >
+                       </File>
+                       <File
                                RelativePath=".\md4.c"
                                >
                        </File>
                                >
                        </File>
                        <File
+                               RelativePath=".\mbswrapper.h"
+                               >
+                       </File>
+                       <File
                                RelativePath=".\Resource\resource.h"
                                >
                        </File>
index b043505..c745f09 100644 (file)
                                >
                        </File>
                        <File
+                               RelativePath=".\mbswrapper.c"
+                               >
+                       </File>
+                       <File
                                RelativePath=".\md4.c"
                                >
                        </File>
                                >
                        </File>
                        <File
+                               RelativePath=".\mbswrapper.h"
+                               >
+                       </File>
+                       <File
                                RelativePath=".\Resource_eng\resource.h"
                                >
                        </File>
index ecdaab3..cd20b45 100644 (file)
Binary files a/Resource/FFFTP.APS and b/Resource/FFFTP.APS differ
index c7eaff2..49cdeaf 100644 (file)
@@ -725,19 +725,22 @@ hset_code_dlg DIALOGEX 0, 0, 207, 139
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "\82l\82\82o\83S\83V\83b\83N", 0, 0, 0x0\r
 BEGIN\r
-    GROUPBOX        "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h(&K)",-1,7,7,98,70,WS_GROUP\r
-    CONTROL         "\96³\95Ï\8a· (SHIFT-JIS)",HSET_NO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,12,21,81,10\r
-    CONTROL         "JIS",HSET_JIS_CNV,"Button",BS_AUTORADIOBUTTON,12,33,41,10\r
-    CONTROL         "EUC",HSET_EUC_CNV,"Button",BS_AUTORADIOBUTTON,12,45,41,10\r
-    CONTROL         "\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·",HSET_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,12,62,87,10\r
-    GROUPBOX        "\83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h(&N)",-1,110,7,90,103,WS_GROUP\r
-    CONTROL         "SHIFT-JIS",HSET_FN_NO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,114,21,65,10\r
-    CONTROL         "JIS",HSET_FN_JIS_CNV,"Button",BS_AUTORADIOBUTTON,114,33,70,10\r
-    CONTROL         "EUC",HSET_FN_EUC_CNV,"Button",BS_AUTORADIOBUTTON,114,45,41,10\r
-    CONTROL         "Samba-HEX",HSET_FN_SMH_CNV,"Button",BS_AUTORADIOBUTTON,114,57,66,10\r
-    CONTROL         "Samba-CAP",HSET_FN_SMC_CNV,"Button",BS_AUTORADIOBUTTON,114,69,64,10\r
-    CONTROL         "UTF-8N",HSET_FN_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,114,81,41,10\r
-    CONTROL         "\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·",HSET_FN_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,114,95,81,10\r
+    GROUPBOX        "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h(&K)",-1,7,7,98,94,WS_GROUP\r
+    CONTROL         "\96³\95Ï\8a·",HSET_NO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,12,21,81,10\r
+    CONTROL         "Shift_JIS",HSET_SJIS_CNV,"Button",BS_AUTORADIOBUTTON,12,33,81,10\r
+    CONTROL         "JIS",HSET_JIS_CNV,"Button",BS_AUTORADIOBUTTON,12,45,41,10\r
+    CONTROL         "EUC",HSET_EUC_CNV,"Button",BS_AUTORADIOBUTTON,12,57,41,10\r
+    CONTROL         "UTF-8N",HSET_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,12,69,41,10\r
+    CONTROL         "\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·",HSET_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,12,86,87,10\r
+    GROUPBOX        "\83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h(&N)",-1,110,7,90,115,WS_GROUP\r
+    CONTROL         "\8e©\93®",HSET_FN_AUTO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,114,21,65,10\r
+    CONTROL         "Shift_JIS",HSET_FN_SJIS_CNV,"Button",BS_AUTORADIOBUTTON,114,33,65,10\r
+    CONTROL         "JIS",HSET_FN_JIS_CNV,"Button",BS_AUTORADIOBUTTON,114,45,70,10\r
+    CONTROL         "EUC",HSET_FN_EUC_CNV,"Button",BS_AUTORADIOBUTTON,114,57,41,10\r
+    CONTROL         "Samba-HEX",HSET_FN_SMH_CNV,"Button",BS_AUTORADIOBUTTON,114,69,66,10\r
+    CONTROL         "Samba-CAP",HSET_FN_SMC_CNV,"Button",BS_AUTORADIOBUTTON,114,81,64,10\r
+    CONTROL         "UTF-8N",HSET_FN_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,114,93,41,10\r
+    CONTROL         "\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·",HSET_FN_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,114,107,81,10\r
 END\r
 \r
 opt_trmode1_dlg DIALOG  0, 0, 211, 139\r
@@ -2076,6 +2079,8 @@ BEGIN
     BUTTON      ID_BUTTON40122\r
     BUTTON      ID_BUTTON40125\r
     BUTTON      ID_BUTTON40156\r
+    BUTTON      ID_BUTTON40173\r
+    BUTTON      ID_BUTTON40174\r
 END\r
 \r
 remote_toolbar_bmp TOOLBAR  16, 16\r
index aea0b61..0fd2d66 100644 (file)
@@ -1,6 +1,6 @@
 //{{NO_DEPENDENCIES}}\r
 // Microsoft Visual C++ generated include file.\r
-// Used by FFFTP.rc\r
+// Used by ffftp.rc\r
 //\r
 #define DELETE_ALL                      3\r
 #define DELETE_NO                       4\r
 #define HSET_FIREWAL                    1061\r
 #define HSET_FIREWALL                   1061\r
 #define FIRE_TYPE1                      1062\r
-#define HSET_FN_NO_CNV                  1062\r
+#define HSET_FN_AUTO_CNV                1062\r
 #define FIRE_TYPE4                      1063\r
 #define HSET_FN_JIS_CNV                 1063\r
 #define FIRE_TYPE3                      1064\r
 #define IDC_EDIT1                       1191\r
 #define MOVE_NOTIFY_TEXT                1194\r
 #define COMMON_TEXT                     1194\r
+#define HSET_SJIS_CNV                   1195\r
+#define HSET_UTF8N_CNV                  1196\r
+#define HSET_FN_SJIS_CNV                1197\r
 #define MENU_END                        40001\r
 #define MENU_EXIT                       40001\r
 #define MENU_CONNECT                    40003\r
 #define MENU_HELP                       40040\r
 #define MENU_BMARK_ADD                  40041\r
 #define MENU_BMARK_EDIT                 40042\r
-#define MENU_KNJ_EUC                    40043\r
-#define MENU_KNJ_JIS                    40044\r
-#define MENU_KNJ_NONE                   40045\r
-#define MENU_UPDIR                      40046\r
-#define MENU_DCLICK                     40047\r
-#define MENU_SELECT                     40049\r
-#define MENU_SELECT_ALL                 40050\r
-#define MENU_FIND                       40051\r
-#define MENU_FINDNEXT                   40052\r
-#define MENU_DOTFILE                    40054\r
-#define MENU_IMPORT_WS                  40056\r
-#define ID_BUTTON40058                  40058\r
-#define ID_BUTTON40059                  40059\r
+#define MENU_KNJ_SJIS                   40043\r
+#define MENU_KNJ_EUC                    40044\r
+#define MENU_KNJ_JIS                    40045\r
+#define MENU_KNJ_UTF8N                  40046\r
+#define MENU_KNJ_NONE                   40047\r
+#define MENU_L_KNJ_SJIS                 40048\r
+#define MENU_L_KNJ_EUC                  40049\r
+#define MENU_L_KNJ_JIS                  40050\r
+#define MENU_L_KNJ_UTF8N                40051\r
+#define MENU_UPDIR                      40052\r
+#define MENU_DCLICK                     40053\r
+#define MENU_SELECT                     40054\r
+#define MENU_SELECT_ALL                 40055\r
+#define MENU_FIND                       40056\r
+#define MENU_FINDNEXT                   40057\r
+#define MENU_DOTFILE                    40058\r
+#define MENU_IMPORT_WS                  40059\r
 #define ID_BUTTON40060                  40060\r
 #define ID_BUTTON40061                  40061\r
 #define ID_BUTTON40062                  40062\r
 #define MENU_REGLOAD                    40170\r
 #define MENU_XFRMODE                    40171\r
 #define MENU_CHANGEPASSWD               40172\r
+#define ID_BUTTON40173                  40173\r
+#define ID_BUTTON40174                  40174\r
 #define FSNOTIFY_TITLE                  65535\r
 #define HOST_SIZEGRIP                   65535\r
 \r
 #ifdef APSTUDIO_INVOKED\r
 #ifndef APSTUDIO_READONLY_SYMBOLS\r
 #define _APS_NEXT_RESOURCE_VALUE        189\r
-#define _APS_NEXT_COMMAND_VALUE         40173\r
-#define _APS_NEXT_CONTROL_VALUE         1195\r
+#define _APS_NEXT_COMMAND_VALUE         40175\r
+#define _APS_NEXT_CONTROL_VALUE         1198\r
 #define _APS_NEXT_SYMED_VALUE           101\r
 #endif\r
 #endif\r
index b11f3fb..7ab3cde 100644 (file)
Binary files a/Resource/toolbar1.bmp and b/Resource/toolbar1.bmp differ
index 72defe1..27bf57a 100644 (file)
Binary files a/Resource_eng/FFFTP-eng.aps and b/Resource_eng/FFFTP-eng.aps differ
index 65f486e..6bf6616 100644 (file)
@@ -268,19 +268,22 @@ hset_code_dlg DIALOGEX 0, 0, 207, 139
 STYLE DS_SETFONT | WS_CHILD | WS_DISABLED | WS_CAPTION\r
 FONT 9, "MS Sans Serif", 0, 0, 0x0\r
 BEGIN\r
-    GROUPBOX        "&Japanese Kanji Code",-1,7,7,98,70,WS_GROUP\r
-    CONTROL         "No conversion (S-JIS)",HSET_NO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,12,21,91,10\r
-    CONTROL         "JIS",HSET_JIS_CNV,"Button",BS_AUTORADIOBUTTON,12,33,41,10\r
-    CONTROL         "EUC",HSET_EUC_CNV,"Button",BS_AUTORADIOBUTTON,12,45,41,10\r
-    CONTROL         "Hankaku to Zenkaku",HSET_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,12,62,90,10\r
-    GROUPBOX        "&Filename Kanji Code",-1,107,7,97,104,WS_GROUP\r
-    CONTROL         "SHIFT-JIS",HSET_FN_NO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,111,21,65,10\r
-    CONTROL         "JIS",HSET_FN_JIS_CNV,"Button",BS_AUTORADIOBUTTON,111,33,70,10\r
-    CONTROL         "EUC",HSET_FN_EUC_CNV,"Button",BS_AUTORADIOBUTTON,111,45,41,10\r
-    CONTROL         "Samba-HEX",HSET_FN_SMH_CNV,"Button",BS_AUTORADIOBUTTON,111,57,66,10\r
-    CONTROL         "Samba-CAP",HSET_FN_SMC_CNV,"Button",BS_AUTORADIOBUTTON,111,69,64,10\r
-    CONTROL         "UTF-8N",HSET_FN_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,111,81,63,10\r
-    CONTROL         "Hankaku to Zenkaku",HSET_FN_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,111,96,91,10\r
+    GROUPBOX        "&Japanese Kanji Code",-1,7,7,98,94,WS_GROUP\r
+    CONTROL         "No conversion",HSET_NO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,12,21,91,10\r
+    CONTROL         "Shift_JIS",HSET_SJIS_CNV,"Button",BS_AUTORADIOBUTTON,12,33,81,10\r
+    CONTROL         "JIS",HSET_JIS_CNV,"Button",BS_AUTORADIOBUTTON,12,45,41,10\r
+    CONTROL         "EUC",HSET_EUC_CNV,"Button",BS_AUTORADIOBUTTON,12,57,41,10\r
+    CONTROL         "UTF-8N",HSET_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,12,69,41,10\r
+    CONTROL         "Hankaku to Zenkaku",HSET_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,12,96,90,10\r
+    GROUPBOX        "&Filename Kanji Code",-1,107,7,97,116,WS_GROUP\r
+    CONTROL         "Automatic",HSET_FN_AUTO_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,114,21,65,10\r
+    CONTROL         "Shift_JIS",HSET_FN_SJIS_CNV,"Button",BS_AUTORADIOBUTTON | WS_GROUP,111,33,65,10\r
+    CONTROL         "JIS",HSET_FN_JIS_CNV,"Button",BS_AUTORADIOBUTTON,111,45,70,10\r
+    CONTROL         "EUC",HSET_FN_EUC_CNV,"Button",BS_AUTORADIOBUTTON,111,57,41,10\r
+    CONTROL         "Samba-HEX",HSET_FN_SMH_CNV,"Button",BS_AUTORADIOBUTTON,111,69,66,10\r
+    CONTROL         "Samba-CAP",HSET_FN_SMC_CNV,"Button",BS_AUTORADIOBUTTON,111,81,64,10\r
+    CONTROL         "UTF-8N",HSET_FN_UTF8N_CNV,"Button",BS_AUTORADIOBUTTON,111,93,63,10\r
+    CONTROL         "Hankaku to Zenkaku",HSET_FN_HANCNV,"Button",BS_AUTOCHECKBOX | WS_GROUP | WS_TABSTOP,111,108,91,10\r
 END\r
 \r
 hset_dialup_dlg DIALOG  0, 0, 207, 139\r
@@ -2127,6 +2130,8 @@ BEGIN
     BUTTON      ID_BUTTON40122\r
     BUTTON      ID_BUTTON40125\r
     BUTTON      ID_BUTTON40156\r
+    BUTTON      ID_BUTTON40173\r
+    BUTTON      ID_BUTTON40174\r
 END\r
 \r
 remote_toolbar_bmp TOOLBAR  16, 16\r
index 9a1c2e0..d580642 100644 (file)
 #define HSET_FIREWAL                    1061\r
 #define HSET_FIREWALL                   1061\r
 #define FIRE_TYPE1                      1062\r
-#define HSET_FN_NO_CNV                  1062\r
+#define HSET_FN_AUTO_CNV                1062\r
 #define FIRE_TYPE4                      1063\r
 #define HSET_FN_JIS_CNV                 1063\r
 #define FIRE_TYPE3                      1064\r
 #define TRMODE3_FOLDER_ATTR             1186\r
 #define ABOUT_URL                       1187\r
 #define IDC_EDIT1                       1191\r
+#define MOVE_NOTIFY_TEXT                1194\r
 #define COMMON_TEXT                     1194\r
+#define HSET_SJIS_CNV                   1195\r
+#define HSET_UTF8N_CNV                  1196\r
+#define HSET_FN_SJIS_CNV                1197\r
 #define MENU_END                        40001\r
 #define MENU_EXIT                       40001\r
 #define MENU_CONNECT                    40003\r
 #define MENU_HELP                       40040\r
 #define MENU_BMARK_ADD                  40041\r
 #define MENU_BMARK_EDIT                 40042\r
-#define MENU_KNJ_EUC                    40043\r
-#define MENU_KNJ_JIS                    40044\r
-#define MENU_KNJ_NONE                   40045\r
-#define MENU_UPDIR                      40046\r
-#define MENU_DCLICK                     40047\r
-#define MENU_SELECT                     40049\r
-#define MENU_SELECT_ALL                 40050\r
-#define MENU_FIND                       40051\r
-#define MENU_FINDNEXT                   40052\r
-#define MENU_DOTFILE                    40054\r
-#define MENU_IMPORT_WS                  40056\r
-#define ID_BUTTON40058                  40058\r
-#define ID_BUTTON40059                  40059\r
+#define MENU_KNJ_SJIS                   40043\r
+#define MENU_KNJ_EUC                    40044\r
+#define MENU_KNJ_JIS                    40045\r
+#define MENU_KNJ_UTF8N                  40046\r
+#define MENU_KNJ_NONE                   40047\r
+#define MENU_L_KNJ_SJIS                 40048\r
+#define MENU_L_KNJ_EUC                  40049\r
+#define MENU_L_KNJ_JIS                  40050\r
+#define MENU_L_KNJ_UTF8N                40051\r
+#define MENU_UPDIR                      40052\r
+#define MENU_DCLICK                     40053\r
+#define MENU_SELECT                     40054\r
+#define MENU_SELECT_ALL                 40055\r
+#define MENU_FIND                       40056\r
+#define MENU_FINDNEXT                   40057\r
+#define MENU_DOTFILE                    40058\r
+#define MENU_IMPORT_WS                  40059\r
 #define ID_BUTTON40060                  40060\r
 #define ID_BUTTON40061                  40061\r
 #define ID_BUTTON40062                  40062\r
 #define MENU_REGLOAD                    40170\r
 #define MENU_XFRMODE                    40171\r
 #define MENU_CHANGEPASSWD               40172\r
+#define ID_BUTTON40173                  40173\r
+#define ID_BUTTON40174                  40174\r
 #define FSNOTIFY_TITLE                  65535\r
 #define HOST_SIZEGRIP                   65535\r
 \r
 #ifdef APSTUDIO_INVOKED\r
 #ifndef APSTUDIO_READONLY_SYMBOLS\r
 #define _APS_NEXT_RESOURCE_VALUE        189\r
-#define _APS_NEXT_COMMAND_VALUE         40173\r
-#define _APS_NEXT_CONTROL_VALUE         1194\r
+#define _APS_NEXT_COMMAND_VALUE         40175\r
+#define _APS_NEXT_CONTROL_VALUE         1198\r
 #define _APS_NEXT_SYMED_VALUE           101\r
 #endif\r
 #endif\r
index b11f3fb..7ab3cde 100644 (file)
Binary files a/Resource_eng/toolbar1.bmp and b/Resource_eng/toolbar1.bmp differ
index bcf3371..2f76bb6 100644 (file)
--- a/common.h
+++ b/common.h
@@ -669,15 +669,17 @@ LIST_UNIX_70
 \r
 /*===== \8a¿\8e\9a\83R\81[\83h\95Ï\8a· =====*/\r
 \r
-#define KANJI_SJIS             0               /* SJIS */\r
-#define KANJI_JIS              1               /* JIS */\r
-#define KANJI_EUC              2               /* EUC */\r
-#define KANJI_SMB_HEX  3               /* Samba-HEX */\r
-#define KANJI_SMB_CAP  4               /* Samba-CAP */\r
-#define KANJI_UTF8N            5               /* UTF-8N */\r
+#define KANJI_SJIS             1               /* SJIS */\r
+#define KANJI_JIS              2               /* JIS */\r
+#define KANJI_EUC              3               /* EUC */\r
+#define KANJI_SMB_HEX  4               /* Samba-HEX */\r
+#define KANJI_SMB_CAP  5               /* Samba-CAP */\r
+#define KANJI_UTF8N            6               /* UTF-8N */\r
 \r
 #define KANJI_NOCNV            0               /* \8a¿\8e\9a\83R\81[\83h\95Ï\8a·\82È\82µ */\r
 \r
+#define KANJI_AUTO             0\r
+\r
 /*===== \83T\83E\83\93\83h =====*/\r
 \r
 #define SND_CONNECT            0               /* \90Ú\91±\8e\9e\82Ì\83T\83E\83\93\83h */\r
@@ -960,6 +962,7 @@ typedef struct transpacket {
        FILETIME Time;                                  /* \83t\83@\83C\83\8b\82Ì\8e\9e\8aÔ(UTC) */\r
        int Attr;                                               /* \83t\83@\83C\83\8b\82Ì\91®\90« */\r
        int KanjiCode;                                  /* \8a¿\8e\9a\83R\81[\83h (KANJI_xxx) */\r
+       int KanjiCodeDesired;                   /* \95Ï\8a·\90æ\82Ì\8a¿\8e\9a\83R\81[\83h (KANJI_xxx) */\r
        int KanaCnv;                                    /* \94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·(YES/NO) */\r
        int Mode;                                               /* \93]\91\97\83\82\81[\83h (EXIST_xxx) */\r
        HWND hWndTrans;                                 /* \93]\91\97\92\86\83_\83C\83A\83\8d\83O\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b */\r
@@ -1235,6 +1238,13 @@ void SetHostKanaCnvImm(int Mode);
 void SetHostKanaCnv(void);\r
 void DispHostKanaCnv(void);\r
 int AskHostKanaCnv(void);\r
+// \83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\r
+void SetLocalKanjiCodeImm(int Mode);\r
+void SetLocalKanjiCode(int Type);\r
+void DispLocalKanjiCode(void);\r
+int AskLocalKanjiCode(void);\r
+void HideLocalKanjiButton(void);\r
+// \82±\82±\82Ü\82Å\r
 void SetSortTypeImm(int LFsort, int LDsort, int RFsort, int RDsort);\r
 void SetSortTypeByColumn(int Win, int Tab);\r
 int AskSortType(int Name);\r
index 0adca58..2febbab 100644 (file)
--- a/config.h
+++ b/config.h
@@ -3,8 +3,10 @@
 #define HAVE_OPENVMS\r
 \r
 //\91S\91Ì\82É\89e\8b¿\82·\82é\90Ý\92è\82Í\82±\82±\82É\8bL\8fq\82·\82é\97\\92è\r
+//\93à\95\94\82ðUTF-8\82Æ\82µ\82Ä\88µ\82¢\83}\83\8b\83`\83o\83C\83g\95\8e\9a\83\8f\83C\83h\95\8e\9aAPI\83\89\83b\83p\81[\82ð\8eg\97p\82·\82é\r
+#include "mbswrapper.h"\r
 //\8eg\97p\82·\82éCPU\82ð1\8cÂ\82É\8cÀ\92è\82·\82é\81i\83}\83\8b\83`\83R\83ACPU\82Ì\93Á\92è\8aÂ\8b«\89º\82Å\83t\83@\83C\83\8b\92Ê\90M\92\86\82É\83N\83\89\83b\83V\83\85\82·\82é\83o\83O\91Î\8dô\81j\r
 #define DISABLE_MULTI_CPUS\r
 //\83l\83b\83g\83\8f\81[\83N\83o\83b\83t\83@\82ð\96³\8cø\82É\82·\82é\81i\92Ê\90M\92\86\8e~\8cã\82É\83\8a\83\82\81[\83g\82Ì\83f\83B\83\8c\83N\83g\83\8a\82ª\95\\8e¦\82³\82ê\82È\82¢\83o\83O\91Î\8dô\81j\r
-#define DISABLE_NETWORK_BUFFERS\r
+//#define DISABLE_NETWORK_BUFFERS\r
 \r
index cd217bd..ef6b10a 100644 (file)
--- a/ftpproc.c
+++ b/ftpproc.c
@@ -200,6 +200,7 @@ void DownLoadProc(int ChName, int ForceFile, int All)
                                Pkt.Size = Pos->Size;\r
                                Pkt.Time = Pos->Time;\r
                                Pkt.KanjiCode = AskHostKanjiCode();\r
+                               Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
                                Pkt.KanaCnv = AskHostKanaCnv();\r
 \r
                                Pkt.Mode = CheckLocalFile(&Pkt);        /* Pkt.ExistSize \82ª\83Z\83b\83g\82³\82ê\82é */\r
@@ -301,6 +302,7 @@ void DirectDownLoadProc(char *Fname)
                                /* \83T\83C\83Y\82Æ\93ú\95t\82Í\93]\91\97\91¤\83X\83\8c\83b\83h\82Å\8eæ\93¾\82µ\81A\83Z\83b\83g\82·\82é */\r
 \r
                                Pkt.KanjiCode = AskHostKanjiCode();\r
+                               Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
                                Pkt.KanaCnv = AskHostKanaCnv();\r
 \r
                                Pkt.Mode = CheckLocalFile(&Pkt);        /* Pkt.ExistSize \82ª\83Z\83b\83g\82³\82ê\82é */\r
@@ -551,6 +553,7 @@ void MirrorDownloadProc(int Notify)
                                                Pkt.Time = RemotePos->Time;\r
 //                                             Pkt.Attr = 0;\r
                                                Pkt.KanjiCode = AskHostKanjiCode();\r
+                                               Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
                                                Pkt.KanaCnv = AskHostKanaCnv();\r
                                                Pkt.Mode = EXIST_OVW;\r
                                                AddTmpTransFileList(&Pkt, &Base);\r
@@ -944,6 +947,7 @@ void UpLoadListProc(int ChName, int All)
                                Pkt.Time = Pos->Time;\r
                                Pkt.Attr = AskUpLoadFileAttr(Pkt.RemoteFile);\r
                                Pkt.KanjiCode = AskHostKanjiCode();\r
+                               Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
                                Pkt.KanaCnv = AskHostKanaCnv();\r
                                Pkt.Mode = CheckRemoteFile(&Pkt, RemoteList);\r
                                if(Pkt.Mode == EXIST_ABORT)\r
@@ -1094,6 +1098,7 @@ void UpLoadDragProc(WPARAM wParam)
                                Pkt.Time = Pos->Time;\r
                                Pkt.Attr = AskUpLoadFileAttr(Pkt.RemoteFile);\r
                                Pkt.KanjiCode = AskHostKanjiCode();\r
+                               Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
                                Pkt.KanaCnv = AskHostKanaCnv();\r
                                Pkt.Mode = CheckRemoteFile(&Pkt, RemoteList);\r
                                if(Pkt.Mode == EXIST_ABORT)\r
@@ -1360,6 +1365,7 @@ void MirrorUploadProc(int Notify)
                                                Pkt.Time = LocalPos->Time;\r
                                                Pkt.Attr = AskUpLoadFileAttr(Pkt.RemoteFile);\r
                                                Pkt.KanjiCode = AskHostKanjiCode();\r
+                                               Pkt.KanjiCodeDesired = AskLocalKanjiCode();\r
                                                Pkt.KanaCnv = AskHostKanaCnv();\r
                                                Pkt.Mode = EXIST_OVW;\r
                                                AddTmpTransFileList(&Pkt, &Base);\r
index 2e3b93f..7cf67a2 100644 (file)
--- a/getput.c
+++ b/getput.c
@@ -59,7 +59,7 @@
 \r
 #ifdef DISABLE_NETWORK_BUFFERS\r
 #undef BUFSIZE\r
-#define BUFSIZE                        (63 * 1024)     // RWIN\92l\88È\89º\82Å\8f[\95ª\82È\91å\82«\82³\82ª\96]\82Ü\82µ\82¢\82Æ\8ev\82í\82ê\82é\81B\r
+#define BUFSIZE                        (64 * 1024)     // RWIN\92l\88È\89º\82Å\8f[\95ª\82È\91å\82«\82³\82ª\96]\82Ü\82µ\82¢\82Æ\8ev\82í\82ê\82é\81B\r
 #undef SET_BUFFER_SIZE\r
 #endif\r
 \r
@@ -1178,6 +1178,8 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
 \r
        if((iFileHandle = CreateFile(Pkt->LocalFile, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, &Sec, CreateMode, FILE_ATTRIBUTE_NORMAL, NULL)) != INVALID_HANDLE_VALUE)\r
        {\r
+               // UTF-8\91Î\89\9e\r
+               int ProcessedBOM = NO;\r
                if(CreateMode == OPEN_ALWAYS)\r
                        SetFilePointer(iFileHandle, 0, 0, FILE_END);\r
 \r
@@ -1246,11 +1248,154 @@ static int DownLoadFile(TRANSPACKET *Pkt, SOCKET dSkt, int CreateMode, int *Canc
                                cInfo.BufSize = BUFSIZE+3;\r
                                do\r
                                {\r
-                                       if(Pkt->KanjiCode == KANJI_JIS)\r
-                                               Continue = ConvJIStoSJIS(&cInfo);\r
-                                       else\r
-                                               Continue = ConvEUCtoSJIS(&cInfo);\r
-                                       if(WriteFile(iFileHandle, Buf2, cInfo.OutLen, &Writed, NULL) == FALSE)\r
+                                       // \82±\82±\82Å\91S\82ÄUTF-8\82Ö\95Ï\8a·\82·\82é\r
+                                       // TODO: SJIS\88È\8aO\82à\92¼\90ÚUTF-8\82Ö\95Ï\8a·\r
+//                                     if(Pkt->KanjiCode == KANJI_JIS)\r
+//                                             Continue = ConvJIStoSJIS(&cInfo);\r
+//                                     else\r
+//                                             Continue = ConvEUCtoSJIS(&cInfo);\r
+                                       char Buf3[(BUFSIZE + 3) * 4];\r
+                                       CODECONVINFO cInfo2;\r
+                                       switch(Pkt->KanjiCode)\r
+                                       {\r
+                                       case KANJI_SJIS:\r
+                                               switch(Pkt->KanjiCodeDesired)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       if(ProcessedBOM == NO)\r
+                                                       {\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               Continue = YES;\r
+                                                               ProcessedBOM = YES;\r
+                                                               break;\r
+                                                       }\r
+                                                       Continue = ConvSJIStoUTF8N(&cInfo);\r
+                                                       memcpy(Buf3, Buf2, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       case KANJI_JIS:\r
+                                               switch(Pkt->KanjiCodeDesired)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       Continue = ConvJIStoSJIS(&cInfo);\r
+                                                       memcpy(Buf3, Buf2, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       if(ProcessedBOM == NO)\r
+                                                       {\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               Continue = YES;\r
+                                                               ProcessedBOM = YES;\r
+                                                               break;\r
+                                                       }\r
+                                                       Continue = ConvJIStoSJIS(&cInfo);\r
+                                                       InitCodeConvInfo(&cInfo2);\r
+                                                       cInfo2.KanaCnv = NO;\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       case KANJI_EUC:\r
+                                               switch(Pkt->KanjiCodeDesired)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       Continue = ConvEUCtoSJIS(&cInfo);\r
+                                                       memcpy(Buf3, Buf2, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       if(ProcessedBOM == NO)\r
+                                                       {\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               Continue = YES;\r
+                                                               ProcessedBOM = YES;\r
+                                                               break;\r
+                                                       }\r
+                                                       Continue = ConvEUCtoSJIS(&cInfo);\r
+                                                       InitCodeConvInfo(&cInfo2);\r
+                                                       cInfo2.KanaCnv = NO;\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       case KANJI_UTF8N:\r
+                                               if(ProcessedBOM == NO)\r
+                                               {\r
+                                                       if(memcmp(Buf, "\xEF\xBB\xBF", 3) == 0)\r
+                                                       {\r
+                                                               cInfo.Str += 3;\r
+                                                               cInfo.StrLen -= 3;\r
+                                                       }\r
+                                                       cInfo2.OutLen = 0;\r
+                                                       switch(Pkt->KanjiCodeDesired)\r
+                                                       {\r
+                                                       case KANJI_UTF8N:\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               break;\r
+                                                       }\r
+                                                       Continue = YES;\r
+                                                       ProcessedBOM = YES;\r
+                                                       break;\r
+                                               }\r
+                                               switch(Pkt->KanjiCodeDesired)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       Continue = ConvUTF8NtoSJIS(&cInfo);\r
+                                                       memcpy(Buf3, Buf2, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       }\r
+//                                     if(WriteFile(iFileHandle, Buf2, cInfo.OutLen, &Writed, NULL) == FALSE)\r
+                                       if(WriteFile(iFileHandle, Buf3, cInfo2.OutLen, &Writed, NULL) == FALSE)\r
                                                Pkt->Abort = ABORT_DISKFULL;\r
                                }\r
                                while((Continue == YES) && (Pkt->Abort == ABORT_NONE));\r
@@ -1820,13 +1965,11 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
 /* End */\r
 #endif\r
 \r
-// Written by Suguru Kawamoto\r
 #ifdef DISABLE_NETWORK_BUFFERS\r
        // \94O\82Ì\82½\82ß\91\97\90M\83o\83b\83t\83@\82ð\96³\8cø\82É\82·\82é\81B\r
        int buf_size = 0;\r
        setsockopt(dSkt, SOL_SOCKET, SO_SNDBUF, (char *)&buf_size, sizeof(buf_size));\r
 #endif\r
-// End Written by Suguru Kawamoto\r
 \r
        Pkt->Abort = ABORT_NONE;\r
 \r
@@ -1837,6 +1980,8 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
        if((iFileHandle = CreateFile(Pkt->LocalFile, GENERIC_READ,\r
                FILE_SHARE_READ|FILE_SHARE_WRITE, &Sec, OPEN_EXISTING, 0, NULL)) != INVALID_HANDLE_VALUE)\r
        {\r
+               // UTF-8\91Î\89\9e\r
+               int ProcessedBOM = NO;\r
                if(Pkt->hWndTrans != NULL)\r
                {\r
                        Low = GetFileSize(iFileHandle, &High);\r
@@ -1880,12 +2025,155 @@ static int UpLoadFile(TRANSPACKET *Pkt, SOCKET dSkt)
                                cInfo.BufSize = BUFSIZE+3;\r
                                do\r
                                {\r
-                                       if(Pkt->KanjiCode == KANJI_JIS)\r
-                                               Continue = ConvSJIStoJIS(&cInfo);\r
-                                       else\r
-                                               Continue = ConvSJIStoEUC(&cInfo);\r
+                                       // \82±\82±\82Å\91S\82ÄUTF-8\82Ö\95Ï\8a·\82·\82é\r
+                                       // TODO: SJIS\88È\8aO\82à\92¼\90ÚUTF-8\82Ö\95Ï\8a·\r
+//                                     if(Pkt->KanjiCode == KANJI_JIS)\r
+//                                             Continue = ConvSJIStoJIS(&cInfo);\r
+//                                     else\r
+//                                             Continue = ConvSJIStoEUC(&cInfo);\r
+                                       char Buf3[(BUFSIZE + 3) * 4];\r
+                                       CODECONVINFO cInfo2;\r
+                                       switch(Pkt->KanjiCodeDesired)\r
+                                       {\r
+                                       case KANJI_SJIS:\r
+                                               switch(Pkt->KanjiCode)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       if(ProcessedBOM == NO)\r
+                                                       {\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               Continue = YES;\r
+                                                               ProcessedBOM = YES;\r
+                                                               break;\r
+                                                       }\r
+                                                       Continue = ConvSJIStoUTF8N(&cInfo);\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       case KANJI_JIS:\r
+                                               switch(Pkt->KanjiCode)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       Continue = ConvJIStoSJIS(&cInfo);\r
+                                                       memcpy(Buf3, Buf2, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       if(ProcessedBOM == NO)\r
+                                                       {\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               Continue = YES;\r
+                                                               ProcessedBOM = YES;\r
+                                                               break;\r
+                                                       }\r
+                                                       Continue = ConvJIStoSJIS(&cInfo);\r
+                                                       InitCodeConvInfo(&cInfo2);\r
+                                                       cInfo2.KanaCnv = NO;\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       case KANJI_EUC:\r
+                                               switch(Pkt->KanjiCode)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       Continue = ConvEUCtoSJIS(&cInfo);\r
+                                                       memcpy(Buf3, Buf2, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       if(ProcessedBOM == NO)\r
+                                                       {\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               Continue = YES;\r
+                                                               ProcessedBOM = YES;\r
+                                                               break;\r
+                                                       }\r
+                                                       Continue = ConvEUCtoSJIS(&cInfo);\r
+                                                       InitCodeConvInfo(&cInfo2);\r
+                                                       cInfo2.KanaCnv = NO;\r
+                                                       cInfo2.Str = cInfo.Buf;\r
+                                                       cInfo2.StrLen = cInfo.OutLen;\r
+                                                       cInfo2.Buf = Buf3;\r
+                                                       cInfo2.BufSize = (BUFSIZE + 3) * 4;\r
+                                                       ConvSJIStoUTF8N(&cInfo2);\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       case KANJI_UTF8N:\r
+                                               if(ProcessedBOM == NO)\r
+                                               {\r
+                                                       if(memcmp(Buf, "\xEF\xBB\xBF", 3) == 0)\r
+                                                       {\r
+                                                               cInfo.Str += 3;\r
+                                                               cInfo.StrLen -= 3;\r
+                                                       }\r
+                                                       cInfo2.OutLen = 0;\r
+                                                       switch(Pkt->KanjiCode)\r
+                                                       {\r
+                                                       case KANJI_UTF8N:\r
+                                                               memcpy(Buf3, "\xEF\xBB\xBF", 3);\r
+                                                               cInfo2.OutLen = 3;\r
+                                                               break;\r
+                                                       }\r
+                                                       Continue = YES;\r
+                                                       ProcessedBOM = YES;\r
+                                                       break;\r
+                                               }\r
+                                               switch(Pkt->KanjiCode)\r
+                                               {\r
+                                               case KANJI_SJIS:\r
+                                                       Continue = ConvUTF8NtoSJIS(&cInfo);\r
+                                                       memcpy(Buf3, Buf2, cInfo.OutLen);\r
+                                                       cInfo2.OutLen = cInfo.OutLen;\r
+                                                       break;\r
+                                               case KANJI_JIS:\r
+                                                       break;\r
+                                               case KANJI_EUC:\r
+                                                       break;\r
+                                               case KANJI_UTF8N:\r
+                                                       memcpy(Buf3, cInfo.Str, cInfo.StrLen);\r
+                                                       cInfo2.OutLen = cInfo.StrLen;\r
+                                                       Continue = NO;\r
+                                                       break;\r
+                                               }\r
+                                               break;\r
+                                       }\r
 \r
-                                       if(TermCodeConvAndSend(&tInfo, dSkt, Buf2, cInfo.OutLen, Pkt->Type) == FAIL)\r
+//                                     if(TermCodeConvAndSend(&tInfo, dSkt, Buf2, cInfo.OutLen, Pkt->Type) == FAIL)\r
+                                       if(TermCodeConvAndSend(&tInfo, dSkt, Buf3, cInfo2.OutLen, Pkt->Type) == FAIL)\r
                                        {\r
                                                Pkt->Abort = ABORT_ERROR;\r
                                                        break;\r
index f151997..abecc33 100644 (file)
--- a/hostman.c
+++ b/hostman.c
@@ -1790,15 +1790,19 @@ static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP
 {\r
        NMHDR *pnmhdr;\r
 \r
+       // UTF-8\91Î\89\9e\r
        static const RADIOBUTTON KanjiButton[] = {\r
                { HSET_NO_CNV, KANJI_NOCNV },\r
+               { HSET_SJIS_CNV, KANJI_SJIS },\r
                { HSET_JIS_CNV, KANJI_JIS },\r
-               { HSET_EUC_CNV, KANJI_EUC }\r
+               { HSET_EUC_CNV, KANJI_EUC },\r
+               { HSET_UTF8N_CNV, KANJI_UTF8N }\r
        };\r
        #define KANJIBUTTONS    (sizeof(KanjiButton)/sizeof(RADIOBUTTON))\r
 \r
        static const RADIOBUTTON NameKanjiButton[] = {\r
-               { HSET_FN_NO_CNV, KANJI_NOCNV },\r
+               { HSET_FN_AUTO_CNV, KANJI_AUTO },\r
+               { HSET_FN_SJIS_CNV, KANJI_SJIS },\r
                { HSET_FN_JIS_CNV, KANJI_JIS },\r
                { HSET_FN_EUC_CNV, KANJI_EUC },\r
                { HSET_FN_SMH_CNV, KANJI_SMB_HEX },\r
@@ -1845,7 +1849,10 @@ static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP
                                        EnableWindow(GetDlgItem(hDlg, HSET_HANCNV), TRUE);\r
                                        break;\r
 \r
+                               // UTF-8\91Î\89\9e\r
                                case HSET_NO_CNV :\r
+                               case HSET_SJIS_CNV :\r
+                               case HSET_UTF8N_CNV :\r
                                        EnableWindow(GetDlgItem(hDlg, HSET_HANCNV), FALSE);\r
                                        break;\r
 \r
@@ -1854,7 +1861,8 @@ static BOOL CALLBACK CodeSettingProc(HWND hDlg, UINT iMessage, WPARAM wParam, LP
                                        EnableWindow(GetDlgItem(hDlg, HSET_FN_HANCNV), TRUE);\r
                                        break;\r
 \r
-                               case HSET_FN_NO_CNV :\r
+                               case HSET_FN_AUTO_CNV :\r
+                               case HSET_FN_SJIS_CNV :\r
                                case HSET_FN_SMH_CNV :\r
                                case HSET_FN_SMC_CNV :\r
                                case HSET_FN_UTF8N_CNV :        // UTF-8N\91Î\89\9e\r
diff --git a/main.c b/main.c
index 0341bfd..eaef74f 100644 (file)
--- a/main.c
+++ b/main.c
@@ -397,6 +397,7 @@ static int InitApp(LPSTR lpszCmdLine, int cmdShow)
                                DispTransferType();\r
                                SetHostKanaCnvImm(YES);\r
                                SetHostKanjiCodeImm(KANJI_NOCNV);\r
+                               SetLocalKanjiCodeImm(KANJI_UTF8N);\r
                                DispListType();\r
                                DispDotFileMode();\r
                                DispSyncMoveMode();\r
@@ -1025,12 +1026,22 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
                                        DispTransferType();\r
                                        break;\r
 \r
+                               // UTF-8\91Î\89\9e\r
+                               case MENU_KNJ_SJIS :\r
                                case MENU_KNJ_EUC :\r
                                case MENU_KNJ_JIS :\r
+                               case MENU_KNJ_UTF8N :\r
                                case MENU_KNJ_NONE :\r
                                        SetHostKanjiCode(LOWORD(wParam));\r
                                        break;\r
 \r
+                               case MENU_L_KNJ_SJIS :\r
+                               case MENU_L_KNJ_EUC :\r
+                               case MENU_L_KNJ_JIS :\r
+                               case MENU_L_KNJ_UTF8N :\r
+                                       SetLocalKanjiCode(LOWORD(wParam));\r
+                                       break;\r
+\r
                                case MENU_KANACNV :\r
                                        SetHostKanaCnv();\r
                                        break;\r
@@ -1296,6 +1307,10 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
                                                        lpttt->lpszText = MSGJPN170;\r
                                                        break;\r
 \r
+                                               case MENU_KNJ_SJIS :\r
+                                                       lpttt->lpszText = MSGJPN305;\r
+                                                       break;\r
+\r
                                                case MENU_KNJ_EUC :\r
                                                        lpttt->lpszText = MSGJPN171;\r
                                                        break;\r
@@ -1304,10 +1319,30 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
                                                        lpttt->lpszText = MSGJPN172;\r
                                                        break;\r
 \r
+                                               case MENU_KNJ_UTF8N :\r
+                                                       lpttt->lpszText = MSGJPN306;\r
+                                                       break;\r
+\r
                                                case MENU_KNJ_NONE :\r
                                                        lpttt->lpszText = MSGJPN173;\r
                                                        break;\r
 \r
+                                               case MENU_L_KNJ_SJIS :\r
+                                                       lpttt->lpszText = MSGJPN307;\r
+                                                       break;\r
+\r
+                                               case MENU_L_KNJ_EUC :\r
+                                                       lpttt->lpszText = MSGJPN308;\r
+                                                       break;\r
+\r
+                                               case MENU_L_KNJ_JIS :\r
+                                                       lpttt->lpszText = MSGJPN309;\r
+                                                       break;\r
+\r
+                                               case MENU_L_KNJ_UTF8N :\r
+                                                       lpttt->lpszText = MSGJPN310;\r
+                                                       break;\r
+\r
                                                case MENU_KANACNV :\r
                                                        lpttt->lpszText = MSGJPN174;\r
                                                        break;\r
@@ -1320,6 +1355,17 @@ static LRESULT CALLBACK FtpWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARA
                                                        lpttt->lpszText = MSGJPN176;\r
                                                        break;\r
                                        }\r
+                                       // UTF-8\82©\82çShift_JIS\82Ö\95Ï\8a·\r
+                                       {\r
+                                               static wchar_t StringBufferUTF16[1024];\r
+                                               static char StringBufferSJIS[1024];\r
+                                               if(lpttt->lpszText)\r
+                                               {\r
+                                                       MtoW(StringBufferUTF16, sizeof(StringBufferUTF16)/ sizeof(wchar_t), lpttt->lpszText, -1);\r
+                                                       WtoA(StringBufferSJIS, sizeof(StringBufferSJIS)/ sizeof(char), StringBufferUTF16, -1);\r
+                                                       lpttt->lpszText = StringBufferSJIS;\r
+                                               }\r
+                                       }\r
                                        break;\r
 \r
                                case LVN_COLUMNCLICK :\r
diff --git a/mbswrapper.c b/mbswrapper.c
new file mode 100644 (file)
index 0000000..2b7e2cf
--- /dev/null
@@ -0,0 +1,1233 @@
+// mbswrapper.cpp
+// Copyright (C) 2011 Suguru Kawamoto
+// \83}\83\8b\83`\83o\83C\83g\95\8e\9a\83\8f\83C\83h\95\8e\9aAPI\83\89\83b\83p\81[
+// \83}\83\8b\83`\83o\83C\83g\95\8e\9a\82ÍUTF-8\81A\83\8f\83C\83h\95\8e\9a\82ÍUTF-16\82Å\82 \82é\82à\82Ì\82Æ\82·\82é
+// \91S\82Ä\82Ì\90§\8cä\97p\82Ì\95\8e\9a\82ÍASCII\82Ì\94Í\88Í\82Å\82 \82é\82½\82ß\81AShift_JIS\82ÆUTF-8\8aÔ\82Ì\95Ï\8a·\82Í\95s\97v
+
+#define UNICODE
+#define _WIN32_WINNT 0x0600
+#undef _WIN32_IE
+#define _WIN32_IE 0x0400
+
+#include <tchar.h>
+#include <windows.h>
+#include <commctrl.h>
+#include <shlobj.h>
+#include <htmlhelp.h>
+
+#define DO_NOT_REPLACE
+#include "mbswrapper.h"
+
+// \83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\82©\82ç\83\8f\83C\83h\95\8e\9a\97ñ\82Ö\95Ï\8a·
+int MtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count)
+{
+       if(pSrc < (LPCSTR)0x00010000 || !((char*)pSrc + 1))
+               return 0;
+       if(pDst)
+               return MultiByteToWideChar(CP_UTF8, 0, pSrc, count, pDst, size);
+       return MultiByteToWideChar(CP_UTF8, 0, pSrc, count, NULL, 0);
+}
+
+// \83\8f\83C\83h\95\8e\9a\97ñ\82©\82ç\83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\82Ö\95Ï\8a·
+int WtoM(LPSTR pDst, int size, LPCWSTR pSrc, int count)
+{
+       if(pSrc < (LPCWSTR)0x00010000 || !((char*)pSrc + 1))
+               return 0;
+       if(pDst)
+               return WideCharToMultiByte(CP_UTF8, 0, pSrc, count, pDst, size, NULL, NULL);
+       return WideCharToMultiByte(CP_UTF8, 0, pSrc, count, NULL, 0, NULL, NULL);
+}
+
+// \83\8f\83C\83h\95\8e\9a\97ñ\82©\82çShift_JIS\95\8e\9a\97ñ\82Ö\95Ï\8a·
+int WtoA(LPSTR pDst, int size, LPCWSTR pSrc, int count)
+{
+       if(pSrc < (LPCWSTR)0x00010000 || !((char*)pSrc + 1))
+               return 0;
+       if(pDst)
+               return WideCharToMultiByte(CP_ACP, 0, pSrc, count, pDst, size, NULL, NULL);
+       return WideCharToMultiByte(CP_ACP, 0, pSrc, count, NULL, 0, NULL, NULL);
+}
+
+// \83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\83o\83b\83t\83@\8fI\92[\82ð\8b­\90§\93I\82ÉNULL\82Å\92u\8a·
+int TerminateStringM(LPSTR lpString, int size)
+{
+       int i;
+       if(lpString < (LPSTR)0x00010000 || !((char*)lpString + 1))
+               return 0;
+       for(i = 0; i < size; i++)
+       {
+               if(lpString[i] == '\0')
+                       return i;
+       }
+       i--;
+       lpString[i] = '\0';
+       return i;
+}
+
+// \83\8f\83C\83h\95\8e\9a\97ñ\83o\83b\83t\83@\8fI\92[\82ð\8b­\90§\93I\82ÉNULL\82Å\92u\8a·
+int TerminateStringW(LPWSTR lpString, int size)
+{
+       int i;
+       if(lpString < (LPWSTR)0x00010000 || !((char*)lpString + 1))
+               return 0;
+       for(i = 0; i < size; i++)
+       {
+               if(lpString[i] == L'\0')
+                       return i;
+       }
+       i--;
+       lpString[i] = L'\0';
+       return i;
+}
+
+// NULL\8bæ\90Ø\82è\95¡\90\94\83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\82Ì\92·\82³\82ð\8eæ\93¾
+size_t GetMultiStringLengthM(LPCSTR lpString)
+{
+       size_t i;
+       if(lpString < (LPCSTR)0x00010000 || !((char*)lpString + 1))
+               return 0;
+       i = 0;
+       while(lpString[i] != '\0' || lpString[i + 1] != '\0')
+       {
+               i++;
+       }
+       i++;
+       return i;
+}
+
+// NULL\8bæ\90Ø\82è\95¡\90\94\83\8f\83C\83h\95\8e\9a\97ñ\82Ì\92·\82³\82ð\8eæ\93¾
+size_t GetMultiStringLengthW(LPCWSTR lpString)
+{
+       size_t i;
+       if(lpString < (LPCWSTR)0x00010000 || !((char*)lpString + 1))
+               return 0;
+       i = 0;
+       while(lpString[i] != L'\0' || lpString[i + 1] != L'\0')
+       {
+               i++;
+       }
+       i++;
+       return i;
+}
+
+// \83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\97p\82Ì\83\81\83\82\83\8a\82ð\8am\95Û
+char* AllocateStringM(int size)
+{
+       char* p;
+       p = (char*)malloc(sizeof(char) * size);
+       if(p)
+               *p = '\0';
+       return p;
+}
+
+// \83\8f\83C\83h\95\8e\9a\97ñ\97p\82Ì\83\81\83\82\83\8a\82ð\8am\95Û
+wchar_t* AllocateStringW(int size)
+{
+       wchar_t* p;
+       p = (wchar_t*)malloc(sizeof(wchar_t) * size);
+       if(p)
+               *p = L'\0';
+       return p;
+}
+
+// Shift_JIS\95\8e\9a\97ñ\97p\82Ì\83\81\83\82\83\8a\82ð\8am\95Û
+char* AllocateStringA(int size)
+{
+       char* p;
+       p = (char*)malloc(sizeof(char) * size);
+       if(p)
+               *p = '\0';
+       return p;
+}
+
+// \83\81\83\82\83\8a\82ð\8am\95Û\82µ\82Ä\83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\82©\82ç\83\8f\83C\83h\95\8e\9a\97ñ\82Ö\95Ï\8a·
+wchar_t* DuplicateMtoW(LPCSTR lpString, int c)
+{
+       wchar_t* p;
+       int i;
+       if(lpString < (LPCSTR)0x00010000 || !((char*)lpString + 1))
+               return (wchar_t*)lpString;
+       if(c < 0)
+               c = strlen(lpString);
+       p = AllocateStringW(MtoW(NULL, 0, lpString, c) + 1);
+       if(p)
+       {
+               i = MtoW(p, 65535, lpString, c);
+               p[i] = L'\0';
+       }
+       return p;
+}
+
+// \8ew\92è\82µ\82½\83T\83C\83Y\82Ì\83\81\83\82\83\8a\82ð\8am\95Û\82µ\82Ä\83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\82©\82ç\83\8f\83C\83h\95\8e\9a\97ñ\82Ö\95Ï\8a·
+wchar_t* DuplicateMtoWBuffer(LPCSTR lpString, int c, int size)
+{
+       wchar_t* p;
+       int i;
+       if(lpString < (LPCSTR)0x00010000 || !((char*)lpString + 1))
+               return (wchar_t*)lpString;
+       if(c < 0)
+               c = strlen(lpString);
+       p = AllocateStringW(size);
+       if(p)
+       {
+               i = MtoW(p, size, lpString, c);
+               p[i] = L'\0';
+       }
+       return p;
+}
+
+// \83\81\83\82\83\8a\82ð\8am\95Û\82µ\82ÄNULL\8bæ\90Ø\82è\83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\82©\82ç\83\8f\83C\83h\95\8e\9a\97ñ\82Ö\95Ï\8a·
+wchar_t* DuplicateMtoWMultiString(LPCSTR lpString)
+{
+       int count;
+       wchar_t* p;
+       if(lpString < (LPCSTR)0x00010000 || !((char*)lpString + 1))
+               return (wchar_t*)lpString;
+       count = GetMultiStringLengthM(lpString) + 1;
+       p = AllocateStringW(count);
+       if(p)
+               MtoW(p, count, lpString, count);
+       return p;
+}
+
+// \8ew\92è\82µ\82½\83T\83C\83Y\82Ì\83\81\83\82\83\8a\82ð\8am\95Û\82µ\82ÄNULL\8bæ\90Ø\82è\83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\82©\82ç\83\8f\83C\83h\95\8e\9a\97ñ\82Ö\95Ï\8a·
+wchar_t* DuplicateMtoWMultiStringBuffer(LPCSTR lpString, int size)
+{
+       int count;
+       wchar_t* p;
+       if(lpString < (LPCSTR)0x00010000 || !((char*)lpString + 1))
+               return (wchar_t*)lpString;
+       count = GetMultiStringLengthM(lpString) + 1;
+       p = AllocateStringW(size);
+       if(p)
+       {
+               MtoW(p, size, lpString, count);
+               p[size - 2] = L'\0';
+               p[size - 1] = L'\0';
+       }
+       return p;
+}
+
+// \83\81\83\82\83\8a\82ð\8am\95Û\82µ\82Ä\83\8f\83C\83h\95\8e\9a\97ñ\82©\82ç\83}\83\8b\83`\83o\83C\83g\95\8e\9a\97ñ\82Ö\95Ï\8a·
+char* DuplicateWtoM(LPCWSTR lpString, int c)
+{
+       char* p;
+       int i;
+       if(lpString < (LPCWSTR)0x00010000 || !((char*)lpString + 1))
+               return (char*)lpString;
+       if(c < 0)
+               c = wcslen(lpString);
+       p = AllocateStringM(WtoM(NULL, 0, lpString, c) + 1);
+       if(p)
+       {
+               i = WtoM(p, 65535, lpString, c);
+               p[i] = L'\0';
+       }
+       return p;
+}
+
+// \83\81\83\82\83\8a\82ð\8am\95Û\82µ\82Ä\83\8f\83C\83h\95\8e\9a\97ñ\82©\82çShift_JIS\95\8e\9a\97ñ\82Ö\95Ï\8a·
+char* DuplicateWtoA(LPCWSTR lpString, int c)
+{
+       char* p;
+       int i;
+       if(lpString < (LPCWSTR)0x00010000 || !((char*)lpString + 1))
+               return (char*)lpString;
+       if(c < 0)
+               c = wcslen(lpString);
+       p = AllocateStringA(WtoA(NULL, 0, lpString, c) + 1);
+       if(p)
+       {
+               i = WtoA(p, 65535, lpString, c);
+               p[i] = L'\0';
+       }
+       return p;
+}
+
+// \95\8e\9a\97ñ\97p\82É\8am\95Û\82µ\82½\83\81\83\82\83\8a\82ð\8aJ\95ú
+void FreeDuplicatedString(void* p)
+{
+       if(p < (void*)0x00010000 || !((char*)p + 1))
+               return;
+       free(p);
+}
+
+// \88È\89º\83\89\83b\83p\81[
+// \96ß\82è\92l\83o\83b\83t\83@ r
+// \83\8f\83C\83h\95\8e\9a\83o\83b\83t\83@ pw%d
+// \83}\83\8b\83`\83o\83C\83g\95\8e\9a\83o\83b\83t\83@ pm%d
+// \88ø\90\94\83o\83b\83t\83@ a%d
+
+#define START_ROUTINE                                  do{
+#define END_ROUTINE                                            }while(0);end_of_routine:
+#define QUIT_ROUTINE                                   goto end_of_routine;
+
+HANDLE CreateFileM(LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
+{
+       HANDLE r = INVALID_HANDLE_VALUE;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpFileName, -1);
+       r = CreateFileW(pw0, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+int MessageBoxM(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
+{
+       int r = IDOK;
+       wchar_t* pw0 = NULL;
+       wchar_t* pw1 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpText, -1);
+       pw1 = DuplicateMtoW(lpCaption, -1);
+       r = MessageBoxW(hWnd, pw0, pw1, uType);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       FreeDuplicatedString(pw1);
+       return r;
+}
+
+HANDLE FindFirstFileM(LPCSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData)
+{
+       HANDLE r = INVALID_HANDLE_VALUE;
+       wchar_t* pw0 = NULL;
+       WIN32_FIND_DATAW a0;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpFileName, -1);
+       r = FindFirstFileW(pw0, &a0);
+       if(r != INVALID_HANDLE_VALUE)
+       {
+               lpFindFileData->dwFileAttributes = a0.dwFileAttributes;
+               lpFindFileData->ftCreationTime = a0.ftCreationTime;
+               lpFindFileData->ftLastAccessTime = a0.ftLastAccessTime;
+               lpFindFileData->ftLastWriteTime = a0.ftLastWriteTime;
+               lpFindFileData->nFileSizeHigh = a0.nFileSizeHigh;
+               lpFindFileData->nFileSizeLow = a0.nFileSizeLow;
+               lpFindFileData->dwReserved0 = a0.dwReserved0;
+               lpFindFileData->dwReserved1 = a0.dwReserved1;
+               WtoM(lpFindFileData->cFileName, sizeof(lpFindFileData->cFileName), a0.cFileName, -1);
+               WtoM(lpFindFileData->cAlternateFileName, sizeof(lpFindFileData->cAlternateFileName), a0.cAlternateFileName, -1);
+       }
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+BOOL FindNextFileM(HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData)
+{
+       BOOL r = FALSE;
+       WIN32_FIND_DATAW a0;
+START_ROUTINE
+       r = FindNextFileW(hFindFile, &a0);
+       if(r)
+       {
+               lpFindFileData->dwFileAttributes = a0.dwFileAttributes;
+               lpFindFileData->ftCreationTime = a0.ftCreationTime;
+               lpFindFileData->ftLastAccessTime = a0.ftLastAccessTime;
+               lpFindFileData->ftLastWriteTime = a0.ftLastWriteTime;
+               lpFindFileData->nFileSizeHigh = a0.nFileSizeHigh;
+               lpFindFileData->nFileSizeLow = a0.nFileSizeLow;
+               lpFindFileData->dwReserved0 = a0.dwReserved0;
+               lpFindFileData->dwReserved1 = a0.dwReserved1;
+               WtoM(lpFindFileData->cFileName, sizeof(lpFindFileData->cFileName), a0.cFileName, -1);
+               WtoM(lpFindFileData->cAlternateFileName, sizeof(lpFindFileData->cAlternateFileName), a0.cAlternateFileName, -1);
+       }
+END_ROUTINE
+       return r;
+}
+
+DWORD GetLogicalDriveStringsM(DWORD nBufferLength, LPSTR lpBuffer)
+{
+       // TODO: \96{\97\88\82Í\95Ï\8a·\82ª\95K\97v\82¾\82ª\94¼\8ap\89p\90\94\82Ì\82Ý\82Æ\8ev\82í\82ê\82é\82Ì\82Å\8fÈ\97ª
+       return GetLogicalDriveStringsA(nBufferLength, lpBuffer);
+}
+
+HWND CreateWindowExM(DWORD dwExStyle, LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int X, int Y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam)
+{
+       HWND r = NULL;
+       wchar_t* pw0 = NULL;
+       wchar_t* pw1 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpClassName, -1);
+       pw1 = DuplicateMtoW(lpWindowName, -1);
+       r = CreateWindowExW(dwExStyle, pw0, pw1, dwStyle, X, Y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       FreeDuplicatedString(pw1);
+       return r;
+}
+
+LRESULT SendMessageM(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+       LRESULT r = 0;
+       wchar_t* pw0 = NULL;
+       wchar_t* pw1 = NULL;
+       int Size;
+       LVITEMA* pmLVItem;
+       LVITEMW wLVItem;
+       LVFINDINFOA* pmLVFindInfo;
+       LVFINDINFOW wLVFindInfo;
+       LVCOLUMNA* pmLVColumn;
+       LVCOLUMNW wLVColumn;
+       wchar_t ClassName[MAX_PATH];
+START_ROUTINE
+       switch(Msg)
+       {
+       case WM_SETTEXT:
+               pw0 = DuplicateMtoW((LPCSTR)lParam, -1);
+               r = SendMessageW(hWnd, WM_SETTEXT, wParam, (LPARAM)pw0);
+               break;
+       case WM_GETTEXT:
+               pw0 = AllocateStringW(wParam * 4);
+               SendMessageW(hWnd, WM_GETTEXT, wParam * 4, (LPARAM)pw0);
+               WtoM((LPSTR)lParam, wParam, pw0, -1);
+               r = TerminateStringM((LPSTR)lParam, wParam);
+               break;
+       case WM_GETTEXTLENGTH:
+               Size = SendMessageW(hWnd, WM_GETTEXTLENGTH, 0, 0) + 1;
+               pw0 = AllocateStringW(Size);
+               SendMessageW(hWnd, WM_GETTEXT, (WPARAM)Size, (LPARAM)pw0);
+               r = WtoM(NULL, 0, pw0, -1) - 1;
+               break;
+       default:
+               GetClassNameW(hWnd, ClassName, sizeof(ClassName) / sizeof(wchar_t));
+               if(wcsicmp(ClassName, WC_EDITW) == 0)
+               {
+                       switch(Msg)
+                       {
+                       case EM_REPLACESEL:
+                               pw0 = DuplicateMtoW((LPCSTR)lParam, -1);
+                               r = SendMessageW(hWnd, EM_REPLACESEL, wParam, (LPARAM)pw0);
+                               break;
+                       default:
+                               r = SendMessageW(hWnd, Msg, wParam, lParam);
+                               break;
+                       }
+               }
+               else if(wcsicmp(ClassName, WC_COMBOBOXW) == 0)
+               {
+                       switch(Msg)
+                       {
+                       case CB_ADDSTRING:
+                               pw0 = DuplicateMtoW((LPCSTR)lParam, -1);
+                               r = SendMessageW(hWnd, CB_ADDSTRING, wParam, (LPARAM)pw0);
+                               break;
+                       case CB_INSERTSTRING:
+                               pw0 = DuplicateMtoW((LPCSTR)lParam, -1);
+                               r = SendMessageW(hWnd, CB_INSERTSTRING, wParam, (LPARAM)pw0);
+                               break;
+                       case CB_FINDSTRINGEXACT:
+                               pw0 = DuplicateMtoW((LPCSTR)lParam, -1);
+                               r = SendMessageW(hWnd, CB_FINDSTRINGEXACT, wParam, (LPARAM)pw0);
+                               break;
+                       default:
+                               r = SendMessageW(hWnd, Msg, wParam, lParam);
+                               break;
+                       }
+               }
+               else if(wcsicmp(ClassName, WC_LISTBOXW) == 0)
+               {
+                       switch(Msg)
+                       {
+                       case LB_ADDSTRING:
+                               pw0 = DuplicateMtoW((LPCSTR)lParam, -1);
+                               r = SendMessageW(hWnd, LB_ADDSTRING, wParam, (LPARAM)pw0);
+                               break;
+                       case LB_INSERTSTRING:
+                               pw0 = DuplicateMtoW((LPCSTR)lParam, -1);
+                               r = SendMessageW(hWnd, LB_INSERTSTRING, wParam, (LPARAM)pw0);
+                               break;
+                       case LB_GETTEXT:
+                               Size = SendMessageW(hWnd, LB_GETTEXTLEN, wParam, 0) + 1;
+                               pw0 = AllocateStringW(Size * 4);
+                               SendMessageW(hWnd, LB_GETTEXT, wParam, (LPARAM)pw0);
+                               // \83o\83b\83t\83@\92·\95s\96¾\82Ì\82½\82ß\83I\81[\83o\81[\83\89\83\93\82Ì\89Â\94\\90«\82 \82è
+                               WtoM((LPSTR)lParam, Size * 4, pw0, -1);
+                               r = TerminateStringM((LPSTR)lParam, Size * 4);
+                               break;
+                       default:
+                               r = SendMessageW(hWnd, Msg, wParam, lParam);
+                               break;
+                       }
+               }
+               else if(wcsicmp(ClassName, WC_LISTVIEWW) == 0)
+               {
+                       switch(Msg)
+                       {
+                       case LVM_GETITEMA:
+                               pmLVItem = (LVITEMA*)lParam;
+                               wLVItem.mask = pmLVItem->mask;
+                               wLVItem.iItem = pmLVItem->iItem;
+                               wLVItem.iSubItem = pmLVItem->iSubItem;
+                               wLVItem.state = pmLVItem->state;
+                               wLVItem.stateMask = pmLVItem->stateMask;
+                               Size = pmLVItem->cchTextMax * 4;
+                               pw0 = AllocateStringW(Size);
+                               wLVItem.pszText = pw0;
+                               wLVItem.cchTextMax = Size;
+                               wLVItem.iImage = pmLVItem->iImage;
+                               wLVItem.lParam = pmLVItem->lParam;
+                               wLVItem.iIndent = pmLVItem->iIndent;
+                               r = SendMessageW(hWnd, LVM_GETITEMW, wParam, (LPARAM)&wLVItem);
+                               pmLVItem->mask = wLVItem.mask;
+                               pmLVItem->iItem = wLVItem.iItem;
+                               pmLVItem->iSubItem = wLVItem.iSubItem;
+                               pmLVItem->state = wLVItem.state;
+                               pmLVItem->stateMask = wLVItem.stateMask;
+                               WtoM(pmLVItem->pszText, pmLVItem->cchTextMax, wLVItem.pszText, -1);
+                               TerminateStringM(pmLVItem->pszText, pmLVItem->cchTextMax);
+                               pmLVItem->iImage = wLVItem.iImage;
+                               pmLVItem->lParam = wLVItem.lParam;
+                               pmLVItem->iIndent = wLVItem.iIndent;
+                               break;
+                       case LVM_SETITEMA:
+                               pmLVItem = (LVITEMA*)lParam;
+                               wLVItem.mask = pmLVItem->mask;
+                               wLVItem.iItem = pmLVItem->iItem;
+                               wLVItem.iSubItem = pmLVItem->iSubItem;
+                               wLVItem.state = pmLVItem->state;
+                               wLVItem.stateMask = pmLVItem->stateMask;
+                               pw0 = DuplicateMtoW(pmLVItem->pszText, -1);
+                               wLVItem.pszText = pw0;
+                               // TODO: cchTextMax\82Ì\8am\94F
+                               wLVItem.cchTextMax = pmLVItem->cchTextMax;
+                               wLVItem.iImage = pmLVItem->iImage;
+                               wLVItem.lParam = pmLVItem->lParam;
+                               wLVItem.iIndent = pmLVItem->iIndent;
+                               r = SendMessageW(hWnd, LVM_SETITEMW, wParam, (LPARAM)&wLVItem);
+                               break;
+                       case LVM_INSERTITEMA:
+                               pmLVItem = (LVITEMA*)lParam;
+                               wLVItem.mask = pmLVItem->mask;
+                               wLVItem.iItem = pmLVItem->iItem;
+                               wLVItem.iSubItem = pmLVItem->iSubItem;
+                               wLVItem.state = pmLVItem->state;
+                               wLVItem.stateMask = pmLVItem->stateMask;
+                               pw0 = DuplicateMtoW(pmLVItem->pszText, -1);
+                               wLVItem.pszText = pw0;
+                               // TODO: cchTextMax\82Ì\8am\94F
+                               wLVItem.cchTextMax = pmLVItem->cchTextMax;
+                               wLVItem.iImage = pmLVItem->iImage;
+                               wLVItem.lParam = pmLVItem->lParam;
+                               wLVItem.iIndent = pmLVItem->iIndent;
+                               r = SendMessageW(hWnd, LVM_INSERTITEMW, wParam, (LPARAM)&wLVItem);
+                               break;
+                       case LVM_FINDITEMA:
+                               pmLVFindInfo = (LVFINDINFOA*)lParam;
+                               wLVFindInfo.flags = pmLVFindInfo->flags;
+                               pw0 = DuplicateMtoW(pmLVFindInfo->psz, -1);
+                               wLVFindInfo.psz = pw0;
+                               wLVFindInfo.lParam = pmLVFindInfo->lParam;
+                               wLVFindInfo.pt = pmLVFindInfo->pt;
+                               wLVFindInfo.vkDirection = pmLVFindInfo->vkDirection;
+                               r = SendMessageW(hWnd, LVM_FINDITEMW, wParam, (LPARAM)&wLVItem);
+                               break;
+                       case LVM_INSERTCOLUMNA:
+                               pmLVColumn = (LVCOLUMNA*)lParam;
+                               wLVColumn.mask = pmLVColumn->mask;
+                               wLVColumn.fmt = pmLVColumn->fmt;
+                               wLVColumn.cx = pmLVColumn->cx;
+                               pw0 = DuplicateMtoW(pmLVColumn->pszText, -1);
+                               wLVColumn.pszText = pw0;
+                               wLVColumn.cchTextMax = pmLVColumn->cchTextMax;
+                               wLVColumn.iSubItem = pmLVColumn->iSubItem;
+                               wLVColumn.iImage = pmLVColumn->iImage;
+                               wLVColumn.iOrder = pmLVColumn->iOrder;
+                               r = SendMessageW(hWnd, LVM_INSERTCOLUMNW, wParam, (LPARAM)&wLVColumn);
+                               break;
+                       case LVM_GETITEMTEXTA:
+                               pmLVItem = (LVITEMA*)lParam;
+                               wLVItem.mask = pmLVItem->mask;
+                               wLVItem.iItem = pmLVItem->iItem;
+                               wLVItem.iSubItem = pmLVItem->iSubItem;
+                               wLVItem.state = pmLVItem->state;
+                               wLVItem.stateMask = pmLVItem->stateMask;
+                               Size = pmLVItem->cchTextMax * 4;
+                               pw0 = AllocateStringW(Size);
+                               wLVItem.pszText = pw0;
+                               wLVItem.cchTextMax = Size;
+                               wLVItem.iImage = pmLVItem->iImage;
+                               wLVItem.lParam = pmLVItem->lParam;
+                               wLVItem.iIndent = pmLVItem->iIndent;
+                               r = SendMessageW(hWnd, LVM_GETITEMTEXTW, wParam, (LPARAM)&wLVItem);
+                               pmLVItem->mask = wLVItem.mask;
+                               pmLVItem->iItem = wLVItem.iItem;
+                               pmLVItem->iSubItem = wLVItem.iSubItem;
+                               pmLVItem->state = wLVItem.state;
+                               pmLVItem->stateMask = wLVItem.stateMask;
+                               WtoM(pmLVItem->pszText, pmLVItem->cchTextMax, wLVItem.pszText, -1);
+                               TerminateStringM(pmLVItem->pszText, pmLVItem->cchTextMax);
+                               pmLVItem->iImage = wLVItem.iImage;
+                               pmLVItem->lParam = wLVItem.lParam;
+                               pmLVItem->iIndent = wLVItem.iIndent;
+                               break;
+                       default:
+                               r = SendMessageW(hWnd, Msg, wParam, lParam);
+                               break;
+                       }
+               }
+               else if(wcsicmp(ClassName, STATUSCLASSNAMEW) == 0)
+               {
+                       switch(Msg)
+                       {
+                       case SB_SETTEXTA:
+                               pw0 = DuplicateMtoW((LPCSTR)lParam, -1);
+                               r = SendMessageW(hWnd, SB_SETTEXTW, wParam, (LPARAM)pw0);
+                               break;
+                       default:
+                               r = SendMessageW(hWnd, Msg, wParam, lParam);
+                               break;
+                       }
+               }
+               else
+                       r = SendMessageW(hWnd, Msg, wParam, lParam);
+               break;
+       }
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       FreeDuplicatedString(pw1);
+       return r;
+}
+
+LRESULT SendDlgItemMessageM(HWND hDlg, int nIDDlgItem, UINT Msg, WPARAM wParam, LPARAM lParam)
+{
+       LRESULT r = 0;
+START_ROUTINE
+       r = SendMessageM(GetDlgItem(hDlg, nIDDlgItem), Msg, wParam, lParam);
+END_ROUTINE
+       return r;
+}
+
+BOOL SetWindowTextM(HWND hWnd, LPCSTR lpString)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpString, -1);
+       r = SetWindowTextW(hWnd, pw0);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+UINT DragQueryFileM(HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch)
+{
+       UINT r = 0;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = AllocateStringW(cch * 4);
+       DragQueryFileW(hDrop, iFile, pw0, cch * 4);
+       WtoM(lpszFile, cch, pw0, -1);
+       r = TerminateStringM(lpszFile, cch);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+DWORD GetCurrentDirectoryM(DWORD nBufferLength, LPSTR lpBuffer)
+{
+       DWORD r = 0;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = AllocateStringW(nBufferLength * 4);
+       GetCurrentDirectoryW(nBufferLength * 4, pw0);
+       WtoM(lpBuffer, nBufferLength, pw0, -1);
+       r = TerminateStringM(lpBuffer, nBufferLength);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+BOOL SetCurrentDirectoryM(LPCSTR lpPathName)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpPathName, -1);
+       r = SetCurrentDirectoryW(pw0);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+BOOL SetDllDirectoryM(LPCSTR lpPathName)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpPathName, -1);
+       r = SetDllDirectoryW(pw0);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+DWORD GetFileAttributesM(LPCSTR lpFileName)
+{
+       DWORD r = FALSE;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpFileName, -1);
+       r = GetFileAttributesW(pw0);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+DWORD GetModuleFileNameM(HMODULE hModule, LPCH lpFilename, DWORD nSize)
+{
+       DWORD r = 0;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = AllocateStringW(nSize * 4);
+       GetModuleFileNameW(hModule, pw0, nSize * 4);
+       WtoM(lpFilename, nSize, pw0, -1);
+       r = TerminateStringM(lpFilename, nSize);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+LSTATUS RegOpenKeyExM(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
+{
+       LSTATUS r = 0;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpSubKey, -1);
+       r = RegOpenKeyExW(hKey, pw0, ulOptions, samDesired, phkResult);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+LSTATUS RegCreateKeyExM(HKEY hKey, LPCSTR lpSubKey, DWORD Reserved, LPSTR lpClass, DWORD dwOptions, REGSAM samDesired, CONST LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult, LPDWORD lpdwDisposition)
+{
+       LSTATUS r = 0;
+       wchar_t* pw0 = NULL;
+       wchar_t* pw1 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpSubKey, -1);
+       pw1 = DuplicateMtoW(lpClass, -1);
+       r = RegCreateKeyExW(hKey, pw0, Reserved, pw1, dwOptions, samDesired, lpSecurityAttributes, phkResult, lpdwDisposition);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       FreeDuplicatedString(pw1);
+       return r;
+}
+
+LSTATUS RegDeleteValueM(HKEY hKey, LPCSTR lpValueName)
+{
+       LSTATUS r = 0;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpValueName, -1);
+       r = RegDeleteValueW(hKey, pw0);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+LSTATUS RegQueryValueExM(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData)
+{
+       LSTATUS r = 0;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpValueName, -1);
+       // TODO: \83\8c\83W\83X\83g\83\8a\82ÍUTF-8\82Å\95Û\91\82³\82ê\82Ä\82µ\82Ü\82¤\81i\88È\91O\82Ì\83o\81[\83W\83\87\83\93\82Æ\8cÝ\8a·\90«\82È\82µ\81j
+       // UTF-16\82Å\95Û\91\82·\82é\82×\82«
+       r = RegQueryValueExW(hKey, pw0, lpReserved, lpType, lpData, lpcbData);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+LSTATUS RegSetValueExM(HKEY hKey, LPCSTR lpValueName, DWORD Reserved, DWORD dwType, CONST BYTE* lpData, DWORD cbData)
+{
+       LSTATUS r = 0;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpValueName, -1);
+       // TODO: \83\8c\83W\83X\83g\83\8a\82ÍUTF-8\82Å\95Û\91\82³\82ê\82Ä\82µ\82Ü\82¤\81i\88È\91O\82Ì\83o\81[\83W\83\87\83\93\82Æ\8cÝ\8a·\90«\82È\82µ\81j
+       // UTF-16\82Å\95Û\91\82·\82é\82×\82«
+       r = RegSetValueExW(hKey, pw0, Reserved, dwType, lpData, cbData);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+BOOL TextOutM(HDC hdc, int x, int y, LPCSTR lpString, int c)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpString, c);
+       r = TextOutW(hdc, x, y, pw0, wcslen(pw0));
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+BOOL GetTextExtentPoint32M(HDC hdc, LPCSTR lpString, int c, LPSIZE psizl)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpString, c);
+       r = GetTextExtentPoint32W(hdc, pw0, wcslen(pw0), psizl);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+INT_PTR PropertySheetM(LPCPROPSHEETHEADERA v0)
+{
+       INT_PTR r = 0;
+       PROPSHEETHEADERW a0;
+       PROPSHEETPAGEW* pwPage;
+       UINT i;
+START_ROUTINE
+       a0.dwSize = sizeof(PROPSHEETHEADERW);
+       a0.dwFlags = v0->dwFlags;
+       a0.hwndParent = v0->hwndParent;
+       a0.hInstance = v0->hInstance;
+       if(v0->dwFlags & PSH_USEICONID)
+               a0.pszIcon = DuplicateMtoW(v0->pszIcon, -1);
+       else
+               a0.hIcon = v0->hIcon;
+       a0.pszCaption = DuplicateMtoW(v0->pszCaption, -1);
+       a0.nPages = v0->nPages;
+       a0.pStartPage = DuplicateMtoW(v0->pStartPage, -1);
+       if(v0->ppsp && (pwPage = (PROPSHEETPAGEW*)malloc(sizeof(PROPSHEETPAGEW) * v0->nPages)))
+       {
+               for(i = 0; i < v0->nPages; i++)
+               {
+                       pwPage[i].dwSize = sizeof(PROPSHEETPAGEW);
+                       pwPage[i].dwFlags = v0->ppsp[i].dwFlags;
+                       pwPage[i].hInstance = v0->ppsp[i].hInstance;
+                       pwPage[i].pszTemplate = DuplicateMtoW(v0->ppsp[i].pszTemplate, -1);
+                       if(v0->ppsp[i].dwFlags & PSP_USEICONID)
+                               pwPage[i].pszIcon = DuplicateMtoW(v0->ppsp[i].pszIcon, -1);
+                       else
+                               pwPage[i].hIcon = v0->ppsp[i].hIcon;
+                       if(v0->ppsp[i].dwFlags & PSP_USETITLE)
+                               pwPage[i].pszTitle = DuplicateMtoW(v0->ppsp[i].pszTitle, -1);
+                       pwPage[i].pfnDlgProc = v0->ppsp[i].pfnDlgProc;
+                       pwPage[i].lParam = v0->ppsp[i].lParam;
+                       // TODO: pfnCallback
+                       pwPage[i].pfnCallback = v0->ppsp[i].pfnCallback;
+                       pwPage[i].pcRefParent = v0->ppsp[i].pcRefParent;
+//                     pwPage[i].pszHeaderTitle = DuplicateMtoW(v0->ppsp[i].pszHeaderTitle, -1);
+//                     pwPage[i].pszHeaderSubTitle = DuplicateMtoW(v0->ppsp[i].pszHeaderSubTitle, -1);
+                       pwPage[i].hActCtx = v0->ppsp[i].hActCtx;
+//                     pwPage[i].pszbmHeader = DuplicateMtoW(v0->ppsp[i].pszbmHeader, -1);
+               }
+       }
+       else
+               pwPage = NULL;
+       a0.ppsp = pwPage;
+       a0.pfnCallback = v0->pfnCallback;
+       r = PropertySheetW(&a0);
+       if(a0.dwFlags & PSH_USEICONID)
+               FreeDuplicatedString(a0.pszIcon);
+       FreeDuplicatedString(a0.pszCaption);
+       FreeDuplicatedString(a0.pStartPage);
+       if(pwPage)
+       {
+               for(i = 0; i < v0->nPages; i++)
+               {
+                       FreeDuplicatedString(pwPage[i].pszTemplate);
+                       if(pwPage[i].dwFlags & PSP_USEICONID)
+                               FreeDuplicatedString(pwPage[i].pszIcon);
+                       if(pwPage[i].dwFlags & PSP_USETITLE)
+                               FreeDuplicatedString(pwPage[i].pszTitle);
+//                     FreeDuplicatedString(pwPage[i].pszHeaderTitle);
+//                     FreeDuplicatedString(pwPage[i].pszHeaderSubTitle);
+//                     FreeDuplicatedString(pwPage[i].pszbmHeader);
+               }
+               free(pwPage);
+       }
+END_ROUTINE
+       return r;
+}
+
+BOOL GetOpenFileNameM(LPOPENFILENAMEA v0)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+       wchar_t* pw1 = NULL;
+       wchar_t* pw2 = NULL;
+       wchar_t* pw3 = NULL;
+       wchar_t* pw4 = NULL;
+       wchar_t* pw5 = NULL;
+       wchar_t* pw6 = NULL;
+       wchar_t* pw7 = NULL;
+       wchar_t* pw8 = NULL;
+       wchar_t* pw9 = NULL;
+       OPENFILENAMEW wofn;
+START_ROUTINE
+       wofn.lStructSize = sizeof(OPENFILENAMEW);
+       wofn.hwndOwner = v0->hwndOwner;
+       wofn.hInstance = v0->hInstance;
+       pw0 = DuplicateMtoWMultiString(v0->lpstrFilter);
+       wofn.lpstrFilter = pw0;
+       pw1 = DuplicateMtoWBuffer(v0->lpstrCustomFilter, -1, v0->nMaxCustFilter * 4);
+       wofn.lpstrCustomFilter = pw1;
+       wofn.nMaxCustFilter = v0->nMaxCustFilter * 4;
+       wofn.nFilterIndex = v0->nFilterIndex;
+       pw2 = DuplicateMtoWMultiStringBuffer(v0->lpstrFile, v0->nMaxFile * 4);
+       wofn.lpstrFile = pw2;
+       wofn.nMaxFile = v0->nMaxFile * 4;
+       pw3 = DuplicateMtoWBuffer(v0->lpstrFileTitle, -1, v0->nMaxFileTitle * 4);
+       wofn.lpstrFileTitle = pw3;
+       wofn.nMaxFileTitle = v0->nMaxFileTitle * 4;
+       pw4 = DuplicateMtoW(v0->lpstrInitialDir, -1);
+       wofn.lpstrInitialDir = pw4;
+       pw5 = DuplicateMtoW(v0->lpstrTitle, -1);
+       wofn.lpstrTitle = pw5;
+       wofn.Flags = v0->Flags;
+       wofn.nFileOffset = MtoW(NULL, 0, v0->lpstrFile, v0->nFileOffset);
+       wofn.nFileExtension = MtoW(NULL, 0, v0->lpstrFile, v0->nFileExtension);
+       pw6 = DuplicateMtoW(v0->lpstrDefExt, -1);
+       wofn.lpstrDefExt = pw6;
+       wofn.lCustData = v0->lCustData;
+       wofn.lpfnHook = v0->lpfnHook;
+       wofn.lpTemplateName = DuplicateMtoW(v0->lpTemplateName, -1);
+       wofn.pvReserved = v0->pvReserved;
+       wofn.FlagsEx = v0->FlagsEx;
+       r = GetOpenFileNameW(&wofn);
+       WtoM(v0->lpstrFile, v0->nMaxFile, wofn.lpstrFile, -1);
+       TerminateStringM(v0->lpstrFile, v0->nMaxFile);
+       v0->nFileOffset = WtoM(NULL, 0, wofn.lpstrFile, wofn.nFileOffset);
+       v0->nFileExtension = WtoM(NULL, 0, wofn.lpstrFile, wofn.nFileExtension);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       FreeDuplicatedString(pw1);
+       FreeDuplicatedString(pw2);
+       FreeDuplicatedString(pw3);
+       FreeDuplicatedString(pw4);
+       FreeDuplicatedString(pw5);
+       FreeDuplicatedString(pw6);
+       return r;
+}
+
+BOOL GetSaveFileNameM(LPOPENFILENAMEA v0)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+       wchar_t* pw1 = NULL;
+       wchar_t* pw2 = NULL;
+       wchar_t* pw3 = NULL;
+       wchar_t* pw4 = NULL;
+       wchar_t* pw5 = NULL;
+       wchar_t* pw6 = NULL;
+       wchar_t* pw7 = NULL;
+       wchar_t* pw8 = NULL;
+       wchar_t* pw9 = NULL;
+       OPENFILENAMEW wofn;
+START_ROUTINE
+       wofn.lStructSize = sizeof(OPENFILENAMEW);
+       wofn.hwndOwner = v0->hwndOwner;
+       wofn.hInstance = v0->hInstance;
+       pw0 = DuplicateMtoWMultiString(v0->lpstrFilter);
+       wofn.lpstrFilter = pw0;
+       pw1 = DuplicateMtoWBuffer(v0->lpstrCustomFilter, -1, v0->nMaxCustFilter * 4);
+       wofn.lpstrCustomFilter = pw1;
+       wofn.nMaxCustFilter = v0->nMaxCustFilter * 4;
+       wofn.nFilterIndex = v0->nFilterIndex;
+       pw2 = DuplicateMtoWMultiStringBuffer(v0->lpstrFile, v0->nMaxFile * 4);
+       wofn.lpstrFile = pw2;
+       wofn.nMaxFile = v0->nMaxFile * 4;
+       pw3 = DuplicateMtoWBuffer(v0->lpstrFileTitle, -1, v0->nMaxFileTitle * 4);
+       wofn.lpstrFileTitle = pw3;
+       wofn.nMaxFileTitle = v0->nMaxFileTitle * 4;
+       pw4 = DuplicateMtoW(v0->lpstrInitialDir, -1);
+       wofn.lpstrInitialDir = pw4;
+       pw5 = DuplicateMtoW(v0->lpstrTitle, -1);
+       wofn.lpstrTitle = pw5;
+       wofn.Flags = v0->Flags;
+       wofn.nFileOffset = MtoW(NULL, 0, v0->lpstrFile, v0->nFileOffset);
+       wofn.nFileExtension = MtoW(NULL, 0, v0->lpstrFile, v0->nFileExtension);
+       pw6 = DuplicateMtoW(v0->lpstrDefExt, -1);
+       wofn.lpstrDefExt = pw6;
+       wofn.lCustData = v0->lCustData;
+       wofn.lpfnHook = v0->lpfnHook;
+       wofn.lpTemplateName = DuplicateMtoW(v0->lpTemplateName, -1);
+       wofn.pvReserved = v0->pvReserved;
+       wofn.FlagsEx = v0->FlagsEx;
+       r = GetSaveFileNameW(&wofn);
+       WtoM(v0->lpstrFile, v0->nMaxFile, wofn.lpstrFile, -1);
+       TerminateStringM(v0->lpstrFile, v0->nMaxFile);
+       v0->nFileOffset = WtoM(NULL, 0, wofn.lpstrFile, wofn.nFileOffset);
+       v0->nFileExtension = WtoM(NULL, 0, wofn.lpstrFile, wofn.nFileExtension);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       FreeDuplicatedString(pw1);
+       FreeDuplicatedString(pw2);
+       FreeDuplicatedString(pw3);
+       FreeDuplicatedString(pw4);
+       FreeDuplicatedString(pw5);
+       FreeDuplicatedString(pw6);
+       return r;
+}
+
+HWND HtmlHelpM(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD_PTR dwData)
+{
+       HINSTANCE r = NULL;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(pszFile, -1);
+       r = HtmlHelpW(hwndCaller, pw0, uCommand, dwData);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+HINSTANCE ShellExecuteM(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd)
+{
+       HINSTANCE r = NULL;
+       wchar_t* pw0 = NULL;
+       wchar_t* pw1 = NULL;
+       wchar_t* pw2 = NULL;
+       wchar_t* pw3 = NULL;
+START_ROUTINE
+       pw0 = DuplicateMtoW(lpOperation, -1);
+       pw1 = DuplicateMtoW(lpFile, -1);
+       pw2 = DuplicateMtoW(lpParameters, -1);
+       pw3 = DuplicateMtoW(lpDirectory, -1);
+       r = ShellExecuteW(hwnd, pw0, pw1, pw2, pw3, nShowCmd);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       FreeDuplicatedString(pw1);
+       FreeDuplicatedString(pw2);
+       FreeDuplicatedString(pw3);
+       return r;
+}
+
+PIDLIST_ABSOLUTE SHBrowseForFolderM(LPBROWSEINFOA lpbi)
+{
+       PIDLIST_ABSOLUTE r = NULL;
+       wchar_t* pw0 = NULL;
+       wchar_t* pw1 = NULL;
+       BROWSEINFOW wbi;
+START_ROUTINE
+       wbi.hwndOwner = lpbi->hwndOwner;
+       wbi.pidlRoot = lpbi->pidlRoot;
+       pw0 = DuplicateMtoWBuffer(lpbi->pszDisplayName, -1, MAX_PATH * 4);
+       wbi.pszDisplayName = pw0;
+       pw1 = DuplicateMtoW(lpbi->lpszTitle, -1);
+       wbi.lpszTitle = pw1;
+       wbi.ulFlags = lpbi->ulFlags;
+       // TODO: lpfn
+       wbi.lpfn = lpbi->lpfn;
+       wbi.lParam = lpbi->lParam;
+       wbi.iImage = lpbi->iImage;
+       r = SHBrowseForFolderW(&wbi);
+       // \83o\83b\83t\83@\92·\95s\96¾\82Ì\82½\82ß\83I\81[\83o\81[\83\89\83\93\82Ì\89Â\94\\90«\82 \82è
+       WtoM(lpbi->pszDisplayName, MAX_PATH, wbi.pszDisplayName, -1);
+       lpbi->iImage = wbi.iImage;
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       FreeDuplicatedString(pw1);
+       return r;
+}
+
+BOOL SHGetPathFromIDListM(PCIDLIST_ABSOLUTE pidl, LPSTR pszPath)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       pw0 = AllocateStringW(MAX_PATH * 4);
+       r = SHGetPathFromIDListW(pidl, pw0);
+       // \83o\83b\83t\83@\92·\95s\96¾\82Ì\82½\82ß\83I\81[\83o\81[\83\89\83\93\82Ì\89Â\94\\90«\82 \82è
+       WtoM(pszPath, MAX_PATH, pw0, -1);
+       TerminateStringM(pszPath, MAX_PATH);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+int SHFileOperationM(LPSHFILEOPSTRUCTA lpFileOp)
+{
+       int r = 0;
+       wchar_t* pw0 = NULL;
+       wchar_t* pw1 = NULL;
+       wchar_t* pw2 = NULL;
+       SHFILEOPSTRUCTW wFileOp;
+START_ROUTINE
+       wFileOp.hwnd = lpFileOp->hwnd;
+       wFileOp.wFunc = lpFileOp->wFunc;
+       pw0 = DuplicateMtoWMultiString(lpFileOp->pFrom);
+       wFileOp.pFrom = pw0;
+       pw1 = DuplicateMtoWMultiString(lpFileOp->pTo);
+       wFileOp.pTo = pw1;
+       wFileOp.fFlags = lpFileOp->fFlags;
+       wFileOp.fAnyOperationsAborted = lpFileOp->fAnyOperationsAborted;
+       wFileOp.hNameMappings = lpFileOp->hNameMappings;
+       pw2 = DuplicateMtoW(lpFileOp->lpszProgressTitle, -1);
+       r = SHFileOperationW(&wFileOp);
+       lpFileOp->fAnyOperationsAborted = wFileOp.fAnyOperationsAborted;
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       FreeDuplicatedString(pw1);
+       FreeDuplicatedString(pw2);
+       return r;
+}
+
+BOOL AppendMenuM(HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem)
+{
+       int r = 0;
+       wchar_t* pw0 = NULL;
+START_ROUTINE
+       if(uFlags & (MF_BITMAP | MF_OWNERDRAW))
+               r = AppendMenuW(hMenu, uFlags, uIDNewItem, (LPCWSTR)lpNewItem);
+       else
+       {
+               pw0 = DuplicateMtoW(lpNewItem, -1);
+               r = AppendMenuW(hMenu, uFlags, uIDNewItem, pw0);
+       }
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+BOOL GetMenuItemInfoM(HMENU hmenu, UINT item, BOOL fByPosition, LPMENUITEMINFOA lpmii)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+       MENUITEMINFOW wmii;
+START_ROUTINE
+       wmii.cbSize = sizeof(MENUITEMINFOW);
+       wmii.fMask = lpmii->fMask;
+       wmii.fType = lpmii->fType;
+       wmii.fState = lpmii->fState;
+       wmii.wID = lpmii->wID;
+       wmii.hSubMenu = lpmii->hSubMenu;
+       wmii.hbmpChecked = lpmii->hbmpChecked;
+       wmii.hbmpUnchecked = lpmii->hbmpUnchecked;
+       wmii.dwItemData = lpmii->dwItemData;
+       pw0 = DuplicateMtoWBuffer(lpmii->dwTypeData, -1, lpmii->cch * 4);
+       wmii.dwTypeData = pw0;
+       wmii.cch = lpmii->cch * 4;
+       r = GetMenuItemInfoW(hmenu, item, fByPosition, &wmii);
+       lpmii->fType = wmii.fType;
+       lpmii->fState = wmii.fState;
+       lpmii->wID = wmii.wID;
+       lpmii->hSubMenu = wmii.hSubMenu;
+       lpmii->hbmpChecked = wmii.hbmpChecked;
+       lpmii->hbmpUnchecked = wmii.hbmpUnchecked;
+       lpmii->dwItemData = wmii.dwItemData;
+       WtoM(lpmii->dwTypeData, lpmii->cch, wmii.dwTypeData, -1);
+       TerminateStringM(lpmii->dwTypeData, lpmii->cch);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+HFONT CreateFontIndirectM(CONST LOGFONTA *lplf)
+{
+       HFONT r = NULL;
+       LOGFONTW wlf;
+START_ROUTINE
+       wlf.lfHeight = lplf->lfHeight;
+       wlf.lfWidth = lplf->lfWidth;
+       wlf.lfEscapement = lplf->lfEscapement;
+       wlf.lfOrientation = lplf->lfOrientation;
+       wlf.lfWeight = lplf->lfWeight;
+       wlf.lfItalic = lplf->lfItalic;
+       wlf.lfUnderline = lplf->lfUnderline;
+       wlf.lfStrikeOut = lplf->lfStrikeOut;
+       wlf.lfCharSet = lplf->lfCharSet;
+       wlf.lfOutPrecision = lplf->lfOutPrecision;
+       wlf.lfClipPrecision = lplf->lfClipPrecision;
+       wlf.lfQuality = lplf->lfQuality;
+       wlf.lfPitchAndFamily = lplf->lfPitchAndFamily;
+       MtoW(wlf.lfFaceName, LF_FACESIZE, lplf->lfFaceName, -1);
+       TerminateStringW(wlf.lfFaceName, LF_FACESIZE);
+       r = CreateFontIndirect(&wlf);
+END_ROUTINE
+       return r;
+}
+
+BOOL ChooseFontM(LPCHOOSEFONTA v0)
+{
+       BOOL r = FALSE;
+       wchar_t* pw0 = NULL;
+       CHOOSEFONTW a0;
+       LOGFONTW* pwlf;
+START_ROUTINE
+       a0.lStructSize = sizeof(CHOOSEFONTW);
+       a0.hwndOwner = v0->hwndOwner;
+       a0.hDC = v0->hDC;
+       if(v0->lpLogFont && (pwlf = (LOGFONTW*)malloc(sizeof(LOGFONTW))))
+       {
+               pwlf->lfHeight = v0->lpLogFont->lfHeight;
+               pwlf->lfWidth = v0->lpLogFont->lfWidth;
+               pwlf->lfEscapement = v0->lpLogFont->lfEscapement;
+               pwlf->lfOrientation = v0->lpLogFont->lfOrientation;
+               pwlf->lfWeight = v0->lpLogFont->lfWeight;
+               pwlf->lfItalic = v0->lpLogFont->lfItalic;
+               pwlf->lfUnderline = v0->lpLogFont->lfUnderline;
+               pwlf->lfStrikeOut = v0->lpLogFont->lfStrikeOut;
+               pwlf->lfCharSet = v0->lpLogFont->lfCharSet;
+               pwlf->lfOutPrecision = v0->lpLogFont->lfOutPrecision;
+               pwlf->lfClipPrecision = v0->lpLogFont->lfClipPrecision;
+               pwlf->lfQuality = v0->lpLogFont->lfQuality;
+               pwlf->lfPitchAndFamily = v0->lpLogFont->lfPitchAndFamily;
+               MtoW(pwlf->lfFaceName, LF_FACESIZE, v0->lpLogFont->lfFaceName, -1);
+               TerminateStringW(pwlf->lfFaceName, LF_FACESIZE);
+       }
+       else
+               pwlf = NULL;
+       a0.lpLogFont = pwlf;
+       a0.iPointSize = v0->iPointSize;
+       a0.Flags = v0->Flags;
+       a0.rgbColors = v0->rgbColors;
+       a0.lCustData = v0->lCustData;
+       a0.lpfnHook = v0->lpfnHook;
+       a0.lpTemplateName = DuplicateMtoW(v0->lpTemplateName, -1);
+       a0.hInstance = v0->hInstance;
+       a0.lpszStyle = DuplicateMtoWBuffer(v0->lpszStyle, -1, LF_FACESIZE * 4);
+       a0.nFontType = v0->nFontType;
+       a0.nSizeMin = v0->nSizeMin;
+       a0.nSizeMax = v0->nSizeMax;
+       r = ChooseFontW(&a0);
+       if(v0->lpLogFont)
+       {
+               v0->lpLogFont->lfHeight = pwlf->lfHeight;
+               v0->lpLogFont->lfWidth = pwlf->lfWidth;
+               v0->lpLogFont->lfEscapement = pwlf->lfEscapement;
+               v0->lpLogFont->lfOrientation = pwlf->lfOrientation;
+               v0->lpLogFont->lfWeight = pwlf->lfWeight;
+               v0->lpLogFont->lfItalic = pwlf->lfItalic;
+               v0->lpLogFont->lfUnderline = pwlf->lfUnderline;
+               v0->lpLogFont->lfStrikeOut = pwlf->lfStrikeOut;
+               v0->lpLogFont->lfCharSet = pwlf->lfCharSet;
+               v0->lpLogFont->lfOutPrecision = pwlf->lfOutPrecision;
+               v0->lpLogFont->lfClipPrecision = pwlf->lfClipPrecision;
+               v0->lpLogFont->lfQuality = pwlf->lfQuality;
+               v0->lpLogFont->lfPitchAndFamily = pwlf->lfPitchAndFamily;
+               WtoM(v0->lpLogFont->lfFaceName, LF_FACESIZE, pwlf->lfFaceName, -1);
+               TerminateStringM(v0->lpLogFont->lfFaceName, LF_FACESIZE);
+       }
+       v0->rgbColors = a0.rgbColors;
+       WtoM(v0->lpszStyle, LF_FACESIZE, a0.lpszStyle, -1);
+       TerminateStringM(v0->lpszStyle, LF_FACESIZE);
+       v0->nFontType = a0.nFontType;
+       if(pwlf)
+               free(pwlf);
+       FreeDuplicatedString(a0.lpTemplateName);
+       FreeDuplicatedString(a0.lpszStyle);
+END_ROUTINE
+       FreeDuplicatedString(pw0);
+       return r;
+}
+
+
+
+
+
+
+
+
diff --git a/mbswrapper.h b/mbswrapper.h
new file mode 100644 (file)
index 0000000..45d25cb
--- /dev/null
@@ -0,0 +1,103 @@
+// mbswrapper.h
+// Copyright (C) 2011 Suguru Kawamoto
+// \83}\83\8b\83`\83o\83C\83g\95\8e\9a\83\8f\83C\83h\95\8e\9aAPI\83\89\83b\83p\81[
+
+#ifndef __MBSWRAPPER_H__
+#define __MBSWRAPPER_H__
+
+#ifndef DO_NOT_REPLACE
+
+#undef CreateFile
+#define CreateFile CreateFileM
+#undef MessageBox
+#define MessageBox MessageBoxM
+#undef FindFirstFile
+#define FindFirstFile FindFirstFileM
+#undef FindNextFile
+#define FindNextFile FindNextFileM
+#undef GetLogicalDriveStrings
+#define GetLogicalDriveStrings GetLogicalDriveStringsM
+#undef CreateWindowEx
+#define CreateWindowEx CreateWindowExM
+#undef SendMessage
+#define SendMessage SendMessageM
+#undef SendDlgItemMessage
+#define SendDlgItemMessage SendDlgItemMessageM
+#undef SetWindowText
+#define SetWindowText SetWindowTextM
+#undef DragQueryFile
+#define DragQueryFile DragQueryFileM
+#undef GetCurrentDirectory
+#define GetCurrentDirectory GetCurrentDirectoryM
+#undef SetCurrentDirectory
+#define SetCurrentDirectory SetCurrentDirectoryM
+#undef SetDllDirectory
+#define SetDllDirectory SetDllDirectoryM
+#undef GetFileAttributes
+#define GetFileAttributes GetFileAttributesM
+#undef GetModuleFileName
+#define GetModuleFileName GetModuleFileNameM
+#undef RegOpenKeyEx
+#define RegOpenKeyEx RegOpenKeyExM
+#undef RegCreateKeyEx
+#define RegCreateKeyEx RegCreateKeyExM
+#undef RegDeleteValue
+#define RegDeleteValue RegDeleteValueM
+#undef RegQueryValueEx
+#define RegQueryValueEx RegQueryValueExM
+#undef RegSetValueEx
+#define RegSetValueEx RegSetValueExM
+#undef TextOut
+#define TextOut TextOutM
+#undef GetTextExtentPoint32
+#define GetTextExtentPoint32 GetTextExtentPoint32M
+#undef PropertySheet
+#define PropertySheet PropertySheetM
+#undef GetOpenFileName
+#define GetOpenFileName GetOpenFileNameM
+#undef GetSaveFileName
+#define GetSaveFileName GetSaveFileNameM
+#undef HtmlHelp
+#define HtmlHelp HtmlHelpM
+#undef ShellExecute
+#define ShellExecute ShellExecuteM
+#undef SHBrowseForFolder
+#define SHBrowseForFolder SHBrowseForFolderM
+#undef SHGetPathFromIDList
+#define SHGetPathFromIDList SHGetPathFromIDListM
+#undef SHFileOperation
+#define SHFileOperation SHFileOperationM
+#undef AppendMenu
+#define AppendMenu AppendMenuM
+#undef GetMenuItemInfo
+#define GetMenuItemInfo GetMenuItemInfoM
+#undef CreateFontIndirect
+#define CreateFontIndirect CreateFontIndirectM
+#undef ChooseFont
+#define ChooseFont ChooseFontM
+
+#undef CreateWindow
+#define CreateWindow(lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam) CreateWindowEx(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
+
+#endif
+
+int MtoW(LPWSTR pDst, int size, LPCSTR pSrc, int count);
+int WtoM(LPSTR pDst, int size, LPCWSTR pSrc, int count);
+int WtoA(LPSTR pDst, int size, LPCWSTR pSrc, int count);
+int TerminateStringM(LPSTR lpString, int size);
+int TerminateStringW(LPWSTR lpString, int size);
+size_t GetMultiStringLengthM(LPCSTR lpString);
+size_t GetMultiStringLengthW(LPCWSTR lpString);
+char* AllocateStringM(int size);
+wchar_t* AllocateStringW(int size);
+char* AllocateStringA(int size);
+wchar_t* DuplicateMtoW(LPCSTR lpString, int c);
+wchar_t* DuplicateMtoWBuffer(LPCSTR lpString, int c, int size);
+wchar_t* DuplicateMtoWMultiString(LPCSTR lpString);
+wchar_t* DuplicateMtoWMultiStringBuffer(LPCSTR lpString, int size);
+char* DuplicateWtoM(LPCWSTR lpString, int c);
+char* DuplicateWtoA(LPCWSTR lpString, int c);
+void FreeDuplicatedString(void* p);
+
+#endif
+
diff --git a/mbtoutf8.bat b/mbtoutf8.bat
new file mode 100644 (file)
index 0000000..ffea407
--- /dev/null
@@ -0,0 +1,2 @@
+mbtoutf8 mesg-jpn.old.h mesg-jpn.h
+mbtoutf8 mesg-eng.old.h mesg-eng.h
diff --git a/mbtoutf8.exe b/mbtoutf8.exe
new file mode 100644 (file)
index 0000000..5b01c26
Binary files /dev/null and b/mbtoutf8.exe differ
diff --git a/mbtoutf8/ReadMe.txt b/mbtoutf8/ReadMe.txt
new file mode 100644 (file)
index 0000000..1943752
--- /dev/null
@@ -0,0 +1,29 @@
+========================================================================
+    コンソール アプリケーション : mbtoutf8 プロジェクトの概要
+========================================================================
+
+この mbtoutf8 アプリケーションは、AppWizard によって作成されました。
+
+このファイルには、mbtoutf8 アプリケーションを構成する各ファイル
+の内容の概略が記述されています。
+
+
+mbtoutf8.vcproj
+    これは、アプリケーション ウィザードを使用して生成された VC++ プロジェクトのメイン プロジェクト ファイルです。
+    ファイルを生成した Visual C++ のバージョンに関する情報と、アプリケーション ウィザードで選択されたプラットフォーム、構成、およびプロジェクト機能に関する情報が含まれています。
+
+mbtoutf8.cpp
+    これは、メインのアプリケーション ソース ファイルです。
+
+/////////////////////////////////////////////////////////////////////////////
+その他の標準ファイル :
+
+StdAfx.h, StdAfx.cpp
+    これらのファイルは、プリコンパイル済みヘッダー (PCH) ファイル mbtoutf8.pch とプリコンパイル済み型ファイル StdAfx.obj をビルドするために使用されます。
+
+/////////////////////////////////////////////////////////////////////////////
+その他のメモ :
+
+AppWizard では、ユーザーが追加またはカスタマイズする必要のあるソース コードの部分を示すために、"TODO:" コメントを使用します。
+
+/////////////////////////////////////////////////////////////////////////////
diff --git a/mbtoutf8/mbtoutf8.cpp b/mbtoutf8/mbtoutf8.cpp
new file mode 100644 (file)
index 0000000..502cdf1
--- /dev/null
@@ -0,0 +1,155 @@
+// mbtoutf8.cpp : \83R\83\93\83\\81[\83\8b \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82Ì\83G\83\93\83g\83\8a \83|\83C\83\93\83g\82ð\92è\8b`\82µ\82Ü\82·\81B
+//
+
+#include "stdafx.h"
+
+
+int _tmain(int argc, _TCHAR* argv[])
+{
+       FILE* fpIn;
+       FILE* fpOut;
+       char InBuffer[16384];
+       char OutBuffer[65536];
+       int InPosition;
+       int OutPosition;
+       bool bEscape;
+       bool bString;
+       bool bEncoded;
+       int Count;
+       int UTF8Count;
+       wchar_t UTF16Buffer[4];
+       char UTF8Buffer[8];
+       int i;
+       _tsetlocale(LC_ALL, _T(""));
+       if(argc != 3)
+       {
+               _tprintf(_T("\83}\83\8b\83`\83o\83C\83g\95\8e\9a\81i\83R\81[\83h\83y\81[\83W932\82Ü\82½\82ÍShift JIS\81j\82Å\8f\91\82©\82ê\82½C\8c¾\8cê\83\\81[\83X\83t\83@\83C\83\8b\93à\82Ì\95\8e\9a\97ñ\83\8a\83e\83\89\83\8b\82ðUTF-8\82É\83G\83\93\83R\81[\83h\82µ\82Ü\82·\81B\n"));
+               _tprintf(_T("\83R\83}\83\93\83h\83\89\83C\83\93\n"));
+               _tprintf(_T("mbtoutf8 [in] [out]\n"));
+               _tprintf(_T("[in]    \8c³\82Ì\83\\81[\83X\83t\83@\83C\83\8b\82Ì\83t\83@\83C\83\8b\96¼\n"));
+               _tprintf(_T("[out]   \95Û\91\90æ\82Ì\83t\83@\83C\83\8b\96¼\n"));
+               return 0;
+       }
+       fpIn = _tfopen(argv[1], _T("rt"));
+       if(!fpIn)
+       {
+               _tprintf(_T("\83t\83@\83C\83\8b\"%s\"\82ª\8aJ\82¯\82Ü\82¹\82ñ\81B\n"), argv[1]);
+               return 0;
+       }
+       fpOut = _tfopen(argv[2], _T("wt"));
+       if(!fpIn)
+       {
+               _tprintf(_T("\83t\83@\83C\83\8b\"%s\"\82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ\81B\n"), argv[2]);
+               return 0;
+       }
+       while(fgets(InBuffer, sizeof(InBuffer) / sizeof(char), fpIn))
+       {
+               InPosition = 0;
+               OutPosition = 0;
+               bEscape = false;
+               bString = false;
+               bEncoded = false;
+               while(InBuffer[InPosition])
+               {
+                       Count = max(mblen(&InBuffer[InPosition], 4), 1);
+                       if(Count == 1)
+                       {
+                               switch(InBuffer[InPosition])
+                               {
+                               case '\\':
+                                       bEscape = !bEscape;
+                                       bEncoded = false;
+                                       strncpy(&OutBuffer[OutPosition], &InBuffer[InPosition], Count);
+                                       InPosition += Count;
+                                       OutPosition += Count;
+                                       break;
+                               case '\"':
+                                       bEscape = false;
+                                       bString = !bString;
+                                       bEncoded = false;
+                                       strncpy(&OutBuffer[OutPosition], &InBuffer[InPosition], Count);
+                                       InPosition += Count;
+                                       OutPosition += Count;
+                                       break;
+                               case '0':
+                               case '1':
+                               case '2':
+                               case '3':
+                               case '4':
+                               case '5':
+                               case '6':
+                               case '7':
+                               case '8':
+                               case '9':
+                               case 'A':
+                               case 'B':
+                               case 'C':
+                               case 'D':
+                               case 'E':
+                               case 'F':
+                               case 'a':
+                               case 'b':
+                               case 'c':
+                               case 'd':
+                               case 'e':
+                               case 'f':
+                                       bEscape = false;
+                                       if(bEncoded)
+                                       {
+                                               for(i = 0; i < Count; i++)
+                                               {
+                                                       sprintf(&OutBuffer[OutPosition], "\\x%02X", (unsigned char)InBuffer[InPosition]);
+                                                       InPosition++;
+                                                       OutPosition += 4;
+                                               }
+                                       }
+                                       else
+                                       {
+                                               strncpy(&OutBuffer[OutPosition], &InBuffer[InPosition], Count);
+                                               InPosition += Count;
+                                               OutPosition += Count;
+                                               break;
+                                       }
+                                       break;
+                               default:
+                                       bEscape = false;
+                                       bEncoded = false;
+                                       strncpy(&OutBuffer[OutPosition], &InBuffer[InPosition], Count);
+                                       InPosition += Count;
+                                       OutPosition += Count;
+                                       break;
+                               }
+                       }
+                       else
+                       {
+                               if(bString)
+                               {
+                                       bEscape = false;
+                                       bEncoded = true;
+                                       UTF8Count = MultiByteToWideChar(CP_ACP, 0, &InBuffer[InPosition], Count, UTF16Buffer, sizeof(UTF16Buffer) / sizeof(wchar_t));
+                                       UTF8Count = WideCharToMultiByte(CP_UTF8, 0, UTF16Buffer, UTF8Count, UTF8Buffer, sizeof(UTF8Buffer) / sizeof(char), NULL, NULL);
+                                       InPosition += Count;
+                                       for(i = 0; i < UTF8Count; i++)
+                                       {
+                                               sprintf(&OutBuffer[OutPosition], "\\x%02X", (unsigned char)UTF8Buffer[i]);
+                                               OutPosition += 4;
+                                       }
+                               }
+                               else
+                               {
+                                       bEscape = false;
+                                       bEncoded = false;
+                                       strncpy(&OutBuffer[OutPosition], &InBuffer[InPosition], Count);
+                                       InPosition += Count;
+                                       OutPosition += Count;
+                               }
+                       }
+               }
+               OutBuffer[OutPosition] = '\0';
+               fputs(OutBuffer, fpOut);
+       }
+       fclose(fpIn);
+       fclose(fpOut);
+       return 0;
+}
+
diff --git a/mbtoutf8/mbtoutf8.sln b/mbtoutf8/mbtoutf8.sln
new file mode 100644 (file)
index 0000000..3b75708
--- /dev/null
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 10.00
+# Visual Studio 2008
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mbtoutf8", "mbtoutf8.vcproj", "{655A8FD3-5998-472F-8906-F0A028B70C4F}"
+EndProject
+Global
+       GlobalSection(SolutionConfigurationPlatforms) = preSolution
+               Debug|Win32 = Debug|Win32
+               Release|Win32 = Release|Win32
+       EndGlobalSection
+       GlobalSection(ProjectConfigurationPlatforms) = postSolution
+               {655A8FD3-5998-472F-8906-F0A028B70C4F}.Debug|Win32.ActiveCfg = Debug|Win32
+               {655A8FD3-5998-472F-8906-F0A028B70C4F}.Debug|Win32.Build.0 = Debug|Win32
+               {655A8FD3-5998-472F-8906-F0A028B70C4F}.Release|Win32.ActiveCfg = Release|Win32
+               {655A8FD3-5998-472F-8906-F0A028B70C4F}.Release|Win32.Build.0 = Release|Win32
+       EndGlobalSection
+       GlobalSection(SolutionProperties) = preSolution
+               HideSolutionNode = FALSE
+       EndGlobalSection
+EndGlobal
diff --git a/mbtoutf8/mbtoutf8.vcproj b/mbtoutf8/mbtoutf8.vcproj
new file mode 100644 (file)
index 0000000..0580bd1
--- /dev/null
@@ -0,0 +1,225 @@
+<?xml version="1.0" encoding="shift_jis"?>
+<VisualStudioProject
+       ProjectType="Visual C++"
+       Version="9.00"
+       Name="mbtoutf8"
+       ProjectGUID="{655A8FD3-5998-472F-8906-F0A028B70C4F}"
+       RootNamespace="mbtoutf8"
+       Keyword="Win32Proj"
+       TargetFrameworkVersion="196613"
+       >
+       <Platforms>
+               <Platform
+                       Name="Win32"
+               />
+       </Platforms>
+       <ToolFiles>
+       </ToolFiles>
+       <Configurations>
+               <Configuration
+                       Name="Debug|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1"
+                       CharacterSet="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="0"
+                               PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
+                               MinimalRebuild="true"
+                               BasicRuntimeChecks="3"
+                               RuntimeLibrary="3"
+                               UsePrecompiledHeader="2"
+                               WarningLevel="3"
+                               DebugInformationFormat="4"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="2"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+               <Configuration
+                       Name="Release|Win32"
+                       OutputDirectory="$(SolutionDir)$(ConfigurationName)"
+                       IntermediateDirectory="$(ConfigurationName)"
+                       ConfigurationType="1"
+                       CharacterSet="1"
+                       WholeProgramOptimization="1"
+                       >
+                       <Tool
+                               Name="VCPreBuildEventTool"
+                       />
+                       <Tool
+                               Name="VCCustomBuildTool"
+                       />
+                       <Tool
+                               Name="VCXMLDataGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCWebServiceProxyGeneratorTool"
+                       />
+                       <Tool
+                               Name="VCMIDLTool"
+                       />
+                       <Tool
+                               Name="VCCLCompilerTool"
+                               Optimization="2"
+                               EnableIntrinsicFunctions="true"
+                               PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
+                               RuntimeLibrary="2"
+                               EnableFunctionLevelLinking="true"
+                               UsePrecompiledHeader="2"
+                               WarningLevel="3"
+                               DebugInformationFormat="3"
+                       />
+                       <Tool
+                               Name="VCManagedResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCResourceCompilerTool"
+                       />
+                       <Tool
+                               Name="VCPreLinkEventTool"
+                       />
+                       <Tool
+                               Name="VCLinkerTool"
+                               LinkIncremental="1"
+                               GenerateDebugInformation="true"
+                               SubSystem="1"
+                               OptimizeReferences="2"
+                               EnableCOMDATFolding="2"
+                               TargetMachine="1"
+                       />
+                       <Tool
+                               Name="VCALinkTool"
+                       />
+                       <Tool
+                               Name="VCManifestTool"
+                       />
+                       <Tool
+                               Name="VCXDCMakeTool"
+                       />
+                       <Tool
+                               Name="VCBscMakeTool"
+                       />
+                       <Tool
+                               Name="VCFxCopTool"
+                       />
+                       <Tool
+                               Name="VCAppVerifierTool"
+                       />
+                       <Tool
+                               Name="VCPostBuildEventTool"
+                       />
+               </Configuration>
+       </Configurations>
+       <References>
+       </References>
+       <Files>
+               <Filter
+                       Name="\83\\81[\83\83t\83@\83C\83\8b"
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
+                       >
+                       <File
+                               RelativePath=".\mbtoutf8.cpp"
+                               >
+                       </File>
+                       <File
+                               RelativePath=".\stdafx.cpp"
+                               >
+                               <FileConfiguration
+                                       Name="Debug|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               UsePrecompiledHeader="1"
+                                       />
+                               </FileConfiguration>
+                               <FileConfiguration
+                                       Name="Release|Win32"
+                                       >
+                                       <Tool
+                                               Name="VCCLCompilerTool"
+                                               UsePrecompiledHeader="1"
+                                       />
+                               </FileConfiguration>
+                       </File>
+               </Filter>
+               <Filter
+                       Name="\83w\83b\83_\81\83t\83@\83C\83\8b"
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
+                       >
+                       <File
+                               RelativePath=".\stdafx.h"
+                               >
+                       </File>
+                       <File
+                               RelativePath=".\targetver.h"
+                               >
+                       </File>
+               </Filter>
+               <Filter
+                       Name="\83\8a\83\\81[\83\83t\83@\83C\83\8b"
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
+                       >
+               </Filter>
+               <File
+                       RelativePath=".\ReadMe.txt"
+                       >
+               </File>
+       </Files>
+       <Globals>
+       </Globals>
+</VisualStudioProject>
diff --git a/mbtoutf8/stdafx.cpp b/mbtoutf8/stdafx.cpp
new file mode 100644 (file)
index 0000000..7ab8b77
--- /dev/null
@@ -0,0 +1,8 @@
+// stdafx.cpp : \95W\8f\80\83C\83\93\83N\83\8b\81[\83h mbtoutf8.pch \82Ì\82Ý\82ð
+// \8aÜ\82Þ\83\\81[\83\83t\83@\83C\83\8b\82Í\81A\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\83w\83b\83_\81[\82É\82È\82è\82Ü\82·\81B
+// stdafx.obj \82É\82Í\83v\83\8a\83R\83\93\83p\83C\83\8b\8dÏ\82Ý\8c^\8fî\95ñ\82ª\8aÜ\82Ü\82ê\82Ü\82·\81B
+
+#include "stdafx.h"
+
+// TODO: \82±\82Ì\83t\83@\83C\83\8b\82Å\82Í\82È\82­\81ASTDAFX.H \82Å\95K\97v\82È
+// \92Ç\89Á\83w\83b\83_\81[\82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B
diff --git a/mbtoutf8/stdafx.h b/mbtoutf8/stdafx.h
new file mode 100644 (file)
index 0000000..4bee9d7
--- /dev/null
@@ -0,0 +1,19 @@
+// stdafx.h : \95W\8f\80\82Ì\83V\83X\83e\83\80 \83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\82Ì\83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b\81A\82Ü\82½\82Í
+// \8eQ\8fÆ\89ñ\90\94\82ª\91½\82­\81A\82©\82Â\82 \82Ü\82è\95Ï\8dX\82³\82ê\82È\82¢\81A\83v\83\8d\83W\83F\83N\83g\90ê\97p\82Ì\83C\83\93\83N\83\8b\81[\83\83t\83@\83C\83\8b
+// \82ð\8bL\8fq\82µ\82Ü\82·\81B
+//
+
+#pragma once
+
+#include "targetver.h"
+
+#include <stdio.h>
+#include <tchar.h>
+
+
+
+// TODO: \83v\83\8d\83O\83\89\83\80\82É\95K\97v\82È\92Ç\89Á\83w\83b\83_\81[\82ð\82±\82±\82Å\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B
+
+#include <locale.h>
+#include <windows.h>
+
diff --git a/mbtoutf8/targetver.h b/mbtoutf8/targetver.h
new file mode 100644 (file)
index 0000000..b18cde4
--- /dev/null
@@ -0,0 +1,13 @@
+#pragma once
+
+// \88È\89º\82Ì\83}\83N\83\8d\82Í\81A\8dÅ\92á\8cÀ\95K\97v\82È\83v\83\89\83b\83g\83t\83H\81[\83\80\82ð\92è\8b`\82µ\82Ü\82·\81B\8dÅ\92á\8cÀ\95K\97v\82È\83v\83\89\83b\83g\83t\83H\81[\83\80\82Æ\82Í\81A
+// \83A\83v\83\8a\83P\81[\83V\83\87\83\93\82ð\8eÀ\8ds\82·\82é\82½\82ß\82É\95K\97v\82È\8b@\94\\82ð\94õ\82¦\82½\8dÅ\82à\8cÃ\82¢\83o\81[\83W\83\87\83\93\82Ì Windows \82â Internet Explorer \82È\82Ç
+// \82ð\82¢\82¢\82Ü\82·\81B\82±\82ê\82ç\82Ì\83}\83N\83\8d\82Í\81A\8ew\92è\82µ\82½\83o\81[\83W\83\87\83\93\82Æ\81A\82»\82ê\88È\91O\82Ì\83o\81[\83W\83\87\83\93\82Ì\83v\83\89\83b\83g\83t\83H\81[\83\80\8fã\82Å\97\98\97p\82Å\82«\82é\82·\82×\82Ä\82Ì\8b@\94\\82ð\97L\8cø\82É\82·\82é\82±\82Æ\82É\82æ\82Á\82Ä 
+// \93®\8dì\82µ\82Ü\82·\81B
+
+// \89º\82Å\8ew\92è\82³\82ê\82½\92è\8b`\82Ì\91O\82É\91Î\8fÛ\83v\83\89\83b\83g\83t\83H\81[\83\80\82ð\8ew\92è\82µ\82È\82¯\82ê\82Î\82È\82ç\82È\82¢\8fê\8d\87\81A\88È\89º\82Ì\92è\8b`\82ð\95Ï\8dX\82µ\82Ä\82­\82¾\82³\82¢\81B
+// \88Ù\82È\82é\83v\83\89\83b\83g\83t\83H\81[\83\80\82É\91Î\89\9e\82·\82é\92l\82É\8aÖ\82·\82é\8dÅ\90V\8fî\95ñ\82É\82Â\82¢\82Ä\82Í\81AMSDN \82ð\8eQ\8fÆ\82µ\82Ä\82­\82¾\82³\82¢\81B
+#ifndef _WIN32_WINNT            // \8dÅ\92á\8cÀ\95K\97v\82È\83v\83\89\83b\83g\83t\83H\81[\83\80\82ª Windows Vista \82Å\82 \82é\82±\82Æ\82ð\8ew\92è\82µ\82Ü\82·\81B
+#define _WIN32_WINNT 0x0600     // \82±\82ê\82ð Windows \82Ì\91¼\82Ì\83o\81[\83W\83\87\83\93\8cü\82¯\82É\93K\90Ø\82È\92l\82É\95Ï\8dX\82µ\82Ä\82­\82¾\82³\82¢\81B
+#endif
+
index 385e30d..29b6dff 100644 (file)
 #define MSGJPN248              "Local free: %s"\r
 #define MSGJPN249              "Files in queue: %d"\r
 #define MSGJPN250              "Receiving %s"\r
-#define MSGJPN251              "Err\81FSeed"\r
-#define MSGJPN252              "Err\81FSeed"\r
-#define MSGJPN253              "Err\81FSequence#"\r
+#define MSGJPN251              "Err\xEF\xBC\x9ASeed"\r
+#define MSGJPN252              "Err\xEF\xBC\x9ASeed"\r
+#define MSGJPN253              "Err\xEF\xBC\x9ASequence#"\r
 #define MSGJPN254              "MS Sans Serif"\r
 #define MSGJPN255              "&Upload"\r
 #define MSGJPN256              "U&pload As..."\r
 #define MSGJPN302              "Master password checker looks broken."\r
 #define MSGJPN303              "Master password has been changed."\r
 #define MSGJPN304              "Speecified master password is not correct.\r\nAre you sure you want to re-enter?\r\nNo memorized FTP password is available if you choose 'NO'"\r
+#define MSGJPN305              "Shift_JIS Kanji Code"\r
+#define MSGJPN306              "UTF-8 Kanji Code"\r
+#define MSGJPN307              "Shift_JIS Kanji Code (Local)"\r
+#define MSGJPN308              "EUC Kanji Code (Local)"\r
+#define MSGJPN309              "JIS Kanji Code (Local)"\r
+#define MSGJPN310              "UTF-8 Kanji Code (Local)"\r
diff --git a/mesg-eng.old.h b/mesg-eng.old.h
new file mode 100644 (file)
index 0000000..3bb87ee
--- /dev/null
@@ -0,0 +1,310 @@
+#define MSGJPN001              "Connection cancelled."
+#define MSGJPN002              "Connection cancelled."
+#define MSGJPN003              "\r\nReconnect.\r\n"
+#define MSGJPN004              "Disconnect."
+#define MSGJPN005              "Connection was killed."
+#define MSGJPN006              "Can't login to Firewall."
+#define MSGJPN007              "Can't connect to host %s."
+#define MSGJPN008              "Can't login."
+#define MSGJPN009              "Can't connect."
+#define MSGJPN010              "Firewall host not specified."
+#define MSGJPN011              "Host not specified."
+#define MSGJPN012              "MD5 used."
+#define MSGJPN013              "SHA-1 used."
+#define MSGJPN014              "MD4(S/KEY) used."
+#define MSGJPN015              "Can't process One-time Password."
+#define MSGJPN016              "Searching host %s."
+#define MSGJPN017              "Connecting %sto host %s (%s (%d))."
+#define MSGJPN018              "Connecting %sto host %s (%d)."
+#define MSGJPN019              "Host %s not found."
+#define MSGJPN020              "Connecting %sto host %s (%d)."
+#define MSGJPN021              "SOCKS server %s not found."
+#define MSGJPN022              "Connecting to SOCKS server %s (%d)."
+#define MSGJPN023              "Can't connect to SOCKS server. (Err=%d)"
+#define MSGJPN024              "Can't connect to SOCKS server. (Err=%d)"
+#define MSGJPN025              "Connected."
+#define MSGJPN026              "Can't connected."
+#define MSGJPN027              "Can't create socket."
+#define MSGJPN028              "Can't connect to SOCKS server. (Err=%d)"
+#define MSGJPN029              "Can't connect to SOCKS server. (Err=%d)"
+#define MSGJPN030              "Can't create listen socket."
+#define MSGJPN031              "PORT command not accepted"
+#define MSGJPN032              "Connection is cancelled by user."
+#define MSGJPN033              "Can't send SOCKS command. (Cmd = %04X)"
+#define MSGJPN034              "Can't receive SOCKS5 reply."
+#define MSGJPN035              "Can't receive SOCKS4 reply."
+#define MSGJPN036              "SOCKS certification method not match."
+#define MSGJPN037              "Certification failed by SOCKS server."
+#define MSGJPN038              "Name"
+#define MSGJPN039              "Date"
+#define MSGJPN040              "Size"
+#define MSGJPN041              "Ext"
+#define MSGJPN042              "Name"
+#define MSGJPN043              "Date"
+#define MSGJPN044              "Size"
+#define MSGJPN045              "Ext"
+#define MSGJPN046              "Permissions"
+#define MSGJPN047              "Owner"
+#define MSGJPN048              "Can't read temporary file."
+#define MSGJPN049              "Failed to getting file list."
+#define MSGJPN050              "Find (Local)"
+#define MSGJPN051              "Find (Host)"
+#define MSGJPN052              "Dele: %s"
+#define MSGJPN053              "Make: %s"
+#define MSGJPN054              "Tran: %s"
+#define MSGJPN055              "Dele: %s"
+#define MSGJPN056              "Make: %s"
+#define MSGJPN057              "Tran: %s"
+#define MSGJPN058              "Transfer %d files."
+#define MSGJPN059              "No file to transmit."
+#define MSGJPN060              "Create %d folders."
+#define MSGJPN061              "No folder to create."
+#define MSGJPN062              "Delete %d files/folders."
+#define MSGJPN063              "No file/folder to delete."
+#define MSGJPN064              "Upload as"
+#define MSGJPN065              "Download as"
+#define MSGJPN066              "Delete (Local)"
+#define MSGJPN067              "Delete (Host)"
+#define MSGJPN068              "Rename (Local)"
+#define MSGJPN069              "Rename (Host)"
+#define MSGJPN070              "New Filder (Local)"
+#define MSGJPN071              "New Folder (Host)"
+#define MSGJPN072              "Change Current Folder (Local)"
+#define MSGJPN073              "Change Current Folder (Host)"
+#define MSGJPN074              "Calculate local file size."
+#define MSGJPN075              "Calculate host file size."
+#define MSGJPN076              "Local file size"
+#define MSGJPN077              "Host file size"
+#define MSGJPN078              "New Folder"
+#define MSGJPN079              "New Folder"
+#define MSGJPN080              "Delete Folder"
+#define MSGJPN081              "Delete File"
+#define MSGJPN082              "New Folder"
+#define MSGJPN083              "Delete Folder"
+#define MSGJPN084              "Delete File"
+#define MSGJPN085              "Can't download named %s."
+#define MSGJPN086              "Download"
+#define MSGJPN087              "File List"
+#define MSGJPN088              "Skip"
+#define MSGJPN089              "Skip file %s."
+#define MSGJPN090              "Command not accepted."
+#define MSGJPN091              "for download "
+#define MSGJPN092              "Command not accepted."
+#define MSGJPN093              "Can't get address."
+#define MSGJPN094              "Time out error."
+#define MSGJPN095              "Can't create file %s."
+#define MSGJPN096              "Disk full"
+#define MSGJPN097              "Cancel to getting file list"
+#define MSGJPN098              "File List"
+#define MSGJPN099              "Download cancelled. (%d Sec. %d B/S)."
+#define MSGJPN100              "Download cancelled."
+#define MSGJPN101              "Download file list successful. (%d Bytes)"
+#define MSGJPN102              "Download successful. (%d Sec. %d B/S)."
+#define MSGJPN103              "Download successful. (%d Bytes)"
+#define MSGJPN104              "Upload"
+#define MSGJPN105              "Can't read file %s."
+#define MSGJPN106              "Skip"
+#define MSGJPN107              "File %s is skipped."
+#define MSGJPN108              "Command not accepted."
+#define MSGJPN109              "for upload "
+#define MSGJPN110              "Command not accepted."
+#define MSGJPN111              "Can't get address."
+#define MSGJPN112              "Can't open file %s."
+#define MSGJPN113              "Upload cancelled. (%d Sec. %d B/S)."
+#define MSGJPN114              "Upload cancelled."
+#define MSGJPN115              "Upload successful. (%d Sec. %d B/S)."
+#define MSGJPN116              "Upload successfil."
+#define MSGJPN117              "Finished"
+#define MSGJPN118              "Cancelled"
+#define MSGJPN119              "BINARY"
+#define MSGJPN120              "ASCII"
+#define MSGJPN121              "NONE"
+#define MSGJPN122              "JIS"
+#define MSGJPN123              "EUC"
+#define MSGJPN124              "Delete(Local)"
+#define MSGJPN125              "Delete(Host)"
+#define MSGJPN126              "WS_FTP.INI"
+#define MSGJPN127              "General"
+#define MSGJPN128              "Advanced"
+#define MSGJPN129              "Kanji Code"
+#define MSGJPN130              "Dialup"
+#define MSGJPN131              "Special"
+#define MSGJPN132              "Host Setting"
+#define MSGJPN133              "GMT%+02d:00"
+#define MSGJPN134              "None"
+#define MSGJPN135              "Auto"
+#define MSGJPN136              "OTP MD4, S/KEY"
+#define MSGJPN137              "OTP MD5"
+#define MSGJPN138              "OTP SHA-1"
+#define MSGJPN139              "Auto"
+#define MSGJPN140              "ACOS"
+#define MSGJPN141              "VAX VMS"
+#define MSGJPN142              "IRMX"
+#define MSGJPN143              "ACOS-4"
+#define MSGJPN144              "Stratus"
+#define MSGJPN145              "Can't change folder."
+#define MSGJPN146              "Can't create folder."
+#define MSGJPN147              "Can't delete folder."
+#define MSGJPN148              "Can't delete folder."
+#define MSGJPN149              "Can't delete file."
+#define MSGJPN150              "Can't delete file."
+#define MSGJPN151              "Can't rename file."
+#define MSGJPN152              "Temporary folder '%s' not found."
+#define MSGJPN153              "Folder '%s' is used."
+#define MSGJPN154              "Connect"
+#define MSGJPN155              "Quick Connect"
+#define MSGJPN156              "Disconnect"
+#define MSGJPN157              "Download"
+#define MSGJPN158              "Upload"
+#define MSGJPN159              "Mirror Upload"
+#define MSGJPN160              "Delete"
+#define MSGJPN161              "Rename"
+#define MSGJPN162              "New Folder"
+#define MSGJPN163              "Parent Folder"
+#define MSGJPN164              "Change Folder"
+#define MSGJPN165              "ASCII Mode"
+#define MSGJPN166              "BINARY Mode"
+#define MSGJPN167              "Filename Depend"
+#define MSGJPN168              "Refresh File List"
+#define MSGJPN169              "List"
+#define MSGJPN170              "Details"
+#define MSGJPN171              "EUC Kanji Code"
+#define MSGJPN172              "JIS Kanji Code"
+#define MSGJPN173              "NO Kanji Conversin"
+#define MSGJPN174              "Hankaku-Kana to Zenkaku"
+#define MSGJPN175              "Sync. folder movement"
+#define MSGJPN176              "Stop"
+#define MSGJPN177              "Host profile '%s' not found."
+#define MSGJPN178              "Host profile not specified."
+#define MSGJPN179              "Host name is only used as an alternative to profile name."
+#define MSGJPN180              "Wrong Option '%s'."
+#define MSGJPN181              "Host name is only used as an alternative to profile name."
+#define MSGJPN182              "Failed to open viewer. (ERROR=%d)"
+#define MSGJPN183              "JRE32.DLL none"
+#define MSGJPN184              "JRE32.DLL Ver %x.%x (C) Kazuo Yamada-san"
+#define MSGJPN185              "Select folder."
+#define MSGJPN186              "User"
+#define MSGJPN187              "Transfer1"
+#define MSGJPN188              "Transfer2"
+#define MSGJPN189              "Transfer3"
+#define MSGJPN190              "Mirroring"
+#define MSGJPN191              "Operation"
+#define MSGJPN192              "View"
+#define MSGJPN193              "Connecting"
+#define MSGJPN194              "Firewall"
+#define MSGJPN195              "Tool"
+#define MSGJPN196              "Sounds"
+#define MSGJPN197              "Other"
+#define MSGJPN198              "Option"
+#define MSGJPN199              "Filename"
+#define MSGJPN200              "Filename"
+#define MSGJPN201              "Attr"
+#define MSGJPN202              "Filename"
+#define MSGJPN203              "Filename"
+#define MSGJPN204              "FW user-> FW password-> SITE host"
+#define MSGJPN205              "FW user-> FW password-> USER user@host"
+#define MSGJPN206              "FW user-> FW password"
+#define MSGJPN207              "USER user@host"
+#define MSGJPN208              "OPEN host"
+#define MSGJPN209              "SOCKS4"
+#define MSGJPN210              "SOCKS5 (No certification)"
+#define MSGJPN211              "SOCKS5 (User, Password certification)"
+#define MSGJPN212              "None"
+#define MSGJPN213              "Auto"
+#define MSGJPN214              "OTP MD4,S/KEY"
+#define MSGJPN215              "OTP MD5"
+#define MSGJPN216              "OTP SHA-1"
+#define MSGJPN217              "Select viewer"
+#define MSGJPN218              "EXE file\0*.exe;*.com;*.bat\0All file(*.*)\0*\0"
+#define MSGJPN219              "Wave file"
+#define MSGJPN220              "Disconencting dialup."
+#define MSGJPN221              "Connecting dialup."
+#define MSGJPN222              "Can't use dialup. (RasDialDlg)"
+#define MSGJPN223              "Connecting to %s..."
+#define MSGJPN224              "Unknown error"
+#define MSGJPN225              "Dialup connection"
+#define MSGJPN226              "Open port..."
+#define MSGJPN227              "Port opened."
+#define MSGJPN228              "Dialing..."
+#define MSGJPN229              "Dialed."
+#define MSGJPN230              "All device connected."
+#define MSGJPN231              "Authenticating..."
+#define MSGJPN232              "Authenticate retry..."
+#define MSGJPN233              "Please change password."
+#define MSGJPN234              "Authenticated."
+#define MSGJPN235              "Connected"
+#define MSGJPN236              "Disconnected."
+#define MSGJPN237              "Connecting..."
+#define MSGJPN238              "Connecting to %s"
+#define MSGJPN239              "# Do not edit this file.\n"
+#define MSGJPN240              "Can't save to INI file"
+#define MSGJPN241              "Failed transmit cause of timeout"
+#define MSGJPN242              "Failed receive cause of timeout"
+#define MSGJPN243              "Failed receive cause of timeout"
+#define MSGJPN244              "Receive length error"
+#define MSGJPN245              "Local"
+#define MSGJPN246              "Host"
+#define MSGJPN247              "Selected: %d (%s)"
+#define MSGJPN248              "Local free: %s"
+#define MSGJPN249              "Files in queue: %d"
+#define MSGJPN250              "Receiving %s"
+#define MSGJPN251              "Err\81FSeed"
+#define MSGJPN252              "Err\81FSeed"
+#define MSGJPN253              "Err\81FSequence#"
+#define MSGJPN254              "MS Sans Serif"
+#define MSGJPN255              "&Upload"
+#define MSGJPN256              "U&pload As..."
+#define MSGJPN257              "Up&load All"
+#define MSGJPN258              "&Delete"
+#define MSGJPN259              "&Rename..."
+#define MSGJPN260              "&New Folder..."
+#define MSGJPN261              "&File Size..."
+#define MSGJPN262              "R&efresh File List"
+#define MSGJPN263              "&Download"
+#define MSGJPN264              "D&ownload As..."
+#define MSGJPN265              "Do&wnliad as File"
+#define MSGJPN266              "Dow&nload All"
+#define MSGJPN267              "De&lete..."
+#define MSGJPN268              "&Rename..."
+#define MSGJPN269              "&Change Permission..."
+#define MSGJPN270              "&New Folder..."
+#define MSGJPN271              "Copy &URL to Clipboard"
+#define MSGJPN272              "&File Size..."
+#define MSGJPN273              "R&efresh File List"
+#define MSGJPN274              "&Open"
+#define MSGJPN275              "Open in %s (&%d)"
+#define MSGJPN276              "WS_FTP.INI\0ws_ftp.ini\0All file(*.*)\0*\0"
+#define MSGJPN277              "Wave file\0*.wav\0All file\0*\0"
+#define MSGJPN278              "Reason : %s"
+#define MSGJPN279              "Can't get Listen Socket"
+#define MSGJPN280              "Can't get Data Socket"
+#define MSGJPN281              "Can't connect with PASV mode"
+#define MSGJPN282              "INI filename is not specified"
+#define MSGJPN283              "INI file : "
+#define MSGJPN284              "http://www2.biglobe.ne.jp/~sota/"
+#define MSGJPN285              "Failed to execute Registory Editor."
+#define MSGJPN286              "Save Settings"
+#define MSGJPN287              "Reg file\0*.reg\0All file\0*\0"
+#define MSGJPN288              "INI file\0*.ini\0All file\0*\0"
+#define MSGJPN289              "Agilent Logic analyzer"
+#define MSGJPN290              "Reg file\0*.reg\0INI file\0*.ini\0All files\0*\0"
+#define MSGJPN291              "Load Settings"
+#define MSGJPN292              "Restart FFFTP to take effect."
+#define MSGJPN293              "File must be *.reg or *.ini."
+#define MSGJPN294              "USER FW user:FW password@host"
+#define MSGJPN295              "ShibaSoku WL"
+#define MSGJPN296              "This is a read-only file. Remove the read-only attribute?"
+#define MSGJPN297              "%s is invalid path.\r\nFFFTP doesn't download this file."
+#define MSGJPN298              "Failed to initialize the OLE."
+#define MSGJPN299              "Master password is not specified in the command line"
+#define MSGJPN300              "Default master password is chosen.\r\nSet your own master password in command line to prevent sniff of malwares"
+#define MSGJPN301              "Master password is not for the current configuration. Configration will not be overwritten in this session."
+#define MSGJPN302              "Master password checker looks broken."
+#define MSGJPN303              "Master password has been changed."
+#define MSGJPN304              "Speecified master password is not correct.\r\nAre you sure you want to re-enter?\r\nNo memorized FTP password is available if you choose 'NO'"
+#define MSGJPN305              "Shift_JIS Kanji Code"
+#define MSGJPN306              "UTF-8 Kanji Code"
+#define MSGJPN307              "Shift_JIS Kanji Code (Local)"
+#define MSGJPN308              "EUC Kanji Code (Local)"
+#define MSGJPN309              "JIS Kanji Code (Local)"
+#define MSGJPN310              "UTF-8 Kanji Code (Local)"
index c98010e..9bd93dd 100644 (file)
-#define MSGJPN001              "\90Ú\91±\82ð\92\86\8e~\82µ\82Ü\82µ\82½."\r
-#define MSGJPN002              "\90Ú\91±\82ð\92\86\8e~\82µ\82Ü\82µ\82½."\r
-#define MSGJPN003              "\r\n\8dÄ\90Ú\91±\82µ\82Ü\82·.\r\n"\r
-#define MSGJPN004              "\90Ø\92f\82µ\82Ü\82µ\82½"\r
-#define MSGJPN005              "\90Ú\91±\82ª\90Ø\92f\82³\82ê\82Ü\82µ\82½."\r
-#define MSGJPN006              "FireWall\82É\83\8d\83O\83C\83\93\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN007              "\83z\83X\83g %s \82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN008              "\83\8d\83O\83C\83\93\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN009              "\90Ú\91±\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN010              "FireWall\82Ì\83z\83X\83g\96¼\82ª\90Ý\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ."\r
-#define MSGJPN011              "\83z\83X\83g\96¼\82ª\82 \82è\82Ü\82¹\82ñ."\r
-#define MSGJPN012              "MD5\82ð\8eg\97p\82µ\82Ü\82·."\r
-#define MSGJPN013              "SHA-1\82ð\8eg\97p\82µ\82Ü\82·."\r
-#define MSGJPN014              "MD4(S/KEY)\82ð\8eg\97p\82µ\82Ü\82·."\r
-#define MSGJPN015              "\83\8f\83\93\83^\83C\83\80\83p\83X\83\8f\81[\83h\82ª\8f\88\97\9d\82Å\82«\82Ü\82¹\82ñ"\r
-#define MSGJPN016              "\83z\83X\83g %s \82ð\92T\82µ\82Ä\82¢\82Ü\82·."\r
-#define MSGJPN017              "%s\83z\83X\83g %s (%s (%d)) \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·."\r
-#define MSGJPN018              "%s\83z\83X\83g %s (%d) \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·."\r
-#define MSGJPN019              "\83z\83X\83g %s \82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ."\r
-#define MSGJPN020              "%s\83z\83X\83g %s (%d) \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·."\r
-#define MSGJPN021              "SOCKS\83T\81[\83o %s \82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ."\r
-#define MSGJPN022              "SOCKS\83T\81[\83o %s (%d) \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·\81B"\r
-#define MSGJPN023              "SOCKS\83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ. (Err=%d)"\r
-#define MSGJPN024              "SOCKS\83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ. (Err=%d)"\r
-#define MSGJPN025              "\90Ú\91±\82µ\82Ü\82µ\82½."\r
-#define MSGJPN026              "\90Ú\91±\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN027              "\83\\83P\83b\83g\82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN028              "SOCKS\83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ. (Err=%d)"\r
-#define MSGJPN029              "SOCKS\83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ. (Err=%d)"\r
-#define MSGJPN030              "Listen\83\\83P\83b\83g\82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN031              "PORT\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."\r
-#define MSGJPN032              "\90Ú\91±\82Í\83\86\81[\83U\82É\82æ\82Á\82Ä\92\86\8e~\82³\82ê\82Ü\82µ\82½."\r
-#define MSGJPN033              "SOCKS\82Ì\83R\83}\83\93\83h\82ª\91\97\82ê\82Ü\82¹\82ñ\82Å\82µ\82½ (Cmd = %04X)"\r
-#define MSGJPN034              "SOCKS5\82Ì\83R\83}\83\93\83h\82É\91Î\82·\82é\83\8a\83v\83\89\83C\82ª\8eó\90M\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½"\r
-#define MSGJPN035              "SOCKS4\82Ì\83R\83}\83\93\83h\82É\91Î\82·\82é\83\8a\83v\83\89\83C\82ª\8eó\90M\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½"\r
-#define MSGJPN036              "SOCKS\83T\81[\83o\82Ì\94F\8fØ\95û\8e®\82ª\88Ù\82È\82è\82Ü\82·."\r
-#define MSGJPN037              "SOCKS\83T\81[\83o\82É\94F\8fØ\82³\82ê\82Ü\82¹\82ñ\82Å\82µ\82½."\r
-#define MSGJPN038              "\96¼\91O"\r
-#define MSGJPN039              "\93ú\95t"\r
-#define MSGJPN040              "\83T\83C\83Y"\r
-#define MSGJPN041              "\8eí\97Þ"\r
-#define MSGJPN042              "\96¼\91O"\r
-#define MSGJPN043              "\93ú\95t"\r
-#define MSGJPN044              "\83T\83C\83Y"\r
-#define MSGJPN045              "\8eí\97Þ"\r
-#define MSGJPN046              "\91®\90«"\r
-#define MSGJPN047              "\8f\8a\97L\8eÒ"\r
-#define MSGJPN048              "\83e\83\93\83|\83\89\83\8a\83t\83@\83C\83\8b\82ª\93Ç\82Ý\8fo\82¹\82Ü\82¹\82ñ."\r
-#define MSGJPN049              "\83t\83@\83C\83\8b\88ê\97\97\82Ì\8eæ\93¾\82É\8e¸\94s\82µ\82Ü\82µ\82½."\r
-#define MSGJPN050              "\8c\9f\8dõ\81i\83\8d\81[\83J\83\8b\81j"\r
-#define MSGJPN051              "\8c\9f\8dõ\81i\83z\83X\83g\81j"\r
-#define MSGJPN052              "\8dí\8f\9c\81F %s"\r
-#define MSGJPN053              "\8dì\90¬\81F %s"\r
-#define MSGJPN054              "\93]\91\97\81F %s"\r
-#define MSGJPN055              "\8dí\8f\9c\81F %s"\r
-#define MSGJPN056              "\8dì\90¬\81F %s"\r
-#define MSGJPN057              "\93]\91\97\81F %s"\r
-#define MSGJPN058              "%d\8cÂ\82Ì\83t\83@\83C\83\8b\82ð\93]\91\97\82µ\82Ü\82·."\r
-#define MSGJPN059              "\93]\91\97\82·\82é\83t\83@\83C\83\8b\82Í\82 \82è\82Ü\82¹\82ñ."\r
-#define MSGJPN060              "%d\8cÂ\82Ì\83t\83H\83\8b\83_\82ð\8dì\90¬\82µ\82Ü\82·."\r
-#define MSGJPN061              "\8dì\90¬\82·\82é\83t\83H\83\8b\83_\82Í\82 \82è\82Ü\82¹\82ñ."\r
-#define MSGJPN062              "%d\8cÂ\82Ì\83t\83@\83C\83\8b\81^\83t\83H\83\8b\83_\82ð\8dí\8f\9c\82µ\82Ü\82·."\r
-#define MSGJPN063              "\8dí\8f\9c\82·\82é\83t\83@\83C\83\8b\81^\83t\83H\83\8b\83_\82Í\82 \82è\82Ü\82¹\82ñ."\r
-#define MSGJPN064              "\96¼\91O\82ð\95Ï\8dX\82µ\82Ä\83A\83b\83v\83\8d\81[\83h"\r
-#define MSGJPN065              "\96¼\91O\82ð\95Ï\8dX\82µ\82Ä\83_\83E\83\93\83\8d\81[\83h"\r
-#define MSGJPN066              "\8dí\8f\9c\81i\83\8d\81[\83J\83\8b\81j"\r
-#define MSGJPN067              "\8dí\8f\9c\81i\83z\83X\83g\81j"\r
-#define MSGJPN068              "\96¼\91O\95Ï\8dX\81i\83\8d\81[\83J\83\8b\81j"\r
-#define MSGJPN069              "\96¼\91O\95Ï\8dX\81i\83z\83X\83g\81j"\r
-#define MSGJPN070              "\83t\83H\83\8b\83_\8dì\90¬\81i\83\8d\81[\83J\83\8b\81j"\r
-#define MSGJPN071              "\83t\83H\83\8b\83_\8dì\90¬\81i\83z\83X\83g\81j"\r
-#define MSGJPN072              "\83t\83H\83\8b\83_\95Ï\8dX\81i\83\8d\81[\83J\83\8b\81j"\r
-#define MSGJPN073              "\83t\83H\83\8b\83_\95Ï\8dX\81i\83z\83X\83g\81j"\r
-#define MSGJPN074              "\83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\97e\97Ê\82ð\8cv\8eZ\82µ\82Ü\82·\81B"\r
-#define MSGJPN075              "\83z\83X\83g\91¤\82Ì\83t\83@\83C\83\8b\97e\97Ê\82ð\8cv\8eZ\82µ\82Ü\82·\81B"\r
-#define MSGJPN076              "\83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\97e\97Ê"\r
-#define MSGJPN077              "\83z\83X\83g\91¤\82Ì\83t\83@\83C\83\8b\97e\97Ê"\r
-#define MSGJPN078              "\83t\83H\83\8b\83_\8dì\90¬"\r
-#define MSGJPN079              "\83t\83H\83\8b\83_\8dì\90¬"\r
-#define MSGJPN080              "\83t\83H\83\8b\83_\8dí\8f\9c"\r
-#define MSGJPN081              "\83t\83@\83C\83\8b\8dí\8f\9c"\r
-#define MSGJPN082              "\83t\83H\83\8b\83_\8dì\90¬"\r
-#define MSGJPN083              "\83t\83H\83\8b\83_\8dí\8f\9c"\r
-#define MSGJPN084              "\83t\83@\83C\83\8b\8dí\8f\9c"\r
-#define MSGJPN085              "%s\82Æ\82¢\82¤\96¼\91O\82Ì\83t\83@\83C\83\8b\82Í\83_\83E\83\93\83\8d\81[\83h\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN086              "\83_\83E\83\93\83\8d\81[\83h"\r
-#define MSGJPN087              "\83t\83@\83C\83\8b\88ê\97\97\8eæ\93¾"\r
-#define MSGJPN088              "\83X\83L\83b\83v"\r
-#define MSGJPN089              "\83t\83@\83C\83\8b %s \82Í\83X\83L\83b\83v\82µ\82Ü\82·."\r
-#define MSGJPN090              "\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."\r
-#define MSGJPN091              "\83_\83E\83\93\83\8d\81[\83h\82Ì\82½\82ß\82É"\r
-#define MSGJPN092              "\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."\r
-#define MSGJPN093              "\83A\83h\83\8c\83X\82ª\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN094              "\8eó\90M\82Í\83^\83C\83\80\83A\83E\83g\82Å\8e¸\94s\82µ\82Ü\82µ\82½."\r
-#define MSGJPN095              "\83t\83@\83C\83\8b %s \82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN096              "\83f\83B\83X\83N\82ª\82¢\82Á\82Ï\82¢\82Å\8f\91\82«\8d\9e\82ß\82Ü\82¹\82ñ."\r
-#define MSGJPN097              "\83t\83@\83C\83\8b\88ê\97\97\82Ì\8eæ\93¾\82ð\92\86\8e~\82µ\82Ü\82µ\82½."\r
-#define MSGJPN098              "\83t\83@\83C\83\8b\88ê\97\97"\r
-#define MSGJPN099              "\83_\83E\83\93\83\8d\81[\83h\82ð\92\86\8e~\82µ\82Ü\82µ\82½. (%d Sec. %d B/S)."\r
-#define MSGJPN100              "\83_\83E\83\93\83\8d\81[\83h\82ð\92\86\8e~\82µ\82Ü\82µ\82½."\r
-#define MSGJPN101              "\83t\83@\83C\83\8b\88ê\97\97\82Ì\8eæ\93¾\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½. (%d Bytes)"\r
-#define MSGJPN102              "\83_\83E\83\93\83\8d\81[\83h\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½. (%d Sec. %d B/S)."\r
-#define MSGJPN103              "\83_\83E\83\93\83\8d\81[\83h\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½. (%d Bytes)"\r
-#define MSGJPN104              "\83A\83b\83v\83\8d\81[\83h"\r
-#define MSGJPN105              "\83t\83@\83C\83\8b %s \82ª\93Ç\82Ý\8fo\82¹\82Ü\82¹\82ñ."\r
-#define MSGJPN106              "\83X\83L\83b\83v"\r
-#define MSGJPN107              "\83t\83@\83C\83\8b %s \82Í\83X\83L\83b\83v\82µ\82Ü\82·."\r
-#define MSGJPN108              "\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."\r
-#define MSGJPN109              "\83A\83b\83v\83\8d\81[\83h\82Ì\82½\82ß\82É"\r
-#define MSGJPN110              "\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."\r
-#define MSGJPN111              "\83A\83h\83\8c\83X\82ª\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN112              "\83t\83@\83C\83\8b %s \82ª\83I\81[\83v\83\93\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN113              "\83A\83b\83v\83\8d\81[\83h\82ð\92\86\8e~\82µ\82Ü\82µ\82½. (%d Sec. %d B/S)."\r
-#define MSGJPN114              "\83A\83b\83v\83\8d\81[\83h\82ð\92\86\8e~\82µ\82Ü\82µ\82½."\r
-#define MSGJPN115              "\83A\83b\83v\83\8d\81[\83h\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½. (%d Sec. %d B/S)."\r
-#define MSGJPN116              "\83A\83b\83v\83\8d\81[\83h\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½."\r
-#define MSGJPN117              "\8a®\97¹"\r
-#define MSGJPN118              "\92\86\8e~"\r
-#define MSGJPN119              "\83o\83C\83i\83\8a"\r
-#define MSGJPN120              "\83A\83X\83L\81["\r
-#define MSGJPN121              "\96³\95Ï\8a·"\r
+#define MSGJPN001              "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x82\x92\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN002              "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x82\x92\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN003              "\r\n\xE5\x86\x8D\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99.\r\n"\r
+#define MSGJPN004              "\xE5\x88\x87\xE6\x96\xAD\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN005              "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x8C\xE5\x88\x87\xE6\x96\xAD\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN006              "FireWall\xE3\x81\xAB\xE3\x83\xAD\xE3\x82\xB0\xE3\x82\xA4\xE3\x83\xB3\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN007              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN008              "\xE3\x83\xAD\xE3\x82\xB0\xE3\x82\xA4\xE3\x83\xB3\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN009              "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN010              "FireWall\xE3\x81\xAE\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D\xE3\x81\x8C\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN011              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D\xE3\x81\x8C\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN012              "MD5\xE3\x82\x92\xE4\xBD\xBF\xE7\x94\xA8\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN013              "SHA-1\xE3\x82\x92\xE4\xBD\xBF\xE7\x94\xA8\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN014              "MD4(S/KEY)\xE3\x82\x92\xE4\xBD\xBF\xE7\x94\xA8\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN015              "\xE3\x83\xAF\xE3\x83\xB3\xE3\x82\xBF\xE3\x82\xA4\xE3\x83\xA0\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE5\x87\xA6\xE7\x90\x86\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
+#define MSGJPN016              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s \xE3\x82\x92\xE6\x8E\xA2\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN017              "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%s (%d)) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN018              "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN019              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s \xE3\x81\x8C\xE8\xA6\x8B\xE3\x81\xA4\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN020              "%s\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88 %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN021              "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90 %s \xE3\x81\x8C\xE8\xA6\x8B\xE3\x81\xA4\xE3\x81\x8B\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN022              "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90 %s (%d) \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99\xE3\x80\x82"\r
+#define MSGJPN023              "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d)"\r
+#define MSGJPN024              "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d)"\r
+#define MSGJPN025              "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN026              "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN027              "\xE3\x82\xBD\xE3\x82\xB1\xE3\x83\x83\xE3\x83\x88\xE3\x81\x8C\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN028              "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d)"\r
+#define MSGJPN029              "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93. (Err=%d)"\r
+#define MSGJPN030              "Listen\xE3\x82\xBD\xE3\x82\xB1\xE3\x83\x83\xE3\x83\x88\xE3\x81\x8C\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN031              "PORT\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\x8C\xE5\x8F\x97\xE3\x81\x91\xE4\xBB\x98\xE3\x81\x91\xE3\x82\x89\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN032              "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xAF\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE3\x81\xAB\xE3\x82\x88\xE3\x81\xA3\xE3\x81\xA6\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN033              "SOCKS\xE3\x81\xAE\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\x8C\xE9\x80\x81\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F (Cmd = %04X)"\r
+#define MSGJPN034              "SOCKS5\xE3\x81\xAE\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\xAB\xE5\xAF\xBE\xE3\x81\x99\xE3\x82\x8B\xE3\x83\xAA\xE3\x83\x97\xE3\x83\xA9\xE3\x82\xA4\xE3\x81\x8C\xE5\x8F\x97\xE4\xBF\xA1\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN035              "SOCKS4\xE3\x81\xAE\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\xAB\xE5\xAF\xBE\xE3\x81\x99\xE3\x82\x8B\xE3\x83\xAA\xE3\x83\x97\xE3\x83\xA9\xE3\x82\xA4\xE3\x81\x8C\xE5\x8F\x97\xE4\xBF\xA1\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN036              "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x81\xAE\xE8\xAA\x8D\xE8\xA8\xBC\xE6\x96\xB9\xE5\xBC\x8F\xE3\x81\x8C\xE7\x95\xB0\xE3\x81\xAA\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN037              "SOCKS\xE3\x82\xB5\xE3\x83\xBC\xE3\x83\x90\xE3\x81\xAB\xE8\xAA\x8D\xE8\xA8\xBC\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN038              "\xE5\x90\x8D\xE5\x89\x8D"\r
+#define MSGJPN039              "\xE6\x97\xA5\xE4\xBB\x98"\r
+#define MSGJPN040              "\xE3\x82\xB5\xE3\x82\xA4\xE3\x82\xBA"\r
+#define MSGJPN041              "\xE7\xA8\xAE\xE9\xA1\x9E"\r
+#define MSGJPN042              "\xE5\x90\x8D\xE5\x89\x8D"\r
+#define MSGJPN043              "\xE6\x97\xA5\xE4\xBB\x98"\r
+#define MSGJPN044              "\xE3\x82\xB5\xE3\x82\xA4\xE3\x82\xBA"\r
+#define MSGJPN045              "\xE7\xA8\xAE\xE9\xA1\x9E"\r
+#define MSGJPN046              "\xE5\xB1\x9E\xE6\x80\xA7"\r
+#define MSGJPN047              "\xE6\x89\x80\xE6\x9C\x89\xE8\x80\x85"\r
+#define MSGJPN048              "\xE3\x83\x86\xE3\x83\xB3\xE3\x83\x9D\xE3\x83\xA9\xE3\x83\xAA\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\x8C\xE8\xAA\xAD\xE3\x81\xBF\xE5\x87\xBA\xE3\x81\x9B\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN049              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE4\xB8\x80\xE8\xA6\xA7\xE3\x81\xAE\xE5\x8F\x96\xE5\xBE\x97\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN050              "\xE6\xA4\x9C\xE7\xB4\xA2\xEF\xBC\x88\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xEF\xBC\x89"\r
+#define MSGJPN051              "\xE6\xA4\x9C\xE7\xB4\xA2\xEF\xBC\x88\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xEF\xBC\x89"\r
+#define MSGJPN052              "\xE5\x89\x8A\xE9\x99\xA4\xEF\xBC\x9A %s"\r
+#define MSGJPN053              "\xE4\xBD\x9C\xE6\x88\x90\xEF\xBC\x9A %s"\r
+#define MSGJPN054              "\xE8\xBB\xA2\xE9\x80\x81\xEF\xBC\x9A %s"\r
+#define MSGJPN055              "\xE5\x89\x8A\xE9\x99\xA4\xEF\xBC\x9A %s"\r
+#define MSGJPN056              "\xE4\xBD\x9C\xE6\x88\x90\xEF\xBC\x9A %s"\r
+#define MSGJPN057              "\xE8\xBB\xA2\xE9\x80\x81\xEF\xBC\x9A %s"\r
+#define MSGJPN058              "%d\xE5\x80\x8B\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x82\x92\xE8\xBB\xA2\xE9\x80\x81\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN059              "\xE8\xBB\xA2\xE9\x80\x81\xE3\x81\x99\xE3\x82\x8B\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN060              "%d\xE5\x80\x8B\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x82\x92\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN061              "\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\x99\xE3\x82\x8B\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x81\xAF\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN062              "%d\xE5\x80\x8B\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xEF\xBC\x8F\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x82\x92\xE5\x89\x8A\xE9\x99\xA4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN063              "\xE5\x89\x8A\xE9\x99\xA4\xE3\x81\x99\xE3\x82\x8B\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xEF\xBC\x8F\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x81\xAF\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN064              "\xE5\x90\x8D\xE5\x89\x8D\xE3\x82\x92\xE5\xA4\x89\xE6\x9B\xB4\xE3\x81\x97\xE3\x81\xA6\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN065              "\xE5\x90\x8D\xE5\x89\x8D\xE3\x82\x92\xE5\xA4\x89\xE6\x9B\xB4\xE3\x81\x97\xE3\x81\xA6\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN066              "\xE5\x89\x8A\xE9\x99\xA4\xEF\xBC\x88\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xEF\xBC\x89"\r
+#define MSGJPN067              "\xE5\x89\x8A\xE9\x99\xA4\xEF\xBC\x88\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xEF\xBC\x89"\r
+#define MSGJPN068              "\xE5\x90\x8D\xE5\x89\x8D\xE5\xA4\x89\xE6\x9B\xB4\xEF\xBC\x88\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xEF\xBC\x89"\r
+#define MSGJPN069              "\xE5\x90\x8D\xE5\x89\x8D\xE5\xA4\x89\xE6\x9B\xB4\xEF\xBC\x88\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xEF\xBC\x89"\r
+#define MSGJPN070              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90\xEF\xBC\x88\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xEF\xBC\x89"\r
+#define MSGJPN071              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90\xEF\xBC\x88\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xEF\xBC\x89"\r
+#define MSGJPN072              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE5\xA4\x89\xE6\x9B\xB4\xEF\xBC\x88\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xEF\xBC\x89"\r
+#define MSGJPN073              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE5\xA4\x89\xE6\x9B\xB4\xEF\xBC\x88\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xEF\xBC\x89"\r
+#define MSGJPN074              "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F\xE3\x82\x92\xE8\xA8\x88\xE7\xAE\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x80\x82"\r
+#define MSGJPN075              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F\xE3\x82\x92\xE8\xA8\x88\xE7\xAE\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x80\x82"\r
+#define MSGJPN076              "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F"\r
+#define MSGJPN077              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x81\xB4\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F"\r
+#define MSGJPN078              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90"\r
+#define MSGJPN079              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90"\r
+#define MSGJPN080              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE5\x89\x8A\xE9\x99\xA4"\r
+#define MSGJPN081              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x89\x8A\xE9\x99\xA4"\r
+#define MSGJPN082              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90"\r
+#define MSGJPN083              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE5\x89\x8A\xE9\x99\xA4"\r
+#define MSGJPN084              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x89\x8A\xE9\x99\xA4"\r
+#define MSGJPN085              "%s\xE3\x81\xA8\xE3\x81\x84\xE3\x81\x86\xE5\x90\x8D\xE5\x89\x8D\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN086              "\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN087              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE4\xB8\x80\xE8\xA6\xA7\xE5\x8F\x96\xE5\xBE\x97"\r
+#define MSGJPN088              "\xE3\x82\xB9\xE3\x82\xAD\xE3\x83\x83\xE3\x83\x97"\r
+#define MSGJPN089              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB %s \xE3\x81\xAF\xE3\x82\xB9\xE3\x82\xAD\xE3\x83\x83\xE3\x83\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN090              "\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\x8C\xE5\x8F\x97\xE3\x81\x91\xE4\xBB\x98\xE3\x81\x91\xE3\x82\x89\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN091              "\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAE\xE3\x81\x9F\xE3\x82\x81\xE3\x81\xAB"\r
+#define MSGJPN092              "\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\x8C\xE5\x8F\x97\xE3\x81\x91\xE4\xBB\x98\xE3\x81\x91\xE3\x82\x89\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN093              "\xE3\x82\xA2\xE3\x83\x89\xE3\x83\xAC\xE3\x82\xB9\xE3\x81\x8C\xE5\x8F\x96\xE5\xBE\x97\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN094              "\xE5\x8F\x97\xE4\xBF\xA1\xE3\x81\xAF\xE3\x82\xBF\xE3\x82\xA4\xE3\x83\xA0\xE3\x82\xA2\xE3\x82\xA6\xE3\x83\x88\xE3\x81\xA7\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN095              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB %s \xE3\x81\x8C\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN096              "\xE3\x83\x87\xE3\x82\xA3\xE3\x82\xB9\xE3\x82\xAF\xE3\x81\x8C\xE3\x81\x84\xE3\x81\xA3\xE3\x81\xB1\xE3\x81\x84\xE3\x81\xA7\xE6\x9B\xB8\xE3\x81\x8D\xE8\xBE\xBC\xE3\x82\x81\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN097              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE4\xB8\x80\xE8\xA6\xA7\xE3\x81\xAE\xE5\x8F\x96\xE5\xBE\x97\xE3\x82\x92\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN098              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE4\xB8\x80\xE8\xA6\xA7"\r
+#define MSGJPN099              "\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F. (%d Sec. %d B/S)."\r
+#define MSGJPN100              "\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN101              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE4\xB8\x80\xE8\xA6\xA7\xE3\x81\xAE\xE5\x8F\x96\xE5\xBE\x97\xE3\x81\xAF\xE6\xAD\xA3\xE5\xB8\xB8\xE7\xB5\x82\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F. (%d Bytes)"\r
+#define MSGJPN102              "\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\xE6\xAD\xA3\xE5\xB8\xB8\xE7\xB5\x82\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F. (%d Sec. %d B/S)."\r
+#define MSGJPN103              "\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\xE6\xAD\xA3\xE5\xB8\xB8\xE7\xB5\x82\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F. (%d Bytes)"\r
+#define MSGJPN104              "\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN105              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB %s \xE3\x81\x8C\xE8\xAA\xAD\xE3\x81\xBF\xE5\x87\xBA\xE3\x81\x9B\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN106              "\xE3\x82\xB9\xE3\x82\xAD\xE3\x83\x83\xE3\x83\x97"\r
+#define MSGJPN107              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB %s \xE3\x81\xAF\xE3\x82\xB9\xE3\x82\xAD\xE3\x83\x83\xE3\x83\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN108              "\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\x8C\xE5\x8F\x97\xE3\x81\x91\xE4\xBB\x98\xE3\x81\x91\xE3\x82\x89\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN109              "\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAE\xE3\x81\x9F\xE3\x82\x81\xE3\x81\xAB"\r
+#define MSGJPN110              "\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x81\x8C\xE5\x8F\x97\xE3\x81\x91\xE4\xBB\x98\xE3\x81\x91\xE3\x82\x89\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN111              "\xE3\x82\xA2\xE3\x83\x89\xE3\x83\xAC\xE3\x82\xB9\xE3\x81\x8C\xE5\x8F\x96\xE5\xBE\x97\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN112              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB %s \xE3\x81\x8C\xE3\x82\xAA\xE3\x83\xBC\xE3\x83\x97\xE3\x83\xB3\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN113              "\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F. (%d Sec. %d B/S)."\r
+#define MSGJPN114              "\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE4\xB8\xAD\xE6\xAD\xA2\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN115              "\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\xE6\xAD\xA3\xE5\xB8\xB8\xE7\xB5\x82\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F. (%d Sec. %d B/S)."\r
+#define MSGJPN116              "\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\xE6\xAD\xA3\xE5\xB8\xB8\xE7\xB5\x82\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN117              "\xE5\xAE\x8C\xE4\xBA\x86"\r
+#define MSGJPN118              "\xE4\xB8\xAD\xE6\xAD\xA2"\r
+#define MSGJPN119              "\xE3\x83\x90\xE3\x82\xA4\xE3\x83\x8A\xE3\x83\xAA"\r
+#define MSGJPN120              "\xE3\x82\xA2\xE3\x82\xB9\xE3\x82\xAD\xE3\x83\xBC"\r
+#define MSGJPN121              "\xE7\x84\xA1\xE5\xA4\x89\xE6\x8F\x9B"\r
 #define MSGJPN122              "JIS"\r
 #define MSGJPN123              "EUC"\r
-#define MSGJPN124              "\8dí\8f\9c\81i\83\8d\81[\83J\83\8b\81j"\r
-#define MSGJPN125              "\8dí\8f\9c\81i\83z\83X\83g\81j"\r
-#define MSGJPN126              "WS_FTP.INI\83t\83@\83C\83\8b"\r
-#define MSGJPN127              "\8aî\96{"\r
-#define MSGJPN128              "\8ag\92£"\r
-#define MSGJPN129              "\95\8e\9a\83R\81[\83h"\r
-#define MSGJPN130              "\83_\83C\83A\83\8b\83A\83b\83v"\r
-#define MSGJPN131              "\8d\82\93x"\r
-#define MSGJPN132              "\83z\83X\83g\82Ì\90Ý\92è"\r
-#define MSGJPN133              "GMT%+02d:00 (\93ú\96{)"\r
-#define MSGJPN134              "\8eg\97p\82µ\82È\82¢"\r
-#define MSGJPN135              "\8e©\93®\94F\8e¯"\r
+#define MSGJPN124              "\xE5\x89\x8A\xE9\x99\xA4\xEF\xBC\x88\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xEF\xBC\x89"\r
+#define MSGJPN125              "\xE5\x89\x8A\xE9\x99\xA4\xEF\xBC\x88\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xEF\xBC\x89"\r
+#define MSGJPN126              "WS_FTP.INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB"\r
+#define MSGJPN127              "\xE5\x9F\xBA\xE6\x9C\xAC"\r
+#define MSGJPN128              "\xE6\x8B\xA1\xE5\xBC\xB5"\r
+#define MSGJPN129              "\xE6\x96\x87\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN130              "\xE3\x83\x80\xE3\x82\xA4\xE3\x82\xA2\xE3\x83\xAB\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97"\r
+#define MSGJPN131              "\xE9\xAB\x98\xE5\xBA\xA6"\r
+#define MSGJPN132              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE8\xA8\xAD\xE5\xAE\x9A"\r
+#define MSGJPN133              "GMT%+02d:00 (\xE6\x97\xA5\xE6\x9C\xAC)"\r
+#define MSGJPN134              "\xE4\xBD\xBF\xE7\x94\xA8\xE3\x81\x97\xE3\x81\xAA\xE3\x81\x84"\r
+#define MSGJPN135              "\xE8\x87\xAA\xE5\x8B\x95\xE8\xAA\x8D\xE8\xAD\x98"\r
 #define MSGJPN136              "OTP MD4, S/KEY"\r
 #define MSGJPN137              "OTP MD5"\r
 #define MSGJPN138              "OTP SHA-1"\r
-#define MSGJPN139              "\8e©\93®\94F\8e¯"\r
+#define MSGJPN139              "\xE8\x87\xAA\xE5\x8B\x95\xE8\xAA\x8D\xE8\xAD\x98"\r
 #define MSGJPN140              "ACOS"\r
 #define MSGJPN141              "VAX VMS"\r
 #define MSGJPN142              "IRMX"\r
 #define MSGJPN143              "ACOS-4"\r
 #define MSGJPN144              "Stratus"\r
-#define MSGJPN145              "\83t\83H\83\8b\83_\82ð\95Ï\8dX\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN146              "\83t\83H\83\8b\83_\82ð\8dì\90¬\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN147              "\83t\83H\83\8b\83_\82ð\8dí\8f\9c\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN148              "\83t\83H\83\8b\83_\82ð\8dí\8f\9c\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN149              "\83t\83@\83C\83\8b\82ð\8dí\8f\9c\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN150              "\83t\83@\83C\83\8b\82ð\8dí\8f\9c\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN151              "\83t\83@\83C\83\8b\96¼\95Ï\8dX\82ª\82Å\82«\82Ü\82¹\82ñ."\r
-#define MSGJPN152              "\83e\83\93\83|\83\89\83\8a\83t\83H\83\8b\83_\81u%s\81v\82ª\82 \82è\82Ü\82¹\82ñ"\r
-#define MSGJPN153              "\83t\83H\83\8b\83_\81u%s\81v\82ð\8eg\97p\82µ\82Ü\82·"\r
-#define MSGJPN154              "\90Ú\91±"\r
-#define MSGJPN155              "\83N\83C\83b\83N\90Ú\91±"\r
-#define MSGJPN156              "\90Ø\92f"\r
-#define MSGJPN157              "\83_\83E\83\93\83\8d\81[\83h"\r
-#define MSGJPN158              "\83A\83b\83v\83\8d\81[\83h"\r
-#define MSGJPN159              "\83~\83\89\81[\83\8a\83\93\83O\83A\83b\83v\83\8d\81[\83h"\r
-#define MSGJPN160              "\8dí\8f\9c"\r
-#define MSGJPN161              "\96¼\91O\95Ï\8dX"\r
-#define MSGJPN162              "\83t\83H\83\8b\83_\8dì\90¬"\r
-#define MSGJPN163              "\88ê\82Â\8fã\82Ì\83t\83H\83\8b\83_\82Ö"\r
-#define MSGJPN164              "\83t\83H\83\8b\83_\82Ì\88Ú\93®"\r
-#define MSGJPN165              "\83A\83X\83L\81[\93]\91\97\83\82\81[\83h"\r
-#define MSGJPN166              "\83o\83C\83i\83\8a\93]\91\97\83\82\81[\83h"\r
-#define MSGJPN167              "\83t\83@\83C\83\8b\96¼\82Å\93]\91\97\83\82\81[\83h\90Ø\91Ö\82¦"\r
-#define MSGJPN168              "\95\\8e¦\82ð\8dX\90V"\r
-#define MSGJPN169              "\88ê\97\97"\r
-#define MSGJPN170              "\8fÚ\8d×"\r
-#define MSGJPN171              "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍEUC"\r
-#define MSGJPN172              "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍJIS"\r
-#define MSGJPN173              "\8a¿\8e\9a\83R\81[\83h\82Ì\95Ï\8a·\82È\82µ"\r
-#define MSGJPN174              "\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·"\r
-#define MSGJPN175              "\83t\83H\83\8b\83_\93¯\8e\9e\88Ú\93®"\r
-#define MSGJPN176              "\8eó\90M\92\86\8e~"\r
-#define MSGJPN177              "\90Ý\92è\96¼\81u%s\81v\82Í\82 \82è\82Ü\82¹\82ñ."\r
-#define MSGJPN178              "\90Ý\92è\96¼\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ."\r
-#define MSGJPN179              "\83z\83X\83g\96¼\82Æ\90Ý\92è\96¼\82Ì\97¼\95û\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82·."\r
-#define MSGJPN180              "\83I\83v\83V\83\87\83\93\81u%s\81v\82ª\8aÔ\88á\82Á\82Ä\82¢\82Ü\82·."\r
-#define MSGJPN181              "\83z\83X\83g\96¼\82Æ\90Ý\92è\96¼\82Ì\97¼\95û\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82·."\r
-#define MSGJPN182              "\83r\83\85\81[\83\8f\82Ì\8bN\93®\82É\8e¸\94s\82µ\82Ü\82µ\82½. (ERROR=%d)"\r
-#define MSGJPN183              "JRE32.DLL \96³\82µ"\r
-#define MSGJPN184              "JRE32.DLL Ver %x.%x (C) \8eR\93c\98a\95v\82³\82ñ"\r
-#define MSGJPN185              "\83t\83H\83\8b\83_\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢"\r
-#define MSGJPN186              "\83\86\81[\83U"\r
-#define MSGJPN187              "\93]\91\97\82P"\r
-#define MSGJPN188              "\93]\91\97\82Q"\r
-#define MSGJPN189              "\93]\91\97\82R"\r
-#define MSGJPN190              "\83~\83\89\81[\83\8a\83\93\83O"\r
-#define MSGJPN191              "\91\80\8dì"\r
-#define MSGJPN192              "\95\\8e¦"\r
-#define MSGJPN193              "\90Ú\91±/\90Ø\92f"\r
+#define MSGJPN145              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x82\x92\xE5\xA4\x89\xE6\x9B\xB4\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN146              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x82\x92\xE4\xBD\x9C\xE6\x88\x90\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN147              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x82\x92\xE5\x89\x8A\xE9\x99\xA4\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN148              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x82\x92\xE5\x89\x8A\xE9\x99\xA4\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN149              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x82\x92\xE5\x89\x8A\xE9\x99\xA4\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN150              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x82\x92\xE5\x89\x8A\xE9\x99\xA4\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN151              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE5\xA4\x89\xE6\x9B\xB4\xE3\x81\x8C\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN152              "\xE3\x83\x86\xE3\x83\xB3\xE3\x83\x9D\xE3\x83\xA9\xE3\x83\xAA\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x80\x8C%s\xE3\x80\x8D\xE3\x81\x8C\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
+#define MSGJPN153              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x80\x8C%s\xE3\x80\x8D\xE3\x82\x92\xE4\xBD\xBF\xE7\x94\xA8\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99"\r
+#define MSGJPN154              "\xE6\x8E\xA5\xE7\xB6\x9A"\r
+#define MSGJPN155              "\xE3\x82\xAF\xE3\x82\xA4\xE3\x83\x83\xE3\x82\xAF\xE6\x8E\xA5\xE7\xB6\x9A"\r
+#define MSGJPN156              "\xE5\x88\x87\xE6\x96\xAD"\r
+#define MSGJPN157              "\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN158              "\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN159              "\xE3\x83\x9F\xE3\x83\xA9\xE3\x83\xBC\xE3\x83\xAA\xE3\x83\xB3\xE3\x82\xB0\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN160              "\xE5\x89\x8A\xE9\x99\xA4"\r
+#define MSGJPN161              "\xE5\x90\x8D\xE5\x89\x8D\xE5\xA4\x89\xE6\x9B\xB4"\r
+#define MSGJPN162              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90"\r
+#define MSGJPN163              "\xE4\xB8\x80\xE3\x81\xA4\xE4\xB8\x8A\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x81\xB8"\r
+#define MSGJPN164              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x81\xAE\xE7\xA7\xBB\xE5\x8B\x95"\r
+#define MSGJPN165              "\xE3\x82\xA2\xE3\x82\xB9\xE3\x82\xAD\xE3\x83\xBC\xE8\xBB\xA2\xE9\x80\x81\xE3\x83\xA2\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN166              "\xE3\x83\x90\xE3\x82\xA4\xE3\x83\x8A\xE3\x83\xAA\xE8\xBB\xA2\xE9\x80\x81\xE3\x83\xA2\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN167              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\xA7\xE8\xBB\xA2\xE9\x80\x81\xE3\x83\xA2\xE3\x83\xBC\xE3\x83\x89\xE5\x88\x87\xE6\x9B\xBF\xE3\x81\x88"\r
+#define MSGJPN168              "\xE8\xA1\xA8\xE7\xA4\xBA\xE3\x82\x92\xE6\x9B\xB4\xE6\x96\xB0"\r
+#define MSGJPN169              "\xE4\xB8\x80\xE8\xA6\xA7"\r
+#define MSGJPN170              "\xE8\xA9\xB3\xE7\xB4\xB0"\r
+#define MSGJPN171              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\x45UC"\r
+#define MSGJPN172              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFJIS"\r
+#define MSGJPN173              "\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAE\xE5\xA4\x89\xE6\x8F\x9B\xE3\x81\xAA\xE3\x81\x97"\r
+#define MSGJPN174              "\xE5\x8D\x8A\xE8\xA7\x92\xE3\x82\xAB\xE3\x83\x8A\xE3\x82\x92\xE5\x85\xA8\xE8\xA7\x92\xE3\x81\xAB\xE5\xA4\x89\xE6\x8F\x9B"\r
+#define MSGJPN175              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE5\x90\x8C\xE6\x99\x82\xE7\xA7\xBB\xE5\x8B\x95"\r
+#define MSGJPN176              "\xE5\x8F\x97\xE4\xBF\xA1\xE4\xB8\xAD\xE6\xAD\xA2"\r
+#define MSGJPN177              "\xE8\xA8\xAD\xE5\xAE\x9A\xE5\x90\x8D\xE3\x80\x8C%s\xE3\x80\x8D\xE3\x81\xAF\xE3\x81\x82\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN178              "\xE8\xA8\xAD\xE5\xAE\x9A\xE5\x90\x8D\xE3\x81\x8C\xE6\x8C\x87\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93."\r
+#define MSGJPN179              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D\xE3\x81\xA8\xE8\xA8\xAD\xE5\xAE\x9A\xE5\x90\x8D\xE3\x81\xAE\xE4\xB8\xA1\xE6\x96\xB9\xE3\x81\x8C\xE6\x8C\x87\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN180              "\xE3\x82\xAA\xE3\x83\x97\xE3\x82\xB7\xE3\x83\xA7\xE3\x83\xB3\xE3\x80\x8C%s\xE3\x80\x8D\xE3\x81\x8C\xE9\x96\x93\xE9\x81\x95\xE3\x81\xA3\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN181              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D\xE3\x81\xA8\xE8\xA8\xAD\xE5\xAE\x9A\xE5\x90\x8D\xE3\x81\xAE\xE4\xB8\xA1\xE6\x96\xB9\xE3\x81\x8C\xE6\x8C\x87\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN182              "\xE3\x83\x93\xE3\x83\xA5\xE3\x83\xBC\xE3\x83\xAF\xE3\x81\xAE\xE8\xB5\xB7\xE5\x8B\x95\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F. (ERROR=%d)"\r
+#define MSGJPN183              "JRE32.DLL \xE7\x84\xA1\xE3\x81\x97"\r
+#define MSGJPN184              "JRE32.DLL Ver %x.%x (C) \xE5\xB1\xB1\xE7\x94\xB0\xE5\x92\x8C\xE5\xA4\xAB\xE3\x81\x95\xE3\x82\x93"\r
+#define MSGJPN185              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE3\x82\x92\xE9\x81\xB8\xE6\x8A\x9E\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84"\r
+#define MSGJPN186              "\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6"\r
+#define MSGJPN187              "\xE8\xBB\xA2\xE9\x80\x81\xEF\xBC\x91"\r
+#define MSGJPN188              "\xE8\xBB\xA2\xE9\x80\x81\xEF\xBC\x92"\r
+#define MSGJPN189              "\xE8\xBB\xA2\xE9\x80\x81\xEF\xBC\x93"\r
+#define MSGJPN190              "\xE3\x83\x9F\xE3\x83\xA9\xE3\x83\xBC\xE3\x83\xAA\xE3\x83\xB3\xE3\x82\xB0"\r
+#define MSGJPN191              "\xE6\x93\x8D\xE4\xBD\x9C"\r
+#define MSGJPN192              "\xE8\xA1\xA8\xE7\xA4\xBA"\r
+#define MSGJPN193              "\xE6\x8E\xA5\xE7\xB6\x9A/\xE5\x88\x87\xE6\x96\xAD"\r
 #define MSGJPN194              "FireWall"\r
-#define MSGJPN195              "\83c\81[\83\8b"\r
-#define MSGJPN196              "\83T\83E\83\93\83h"\r
-#define MSGJPN197              "\82»\82Ì\91¼"\r
-#define MSGJPN198              "\83I\83v\83V\83\87\83\93"\r
-#define MSGJPN199              "\83t\83@\83C\83\8b\96¼"\r
-#define MSGJPN200              "\83t\83@\83C\83\8b\96¼"\r
-#define MSGJPN201              "\91®\90«"\r
-#define MSGJPN202              "\83t\83@\83C\83\8b\96¼"\r
-#define MSGJPN203              "\83t\83@\83C\83\8b\96¼"\r
-#define MSGJPN204              "FW\83\86\81[\83U\96¼\81¨ FW\83p\83X\83\8f\81[\83h\81¨ SITE \83z\83X\83g\96¼"\r
-#define MSGJPN205              "FW\83\86\81[\83U\96¼\81¨ FW\83p\83X\83\8f\81[\83h\81¨ USER \83\86\81[\83U\96¼@\83z\83X\83g\96¼"\r
-#define MSGJPN206              "FW\83\86\81[\83U\96¼\81¨ FW\83p\83X\83\8f\81[\83h"\r
-#define MSGJPN207              "USER \83\86\81[\83U\96¼@\83z\83X\83g\96¼"\r
-#define MSGJPN208              "OPEN \83z\83X\83g\96¼"\r
+#define MSGJPN195              "\xE3\x83\x84\xE3\x83\xBC\xE3\x83\xAB"\r
+#define MSGJPN196              "\xE3\x82\xB5\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\x89"\r
+#define MSGJPN197              "\xE3\x81\x9D\xE3\x81\xAE\xE4\xBB\x96"\r
+#define MSGJPN198              "\xE3\x82\xAA\xE3\x83\x97\xE3\x82\xB7\xE3\x83\xA7\xE3\x83\xB3"\r
+#define MSGJPN199              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D"\r
+#define MSGJPN200              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D"\r
+#define MSGJPN201              "\xE5\xB1\x9E\xE6\x80\xA7"\r
+#define MSGJPN202              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D"\r
+#define MSGJPN203              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D"\r
+#define MSGJPN204              "FW\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE5\x90\x8D\xE2\x86\x92 FW\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE2\x86\x92 SITE \xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D"\r
+#define MSGJPN205              "FW\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE5\x90\x8D\xE2\x86\x92 FW\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE2\x86\x92 USER \xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE5\x90\x8D@\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D"\r
+#define MSGJPN206              "FW\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE5\x90\x8D\xE2\x86\x92 FW\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN207              "USER \xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE5\x90\x8D@\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D"\r
+#define MSGJPN208              "OPEN \xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D"\r
 #define MSGJPN209              "SOCKS4"\r
-#define MSGJPN210              "SOCKS5 (\94F\8fØ\82È\82µ)"\r
-#define MSGJPN211              "SOCKS5 (\83\86\81[\83U\96¼\81A\83p\83X\83\8f\81[\83h\94F\8fØ)"\r
-#define MSGJPN212              "\8eg\97p\82µ\82È\82¢"\r
-#define MSGJPN213              "\8e©\93®\94F\8e¯"\r
+#define MSGJPN210              "SOCKS5 (\xE8\xAA\x8D\xE8\xA8\xBC\xE3\x81\xAA\xE3\x81\x97)"\r
+#define MSGJPN211              "SOCKS5 (\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE5\x90\x8D\xE3\x80\x81\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE8\xAA\x8D\xE8\xA8\xBC)"\r
+#define MSGJPN212              "\xE4\xBD\xBF\xE7\x94\xA8\xE3\x81\x97\xE3\x81\xAA\xE3\x81\x84"\r
+#define MSGJPN213              "\xE8\x87\xAA\xE5\x8B\x95\xE8\xAA\x8D\xE8\xAD\x98"\r
 #define MSGJPN214              "OTP MD4,S/KEY"\r
 #define MSGJPN215              "OTP MD5"\r
 #define MSGJPN216              "OTP SHA-1"\r
-#define MSGJPN217              "\83r\83\85\81[\83\8f\82Ì\91I\91ð"\r
-#define MSGJPN218              "\8eÀ\8ds\83t\83@\83C\83\8b\0*.exe;*.com;*.bat\0\91S\82Ä\82Ì̧²Ù\0*\0"\r
-#define MSGJPN219              "Wave\83t\83@\83C\83\8b"\r
-#define MSGJPN220              "\83_\83C\83A\83\8b\83A\83b\83v\82ð\90Ø\92f\82µ\82Ä\82¢\82Ü\82·."\r
-#define MSGJPN221              "\83_\83C\83A\83\8b\83A\83b\83v\82Å\90Ú\91±\82µ\82Ä\82¢\82Ü\82·."\r
-#define MSGJPN222              "\83_\83C\83A\83\8b\83A\83b\83v\82ª\8eg\82¦\82Ü\82¹\82ñ(RasDialDlg)"\r
-#define MSGJPN223              "%s \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·..."\r
-#define MSGJPN224              "\95s\96¾\82È\83G\83\89\81["\r
-#define MSGJPN225              "\83_\83C\83A\83\8b\83A\83b\83v\90Ú\91±"\r
-#define MSGJPN226              "\83|\81[\83g\82ð\8aJ\82¢\82Ä\82¢\82Ü\82·..."\r
-#define MSGJPN227              "\83|\81[\83g\82ª\8aJ\82©\82ê\82Ü\82µ\82½"\r
-#define MSGJPN228              "\83_\83C\83A\83\8b\92\86..."\r
-#define MSGJPN229              "\83_\83C\83A\83\8b\8a®\97¹"\r
-#define MSGJPN230              "\91S\83f\83o\83C\83X\82ª\90Ú\91±\82³\82ê\82Ü\82µ\82½"\r
-#define MSGJPN231              "\83\86\81[\83U\96¼\82Æ\83p\83X\83\8f\81[\83h\82ð\8c\9f\8fØ\92\86..."\r
-#define MSGJPN232              "\8dÄ\8c\9f\8fØ\92\86..."\r
-#define MSGJPN233              "\83p\83X\83\8f\81[\83h\82ð\95Ï\8dX\82µ\82Ä\89º\82³\82¢"\r
-#define MSGJPN234              "\8c\9f\8fØ\82ª\8fI\97¹\82µ\82Ü\82µ\82½"\r
-#define MSGJPN235              "\90Ú\91±\82µ\82Ü\82µ\82½"\r
-#define MSGJPN236              "\90Ø\92f\82µ\82Ü\82µ\82½"\r
-#define MSGJPN237              "\90Ú\91±\8f\88\97\9d\92\86..."\r
-#define MSGJPN238              "%s \82Ö\82Ì\90Ú\91±"\r
-#define MSGJPN239              "# \82±\82Ì\83t\83@\83C\83\8b\82Í\95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢\81B\n"\r
-#define MSGJPN240              "INI\83t\83@\83C\83\8b\82É\90Ý\92è\82ª\95Û\91\82Å\82«\82Ü\82¹\82ñ"\r
-#define MSGJPN241              "\91\97\90M\82Í\83^\83C\83\80\83A\83E\83g\82Å\8e¸\94s\82µ\82Ü\82µ\82½."\r
-#define MSGJPN242              "\8eó\90M\82Í\83^\83C\83\80\83A\83E\83g\82Å\8e¸\94s\82µ\82Ü\82µ\82½."\r
-#define MSGJPN243              "\8eó\90M\82Í\83^\83C\83\80\83A\83E\83g\82Å\8e¸\94s\82µ\82Ü\82µ\82½."\r
-#define MSGJPN244              "\8cÅ\92è\92·\82Ì\8eó\90M\82ª\8e¸\94s\82µ\82Ü\82µ\82½"\r
-#define MSGJPN245              "\83\8d\81[\83J\83\8b"\r
-#define MSGJPN246              "\83z\83X\83g"\r
-#define MSGJPN247              "\91I\91ð%d\8cÂ\81i%s\81j"\r
-#define MSGJPN248              "\83\8d\81[\83J\83\8b\8bó %s"\r
-#define MSGJPN249              "\93]\91\97\91Ò\82¿\83t\83@\83C\83\8b%d\8cÂ"\r
-#define MSGJPN250              "\8eó\90M\92\86 %s"\r
-#define MSGJPN251              "Err\81F\83V\81[\83h\95\8e\9a\97ñ"\r
-#define MSGJPN252              "Err\81F\83V\81[\83h\95\8e\9a\97ñ"\r
-#define MSGJPN253              "Err\81F\83V\81[\83P\83\93\83X\94Ô\8d\86"\r
-#define MSGJPN254              "\82l\82\82o\83S\83V\83b\83N"\r
-#define MSGJPN255              "\83A\83b\83v\83\8d\81[\83h(&U)"\r
-#define MSGJPN256              "\96¼\91O\82ð\95Ï\82¦\82Ä\83A\83b\83v\83\8d\81[\83h(&P)..."\r
-#define MSGJPN257              "\91S\82Ä\82ð\83A\83b\83v\83\8d\81[\83h"\r
-#define MSGJPN258              "\8dí\8f\9c(&R)"\r
-#define MSGJPN259              "\96¼\91O\95Ï\8dX(&N)..."\r
-#define MSGJPN260              "\83t\83H\83\8b\83_\8dì\90¬(&K)..."\r
-#define MSGJPN261              "\83t\83@\83C\83\8b\97e\97Ê\8cv\8eZ(&Z)"\r
-#define MSGJPN262              "\8dÅ\90V\82Ì\8fî\95ñ\82É\8dX\90V(&F)"\r
-#define MSGJPN263              "\83_\83E\83\93\83\8d\81[\83h(&D)"\r
-#define MSGJPN264              "\96¼\91O\82ð\95Ï\82¦\82Ä\83_\83E\83\93\83\8d\81[\83h(&W)..."\r
-#define MSGJPN265              "\83t\83@\83C\83\8b\82Æ\82µ\82Ä\83_\83E\83\93\83\8d\81[\83h(&I)"\r
-#define MSGJPN266              "\91S\82Ä\82ð\83_\83E\83\93\83\8d\81[\83h"\r
-#define MSGJPN267              "\8dí\8f\9c(&R)"\r
-#define MSGJPN268              "\96¼\91O\95Ï\8dX(&N)..."\r
-#define MSGJPN269              "\91®\90«\95Ï\8dX(&A)..."\r
-#define MSGJPN270              "\83t\83H\83\8b\83_\8dì\90¬(&K)..."\r
-#define MSGJPN271              "URL\82ð\83N\83\8a\83b\83v\83{\81[\83h\82Ö\83R\83s\81[(&C)"\r
-#define MSGJPN272              "\83t\83@\83C\83\8b\97e\97Ê\8cv\8eZ(&Z)"\r
-#define MSGJPN273              "\8dÅ\90V\82Ì\8fî\95ñ\82É\8dX\90V(&F)"\r
-#define MSGJPN274              "\8aJ\82­(&O)"\r
-#define MSGJPN275              "%s\82Å\8aJ\82­(&%d)"\r
-#define MSGJPN276              "WS_FTP.INI\0ws_ftp.ini\0\91S\82Ä\82Ì̧²Ù\0*\0"\r
-#define MSGJPN277              "Wave\83t\83@\83C\83\8b\0*.wav\0\91S\82Ä\82Ì\83t\83@\83C\83\8b\0*\0"\r
-#define MSGJPN278              "\97\9d\97R\81F%s"\r
-#define MSGJPN279              "Listen\83\\83P\83b\83g\82ª\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ"\r
-#define MSGJPN280              "Data\83\\83P\83b\83g\82ª\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ"\r
-#define MSGJPN281              "PASV\83\82\81[\83h\82Å\90Ú\91±\82Å\82«\82Ü\82¹\82ñ"\r
-#define MSGJPN282              "INI\83t\83@\83C\83\8b\96¼\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ"\r
-#define MSGJPN283              "INI\83t\83@\83C\83\8b\8ew\92è\81F"\r
+#define MSGJPN217              "\xE3\x83\x93\xE3\x83\xA5\xE3\x83\xBC\xE3\x83\xAF\xE3\x81\xAE\xE9\x81\xB8\xE6\x8A\x9E"\r
+#define MSGJPN218              "\xE5\xAE\x9F\xE8\xA1\x8C\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.exe;*.com;*.bat\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAȨ²Ù\0*\0"\r
+#define MSGJPN219              "Wave\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB"\r
+#define MSGJPN220              "\xE3\x83\x80\xE3\x82\xA4\xE3\x82\xA2\xE3\x83\xAB\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x82\x92\xE5\x88\x87\xE6\x96\xAD\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN221              "\xE3\x83\x80\xE3\x82\xA4\xE3\x82\xA2\xE3\x83\xAB\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x81\xA7\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99."\r
+#define MSGJPN222              "\xE3\x83\x80\xE3\x82\xA4\xE3\x82\xA2\xE3\x83\xAB\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x81\x8C\xE4\xBD\xBF\xE3\x81\x88\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93(RasDialDlg)"\r
+#define MSGJPN223              "%s \xE3\x81\xAB\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99..."\r
+#define MSGJPN224              "\xE4\xB8\x8D\xE6\x98\x8E\xE3\x81\xAA\xE3\x82\xA8\xE3\x83\xA9\xE3\x83\xBC"\r
+#define MSGJPN225              "\xE3\x83\x80\xE3\x82\xA4\xE3\x82\xA2\xE3\x83\xAB\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE6\x8E\xA5\xE7\xB6\x9A"\r
+#define MSGJPN226              "\xE3\x83\x9D\xE3\x83\xBC\xE3\x83\x88\xE3\x82\x92\xE9\x96\x8B\xE3\x81\x84\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x99..."\r
+#define MSGJPN227              "\xE3\x83\x9D\xE3\x83\xBC\xE3\x83\x88\xE3\x81\x8C\xE9\x96\x8B\xE3\x81\x8B\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN228              "\xE3\x83\x80\xE3\x82\xA4\xE3\x82\xA2\xE3\x83\xAB\xE4\xB8\xAD..."\r
+#define MSGJPN229              "\xE3\x83\x80\xE3\x82\xA4\xE3\x82\xA2\xE3\x83\xAB\xE5\xAE\x8C\xE4\xBA\x86"\r
+#define MSGJPN230              "\xE5\x85\xA8\xE3\x83\x87\xE3\x83\x90\xE3\x82\xA4\xE3\x82\xB9\xE3\x81\x8C\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN231              "\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE5\x90\x8D\xE3\x81\xA8\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE6\xA4\x9C\xE8\xA8\xBC\xE4\xB8\xAD..."\r
+#define MSGJPN232              "\xE5\x86\x8D\xE6\xA4\x9C\xE8\xA8\xBC\xE4\xB8\xAD..."\r
+#define MSGJPN233              "\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE5\xA4\x89\xE6\x9B\xB4\xE3\x81\x97\xE3\x81\xA6\xE4\xB8\x8B\xE3\x81\x95\xE3\x81\x84"\r
+#define MSGJPN234              "\xE6\xA4\x9C\xE8\xA8\xBC\xE3\x81\x8C\xE7\xB5\x82\xE4\xBA\x86\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN235              "\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN236              "\xE5\x88\x87\xE6\x96\xAD\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN237              "\xE6\x8E\xA5\xE7\xB6\x9A\xE5\x87\xA6\xE7\x90\x86\xE4\xB8\xAD..."\r
+#define MSGJPN238              "%s \xE3\x81\xB8\xE3\x81\xAE\xE6\x8E\xA5\xE7\xB6\x9A"\r
+#define MSGJPN239              "# \xE3\x81\x93\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE7\xB7\xA8\xE9\x9B\x86\xE3\x81\x97\xE3\x81\xAA\xE3\x81\x84\xE3\x81\xA7\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84\xE3\x80\x82\n"\r
+#define MSGJPN240              "INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAB\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x8C\xE4\xBF\x9D\xE5\xAD\x98\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
+#define MSGJPN241              "\xE9\x80\x81\xE4\xBF\xA1\xE3\x81\xAF\xE3\x82\xBF\xE3\x82\xA4\xE3\x83\xA0\xE3\x82\xA2\xE3\x82\xA6\xE3\x83\x88\xE3\x81\xA7\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN242              "\xE5\x8F\x97\xE4\xBF\xA1\xE3\x81\xAF\xE3\x82\xBF\xE3\x82\xA4\xE3\x83\xA0\xE3\x82\xA2\xE3\x82\xA6\xE3\x83\x88\xE3\x81\xA7\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN243              "\xE5\x8F\x97\xE4\xBF\xA1\xE3\x81\xAF\xE3\x82\xBF\xE3\x82\xA4\xE3\x83\xA0\xE3\x82\xA2\xE3\x82\xA6\xE3\x83\x88\xE3\x81\xA7\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F."\r
+#define MSGJPN244              "\xE5\x9B\xBA\xE5\xAE\x9A\xE9\x95\xB7\xE3\x81\xAE\xE5\x8F\x97\xE4\xBF\xA1\xE3\x81\x8C\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN245              "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB"\r
+#define MSGJPN246              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88"\r
+#define MSGJPN247              "\xE9\x81\xB8\xE6\x8A\x9E%d\xE5\x80\x8B\xEF\xBC\x88%s\xEF\xBC\x89"\r
+#define MSGJPN248              "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE7\xA9\xBA %s"\r
+#define MSGJPN249              "\xE8\xBB\xA2\xE9\x80\x81\xE5\xBE\x85\xE3\x81\xA1\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB%d\xE5\x80\x8B"\r
+#define MSGJPN250              "\xE5\x8F\x97\xE4\xBF\xA1\xE4\xB8\xAD %s"\r
+#define MSGJPN251              "Err\xEF\xBC\x9A\xE3\x82\xB7\xE3\x83\xBC\xE3\x83\x89\xE6\x96\x87\xE5\xAD\x97\xE5\x88\x97"\r
+#define MSGJPN252              "Err\xEF\xBC\x9A\xE3\x82\xB7\xE3\x83\xBC\xE3\x83\x89\xE6\x96\x87\xE5\xAD\x97\xE5\x88\x97"\r
+#define MSGJPN253              "Err\xEF\xBC\x9A\xE3\x82\xB7\xE3\x83\xBC\xE3\x82\xB1\xE3\x83\xB3\xE3\x82\xB9\xE7\x95\xAA\xE5\x8F\xB7"\r
+#define MSGJPN254              "\xEF\xBC\xAD\xEF\xBC\xB3 \xEF\xBC\xB0\xE3\x82\xB4\xE3\x82\xB7\xE3\x83\x83\xE3\x82\xAF"\r
+#define MSGJPN255              "\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89(&U)"\r
+#define MSGJPN256              "\xE5\x90\x8D\xE5\x89\x8D\xE3\x82\x92\xE5\xA4\x89\xE3\x81\x88\xE3\x81\xA6\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89(&P)..."\r
+#define MSGJPN257              "\xE5\x85\xA8\xE3\x81\xA6\xE3\x82\x92\xE3\x82\xA2\xE3\x83\x83\xE3\x83\x97\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN258              "\xE5\x89\x8A\xE9\x99\xA4(&R)"\r
+#define MSGJPN259              "\xE5\x90\x8D\xE5\x89\x8D\xE5\xA4\x89\xE6\x9B\xB4(&N)..."\r
+#define MSGJPN260              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90(&K)..."\r
+#define MSGJPN261              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F\xE8\xA8\x88\xE7\xAE\x97(&Z)"\r
+#define MSGJPN262              "\xE6\x9C\x80\xE6\x96\xB0\xE3\x81\xAE\xE6\x83\x85\xE5\xA0\xB1\xE3\x81\xAB\xE6\x9B\xB4\xE6\x96\xB0(&F)"\r
+#define MSGJPN263              "\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89(&D)"\r
+#define MSGJPN264              "\xE5\x90\x8D\xE5\x89\x8D\xE3\x82\x92\xE5\xA4\x89\xE3\x81\x88\xE3\x81\xA6\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89(&W)..."\r
+#define MSGJPN265              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xA8\xE3\x81\x97\xE3\x81\xA6\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89(&I)"\r
+#define MSGJPN266              "\xE5\x85\xA8\xE3\x81\xA6\xE3\x82\x92\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89"\r
+#define MSGJPN267              "\xE5\x89\x8A\xE9\x99\xA4(&R)"\r
+#define MSGJPN268              "\xE5\x90\x8D\xE5\x89\x8D\xE5\xA4\x89\xE6\x9B\xB4(&N)..."\r
+#define MSGJPN269              "\xE5\xB1\x9E\xE6\x80\xA7\xE5\xA4\x89\xE6\x9B\xB4(&A)..."\r
+#define MSGJPN270              "\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x80\xE4\xBD\x9C\xE6\x88\x90(&K)..."\r
+#define MSGJPN271              "URL\xE3\x82\x92\xE3\x82\xAF\xE3\x83\xAA\xE3\x83\x83\xE3\x83\x97\xE3\x83\x9C\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xB8\xE3\x82\xB3\xE3\x83\x94\xE3\x83\xBC(&C)"\r
+#define MSGJPN272              "\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\xAE\xB9\xE9\x87\x8F\xE8\xA8\x88\xE7\xAE\x97(&Z)"\r
+#define MSGJPN273              "\xE6\x9C\x80\xE6\x96\xB0\xE3\x81\xAE\xE6\x83\x85\xE5\xA0\xB1\xE3\x81\xAB\xE6\x9B\xB4\xE6\x96\xB0(&F)"\r
+#define MSGJPN274              "\xE9\x96\x8B\xE3\x81\x8F(&O)"\r
+#define MSGJPN275              "%s\xE3\x81\xA7\xE9\x96\x8B\xE3\x81\x8F(&%d)"\r
+#define MSGJPN276              "WS_FTP.INI\0ws_ftp.ini\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAȨ²Ù\0*\0"\r
+#define MSGJPN277              "Wave\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.wav\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*\0"\r
+#define MSGJPN278              "\xE7\x90\x86\xE7\x94\xB1\xEF\xBC\x9A%s"\r
+#define MSGJPN279              "Listen\xE3\x82\xBD\xE3\x82\xB1\xE3\x83\x83\xE3\x83\x88\xE3\x81\x8C\xE5\x8F\x96\xE5\xBE\x97\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
+#define MSGJPN280              "Data\xE3\x82\xBD\xE3\x82\xB1\xE3\x83\x83\xE3\x83\x88\xE3\x81\x8C\xE5\x8F\x96\xE5\xBE\x97\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
+#define MSGJPN281              "PASV\xE3\x83\xA2\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xA7\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
+#define MSGJPN282              "INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\x8C\xE6\x8C\x87\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
+#define MSGJPN283              "INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE6\x8C\x87\xE5\xAE\x9A\xEF\xBC\x9A"\r
 #define MSGJPN284              "http://www2.biglobe.ne.jp/~sota/"\r
-#define MSGJPN285              "\83\8c\83W\83X\83g\83\8a\83G\83f\83B\83^\82ª\8bN\93®\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½"\r
-#define MSGJPN286              "\90Ý\92è\83t\83@\83C\83\8b\82Ì\95Û\91"\r
-#define MSGJPN287              "Reg\83t\83@\83C\83\8b\0*.reg\0\91S\82Ä\82Ì\83t\83@\83C\83\8b\0*\0"\r
-#define MSGJPN288              "INI\83t\83@\83C\83\8b\0*.ini\0\91S\82Ä\82Ì\83t\83@\83C\83\8b\0*\0"\r
+#define MSGJPN285              "\xE3\x83\xAC\xE3\x82\xB8\xE3\x82\xB9\xE3\x83\x88\xE3\x83\xAA\xE3\x82\xA8\xE3\x83\x87\xE3\x82\xA3\xE3\x82\xBF\xE3\x81\x8C\xE8\xB5\xB7\xE5\x8B\x95\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN286              "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAE\xE4\xBF\x9D\xE5\xAD\x98"\r
+#define MSGJPN287              "Reg\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.reg\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*\0"\r
+#define MSGJPN288              "INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.ini\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*\0"\r
 #define MSGJPN289              "Agilent Logic analyzer"\r
-#define MSGJPN290              "Reg\83t\83@\83C\83\8b\0*.reg\0INI\83t\83@\83C\83\8b\0*.ini\0\91S\82Ä\82Ì\83t\83@\83C\83\8b\0*\0"\r
-#define MSGJPN291              "\90Ý\92è\82ð\83t\83@\83C\83\8b\82©\82ç\95\9c\8c³"\r
-#define MSGJPN292              "\90Ý\92è\82ð\83t\83@\83C\83\8b\82©\82ç\95\9c\8c³\82·\82é\82½\82ß\82É\82Í\81AFFFTP\82ð\8dÄ\8bN\93®\82µ\82Ä\82­\82¾\82³\82¢\81B"\r
-#define MSGJPN293              "\90Ý\92è\83t\83@\83C\83\8b\82Í\8ag\92£\8eq\82ª.reg\82©.ini\82Å\82È\82¯\82ê\82Î\82È\82è\82Ü\82¹\82ñ\81B"\r
-#define MSGJPN294              "USER FW\83\86\81[\83U\96¼:FW\83p\83X\83\8f\81[\83h@\83z\83X\83g\96¼"\r
-#define MSGJPN295              "\83V\83o\83\\83N WL"\r
-#define MSGJPN296              "\93Ç\82Ý\8eæ\82è\90ê\97p\83t\83@\83C\83\8b\82Å\82·\81B\93Ç\82Ý\8eæ\82è\90ê\97p\91®\90«\82ð\89ð\8f\9c\82µ\82Ü\82·\82©\81H"\r
-#define MSGJPN297              "%s \82Í\95s\90³\82È\83t\83@\83C\83\8b\96¼\82Å\82·\81B\r\n\82±\82Ì\83t\83@\83C\83\8b\82Í\83_\83E\83\93\83\8d\81[\83h\82³\82ê\82Ü\82¹\82ñ\81B"\r
-#define MSGJPN298              "OLE\82Ì\8f\89\8aú\89»\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B"\r
-#define MSGJPN299              "\83R\83}\83\93\83h\83\89\83C\83\93\82É\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ"\r
-#define MSGJPN300              "\83f\83t\83H\83\8b\83g\82Ì\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\8eg\82í\82ê\82Ü\82·\81D\r\n\83}\83\8b\83E\83F\83A\82Ì\8dU\8c\82\82ð\96h\82®\82½\82ß\81C\8cÅ\97L\82Ì\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ð\90Ý\92è\82·\82é\82±\82Æ\82ð\82¨\82·\82·\82ß\82µ\82Ü\82·"\r
-#define MSGJPN301              "\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\90Ý\92è\82Æ\88ê\92v\82µ\82Ü\82¹\82ñ\81D\88À\91S\82Ì\82½\82ß\90Ý\92è\82Ì\95Û\91\82ð\8ds\82¢\82Ü\82¹\82ñ\81D"\r
-#define MSGJPN302              "\8am\94F\97p\83f\81[\83^\82ª\89ó\82ê\82Ä\82¢\82é\82½\82ß\81C\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82Ì\90³\93\96\90«\82ð\8am\94F\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81D"\r
-#define MSGJPN303              "\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ð\95Ï\8dX\82µ\82Ü\82µ\82½"\r
-#define MSGJPN304              "\8ew\92è\82³\82ê\82½\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\93o\98^\82³\82ê\82½\82à\82Ì\82Æ\88ê\92v\82µ\82Ü\82¹\82ñ\81D\r\n\8dÄ\93x\93ü\97Í\82µ\82Ü\82·\82©\81H\r\n\81u\82¢\82¢\82¦\81v\82ð\91I\82Ô\82Æ\8bL\89¯\82³\82ê\82½FTP\83p\83X\83\8f\81[\83h\82Í\97\98\97p\82Å\82«\82Ü\82¹\82ñ\81D"\r
+#define MSGJPN290              "Reg\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.reg\0INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.ini\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*\0"\r
+#define MSGJPN291              "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\x8B\xE3\x82\x89\xE5\xBE\xA9\xE5\x85\x83"\r
+#define MSGJPN292              "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x82\x92\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\x8B\xE3\x82\x89\xE5\xBE\xA9\xE5\x85\x83\xE3\x81\x99\xE3\x82\x8B\xE3\x81\x9F\xE3\x82\x81\xE3\x81\xAB\xE3\x81\xAF\xE3\x80\x81\x46\x46\x46TP\xE3\x82\x92\xE5\x86\x8D\xE8\xB5\xB7\xE5\x8B\x95\xE3\x81\x97\xE3\x81\xA6\xE3\x81\x8F\xE3\x81\xA0\xE3\x81\x95\xE3\x81\x84\xE3\x80\x82"\r
+#define MSGJPN293              "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE6\x8B\xA1\xE5\xBC\xB5\xE5\xAD\x90\xE3\x81\x8C.reg\xE3\x81\x8B.ini\xE3\x81\xA7\xE3\x81\xAA\xE3\x81\x91\xE3\x82\x8C\xE3\x81\xB0\xE3\x81\xAA\xE3\x82\x8A\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x80\x82"\r
+#define MSGJPN294              "USER FW\xE3\x83\xA6\xE3\x83\xBC\xE3\x82\xB6\xE5\x90\x8D:FW\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89@\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE5\x90\x8D"\r
+#define MSGJPN295              "\xE3\x82\xB7\xE3\x83\x90\xE3\x82\xBD\xE3\x82\xAF WL"\r
+#define MSGJPN296              "\xE8\xAA\xAD\xE3\x81\xBF\xE5\x8F\x96\xE3\x82\x8A\xE5\xB0\x82\xE7\x94\xA8\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xA7\xE3\x81\x99\xE3\x80\x82\xE8\xAA\xAD\xE3\x81\xBF\xE5\x8F\x96\xE3\x82\x8A\xE5\xB0\x82\xE7\x94\xA8\xE5\xB1\x9E\xE6\x80\xA7\xE3\x82\x92\xE8\xA7\xA3\xE9\x99\xA4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x81\x8B\xEF\xBC\x9F"\r
+#define MSGJPN297              "%s \xE3\x81\xAF\xE4\xB8\x8D\xE6\xAD\xA3\xE3\x81\xAA\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\xA7\xE3\x81\x99\xE3\x80\x82\r\n\xE3\x81\x93\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAF\xE3\x83\x80\xE3\x82\xA6\xE3\x83\xB3\xE3\x83\xAD\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x80\x82"\r
+#define MSGJPN298              "OLE\xE3\x81\xAE\xE5\x88\x9D\xE6\x9C\x9F\xE5\x8C\x96\xE3\x81\xAB\xE5\xA4\xB1\xE6\x95\x97\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F\xE3\x80\x82"\r
+#define MSGJPN299              "\xE3\x82\xB3\xE3\x83\x9E\xE3\x83\xB3\xE3\x83\x89\xE3\x83\xA9\xE3\x82\xA4\xE3\x83\xB3\xE3\x81\xAB\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE6\x8C\x87\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
+#define MSGJPN300              "\xE3\x83\x87\xE3\x83\x95\xE3\x82\xA9\xE3\x83\xAB\xE3\x83\x88\xE3\x81\xAE\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE4\xBD\xBF\xE3\x82\x8F\xE3\x82\x8C\xE3\x81\xBE\xE3\x81\x99\xEF\xBC\x8E\r\n\xE3\x83\x9E\xE3\x83\xAB\xE3\x82\xA6\xE3\x82\xA7\xE3\x82\xA2\xE3\x81\xAE\xE6\x94\xBB\xE6\x92\x83\xE3\x82\x92\xE9\x98\xB2\xE3\x81\x90\xE3\x81\x9F\xE3\x82\x81\xEF\xBC\x8C\xE5\x9B\xBA\xE6\x9C\x89\xE3\x81\xAE\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\x99\xE3\x82\x8B\xE3\x81\x93\xE3\x81\xA8\xE3\x82\x92\xE3\x81\x8A\xE3\x81\x99\xE3\x81\x99\xE3\x82\x81\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99"\r
+#define MSGJPN301              "\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xA8\xE4\xB8\x80\xE8\x87\xB4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xEF\xBC\x8E\xE5\xAE\x89\xE5\x85\xA8\xE3\x81\xAE\xE3\x81\x9F\xE3\x82\x81\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x81\xAE\xE4\xBF\x9D\xE5\xAD\x98\xE3\x82\x92\xE8\xA1\x8C\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xEF\xBC\x8E"\r
+#define MSGJPN302              "\xE7\xA2\xBA\xE8\xAA\x8D\xE7\x94\xA8\xE3\x83\x87\xE3\x83\xBC\xE3\x82\xBF\xE3\x81\x8C\xE5\xA3\x8A\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x82\x8B\xE3\x81\x9F\xE3\x82\x81\xEF\xBC\x8C\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAE\xE6\xAD\xA3\xE5\xBD\x93\xE6\x80\xA7\xE3\x82\x92\xE7\xA2\xBA\xE8\xAA\x8D\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F\xEF\xBC\x8E"\r
+#define MSGJPN303              "\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x82\x92\xE5\xA4\x89\xE6\x9B\xB4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x97\xE3\x81\x9F"\r
+#define MSGJPN304              "\xE6\x8C\x87\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\x9F\xE3\x83\x9E\xE3\x82\xB9\xE3\x82\xBF\xE3\x83\xBC\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\x8C\xE7\x99\xBB\xE9\x8C\xB2\xE3\x81\x95\xE3\x82\x8C\xE3\x81\x9F\xE3\x82\x82\xE3\x81\xAE\xE3\x81\xA8\xE4\xB8\x80\xE8\x87\xB4\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xEF\xBC\x8E\r\n\xE5\x86\x8D\xE5\xBA\xA6\xE5\x85\xA5\xE5\x8A\x9B\xE3\x81\x97\xE3\x81\xBE\xE3\x81\x99\xE3\x81\x8B\xEF\xBC\x9F\r\n\xE3\x80\x8C\xE3\x81\x84\xE3\x81\x84\xE3\x81\x88\xE3\x80\x8D\xE3\x82\x92\xE9\x81\xB8\xE3\x81\xB6\xE3\x81\xA8\xE8\xA8\x98\xE6\x86\xB6\xE3\x81\x95\xE3\x82\x8C\xE3\x81\x9F\x46TP\xE3\x83\x91\xE3\x82\xB9\xE3\x83\xAF\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\xE5\x88\xA9\xE7\x94\xA8\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xEF\xBC\x8E"\r
+#define MSGJPN305              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFShift_JIS"\r
+#define MSGJPN306              "\xE3\x83\x9B\xE3\x82\xB9\xE3\x83\x88\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFUTF-8"\r
+#define MSGJPN307              "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFShift_JIS"\r
+#define MSGJPN308              "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAF\x45UC"\r
+#define MSGJPN309              "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFJIS"\r
+#define MSGJPN310              "\xE3\x83\xAD\xE3\x83\xBC\xE3\x82\xAB\xE3\x83\xAB\xE3\x81\xAE\xE6\xBC\xA2\xE5\xAD\x97\xE3\x82\xB3\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xAFUTF-8"\r
diff --git a/mesg-jpn.old.h b/mesg-jpn.old.h
new file mode 100644 (file)
index 0000000..9b5e037
--- /dev/null
@@ -0,0 +1,310 @@
+#define MSGJPN001              "\90Ú\91±\82ð\92\86\8e~\82µ\82Ü\82µ\82½."
+#define MSGJPN002              "\90Ú\91±\82ð\92\86\8e~\82µ\82Ü\82µ\82½."
+#define MSGJPN003              "\r\n\8dÄ\90Ú\91±\82µ\82Ü\82·.\r\n"
+#define MSGJPN004              "\90Ø\92f\82µ\82Ü\82µ\82½"
+#define MSGJPN005              "\90Ú\91±\82ª\90Ø\92f\82³\82ê\82Ü\82µ\82½."
+#define MSGJPN006              "FireWall\82É\83\8d\83O\83C\83\93\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN007              "\83z\83X\83g %s \82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN008              "\83\8d\83O\83C\83\93\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN009              "\90Ú\91±\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN010              "FireWall\82Ì\83z\83X\83g\96¼\82ª\90Ý\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ."
+#define MSGJPN011              "\83z\83X\83g\96¼\82ª\82 \82è\82Ü\82¹\82ñ."
+#define MSGJPN012              "MD5\82ð\8eg\97p\82µ\82Ü\82·."
+#define MSGJPN013              "SHA-1\82ð\8eg\97p\82µ\82Ü\82·."
+#define MSGJPN014              "MD4(S/KEY)\82ð\8eg\97p\82µ\82Ü\82·."
+#define MSGJPN015              "\83\8f\83\93\83^\83C\83\80\83p\83X\83\8f\81[\83h\82ª\8f\88\97\9d\82Å\82«\82Ü\82¹\82ñ"
+#define MSGJPN016              "\83z\83X\83g %s \82ð\92T\82µ\82Ä\82¢\82Ü\82·."
+#define MSGJPN017              "%s\83z\83X\83g %s (%s (%d)) \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·."
+#define MSGJPN018              "%s\83z\83X\83g %s (%d) \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·."
+#define MSGJPN019              "\83z\83X\83g %s \82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ."
+#define MSGJPN020              "%s\83z\83X\83g %s (%d) \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·."
+#define MSGJPN021              "SOCKS\83T\81[\83o %s \82ª\8c©\82Â\82©\82è\82Ü\82¹\82ñ."
+#define MSGJPN022              "SOCKS\83T\81[\83o %s (%d) \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·\81B"
+#define MSGJPN023              "SOCKS\83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ. (Err=%d)"
+#define MSGJPN024              "SOCKS\83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ. (Err=%d)"
+#define MSGJPN025              "\90Ú\91±\82µ\82Ü\82µ\82½."
+#define MSGJPN026              "\90Ú\91±\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN027              "\83\\83P\83b\83g\82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN028              "SOCKS\83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ. (Err=%d)"
+#define MSGJPN029              "SOCKS\83T\81[\83o\82É\90Ú\91±\82Å\82«\82Ü\82¹\82ñ. (Err=%d)"
+#define MSGJPN030              "Listen\83\\83P\83b\83g\82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN031              "PORT\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."
+#define MSGJPN032              "\90Ú\91±\82Í\83\86\81[\83U\82É\82æ\82Á\82Ä\92\86\8e~\82³\82ê\82Ü\82µ\82½."
+#define MSGJPN033              "SOCKS\82Ì\83R\83}\83\93\83h\82ª\91\97\82ê\82Ü\82¹\82ñ\82Å\82µ\82½ (Cmd = %04X)"
+#define MSGJPN034              "SOCKS5\82Ì\83R\83}\83\93\83h\82É\91Î\82·\82é\83\8a\83v\83\89\83C\82ª\8eó\90M\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½"
+#define MSGJPN035              "SOCKS4\82Ì\83R\83}\83\93\83h\82É\91Î\82·\82é\83\8a\83v\83\89\83C\82ª\8eó\90M\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½"
+#define MSGJPN036              "SOCKS\83T\81[\83o\82Ì\94F\8fØ\95û\8e®\82ª\88Ù\82È\82è\82Ü\82·."
+#define MSGJPN037              "SOCKS\83T\81[\83o\82É\94F\8fØ\82³\82ê\82Ü\82¹\82ñ\82Å\82µ\82½."
+#define MSGJPN038              "\96¼\91O"
+#define MSGJPN039              "\93ú\95t"
+#define MSGJPN040              "\83T\83C\83Y"
+#define MSGJPN041              "\8eí\97Þ"
+#define MSGJPN042              "\96¼\91O"
+#define MSGJPN043              "\93ú\95t"
+#define MSGJPN044              "\83T\83C\83Y"
+#define MSGJPN045              "\8eí\97Þ"
+#define MSGJPN046              "\91®\90«"
+#define MSGJPN047              "\8f\8a\97L\8eÒ"
+#define MSGJPN048              "\83e\83\93\83|\83\89\83\8a\83t\83@\83C\83\8b\82ª\93Ç\82Ý\8fo\82¹\82Ü\82¹\82ñ."
+#define MSGJPN049              "\83t\83@\83C\83\8b\88ê\97\97\82Ì\8eæ\93¾\82É\8e¸\94s\82µ\82Ü\82µ\82½."
+#define MSGJPN050              "\8c\9f\8dõ\81i\83\8d\81[\83J\83\8b\81j"
+#define MSGJPN051              "\8c\9f\8dõ\81i\83z\83X\83g\81j"
+#define MSGJPN052              "\8dí\8f\9c\81F %s"
+#define MSGJPN053              "\8dì\90¬\81F %s"
+#define MSGJPN054              "\93]\91\97\81F %s"
+#define MSGJPN055              "\8dí\8f\9c\81F %s"
+#define MSGJPN056              "\8dì\90¬\81F %s"
+#define MSGJPN057              "\93]\91\97\81F %s"
+#define MSGJPN058              "%d\8cÂ\82Ì\83t\83@\83C\83\8b\82ð\93]\91\97\82µ\82Ü\82·."
+#define MSGJPN059              "\93]\91\97\82·\82é\83t\83@\83C\83\8b\82Í\82 \82è\82Ü\82¹\82ñ."
+#define MSGJPN060              "%d\8cÂ\82Ì\83t\83H\83\8b\83_\82ð\8dì\90¬\82µ\82Ü\82·."
+#define MSGJPN061              "\8dì\90¬\82·\82é\83t\83H\83\8b\83_\82Í\82 \82è\82Ü\82¹\82ñ."
+#define MSGJPN062              "%d\8cÂ\82Ì\83t\83@\83C\83\8b\81^\83t\83H\83\8b\83_\82ð\8dí\8f\9c\82µ\82Ü\82·."
+#define MSGJPN063              "\8dí\8f\9c\82·\82é\83t\83@\83C\83\8b\81^\83t\83H\83\8b\83_\82Í\82 \82è\82Ü\82¹\82ñ."
+#define MSGJPN064              "\96¼\91O\82ð\95Ï\8dX\82µ\82Ä\83A\83b\83v\83\8d\81[\83h"
+#define MSGJPN065              "\96¼\91O\82ð\95Ï\8dX\82µ\82Ä\83_\83E\83\93\83\8d\81[\83h"
+#define MSGJPN066              "\8dí\8f\9c\81i\83\8d\81[\83J\83\8b\81j"
+#define MSGJPN067              "\8dí\8f\9c\81i\83z\83X\83g\81j"
+#define MSGJPN068              "\96¼\91O\95Ï\8dX\81i\83\8d\81[\83J\83\8b\81j"
+#define MSGJPN069              "\96¼\91O\95Ï\8dX\81i\83z\83X\83g\81j"
+#define MSGJPN070              "\83t\83H\83\8b\83_\8dì\90¬\81i\83\8d\81[\83J\83\8b\81j"
+#define MSGJPN071              "\83t\83H\83\8b\83_\8dì\90¬\81i\83z\83X\83g\81j"
+#define MSGJPN072              "\83t\83H\83\8b\83_\95Ï\8dX\81i\83\8d\81[\83J\83\8b\81j"
+#define MSGJPN073              "\83t\83H\83\8b\83_\95Ï\8dX\81i\83z\83X\83g\81j"
+#define MSGJPN074              "\83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\97e\97Ê\82ð\8cv\8eZ\82µ\82Ü\82·\81B"
+#define MSGJPN075              "\83z\83X\83g\91¤\82Ì\83t\83@\83C\83\8b\97e\97Ê\82ð\8cv\8eZ\82µ\82Ü\82·\81B"
+#define MSGJPN076              "\83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\97e\97Ê"
+#define MSGJPN077              "\83z\83X\83g\91¤\82Ì\83t\83@\83C\83\8b\97e\97Ê"
+#define MSGJPN078              "\83t\83H\83\8b\83_\8dì\90¬"
+#define MSGJPN079              "\83t\83H\83\8b\83_\8dì\90¬"
+#define MSGJPN080              "\83t\83H\83\8b\83_\8dí\8f\9c"
+#define MSGJPN081              "\83t\83@\83C\83\8b\8dí\8f\9c"
+#define MSGJPN082              "\83t\83H\83\8b\83_\8dì\90¬"
+#define MSGJPN083              "\83t\83H\83\8b\83_\8dí\8f\9c"
+#define MSGJPN084              "\83t\83@\83C\83\8b\8dí\8f\9c"
+#define MSGJPN085              "%s\82Æ\82¢\82¤\96¼\91O\82Ì\83t\83@\83C\83\8b\82Í\83_\83E\83\93\83\8d\81[\83h\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN086              "\83_\83E\83\93\83\8d\81[\83h"
+#define MSGJPN087              "\83t\83@\83C\83\8b\88ê\97\97\8eæ\93¾"
+#define MSGJPN088              "\83X\83L\83b\83v"
+#define MSGJPN089              "\83t\83@\83C\83\8b %s \82Í\83X\83L\83b\83v\82µ\82Ü\82·."
+#define MSGJPN090              "\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."
+#define MSGJPN091              "\83_\83E\83\93\83\8d\81[\83h\82Ì\82½\82ß\82É"
+#define MSGJPN092              "\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."
+#define MSGJPN093              "\83A\83h\83\8c\83X\82ª\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN094              "\8eó\90M\82Í\83^\83C\83\80\83A\83E\83g\82Å\8e¸\94s\82µ\82Ü\82µ\82½."
+#define MSGJPN095              "\83t\83@\83C\83\8b %s \82ª\8dì\90¬\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN096              "\83f\83B\83X\83N\82ª\82¢\82Á\82Ï\82¢\82Å\8f\91\82«\8d\9e\82ß\82Ü\82¹\82ñ."
+#define MSGJPN097              "\83t\83@\83C\83\8b\88ê\97\97\82Ì\8eæ\93¾\82ð\92\86\8e~\82µ\82Ü\82µ\82½."
+#define MSGJPN098              "\83t\83@\83C\83\8b\88ê\97\97"
+#define MSGJPN099              "\83_\83E\83\93\83\8d\81[\83h\82ð\92\86\8e~\82µ\82Ü\82µ\82½. (%d Sec. %d B/S)."
+#define MSGJPN100              "\83_\83E\83\93\83\8d\81[\83h\82ð\92\86\8e~\82µ\82Ü\82µ\82½."
+#define MSGJPN101              "\83t\83@\83C\83\8b\88ê\97\97\82Ì\8eæ\93¾\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½. (%d Bytes)"
+#define MSGJPN102              "\83_\83E\83\93\83\8d\81[\83h\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½. (%d Sec. %d B/S)."
+#define MSGJPN103              "\83_\83E\83\93\83\8d\81[\83h\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½. (%d Bytes)"
+#define MSGJPN104              "\83A\83b\83v\83\8d\81[\83h"
+#define MSGJPN105              "\83t\83@\83C\83\8b %s \82ª\93Ç\82Ý\8fo\82¹\82Ü\82¹\82ñ."
+#define MSGJPN106              "\83X\83L\83b\83v"
+#define MSGJPN107              "\83t\83@\83C\83\8b %s \82Í\83X\83L\83b\83v\82µ\82Ü\82·."
+#define MSGJPN108              "\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."
+#define MSGJPN109              "\83A\83b\83v\83\8d\81[\83h\82Ì\82½\82ß\82É"
+#define MSGJPN110              "\83R\83}\83\93\83h\82ª\8eó\82¯\95t\82¯\82ç\82ê\82Ü\82¹\82ñ."
+#define MSGJPN111              "\83A\83h\83\8c\83X\82ª\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN112              "\83t\83@\83C\83\8b %s \82ª\83I\81[\83v\83\93\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN113              "\83A\83b\83v\83\8d\81[\83h\82ð\92\86\8e~\82µ\82Ü\82µ\82½. (%d Sec. %d B/S)."
+#define MSGJPN114              "\83A\83b\83v\83\8d\81[\83h\82ð\92\86\8e~\82µ\82Ü\82µ\82½."
+#define MSGJPN115              "\83A\83b\83v\83\8d\81[\83h\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½. (%d Sec. %d B/S)."
+#define MSGJPN116              "\83A\83b\83v\83\8d\81[\83h\82Í\90³\8fí\8fI\97¹\82µ\82Ü\82µ\82½."
+#define MSGJPN117              "\8a®\97¹"
+#define MSGJPN118              "\92\86\8e~"
+#define MSGJPN119              "\83o\83C\83i\83\8a"
+#define MSGJPN120              "\83A\83X\83L\81["
+#define MSGJPN121              "\96³\95Ï\8a·"
+#define MSGJPN122              "JIS"
+#define MSGJPN123              "EUC"
+#define MSGJPN124              "\8dí\8f\9c\81i\83\8d\81[\83J\83\8b\81j"
+#define MSGJPN125              "\8dí\8f\9c\81i\83z\83X\83g\81j"
+#define MSGJPN126              "WS_FTP.INI\83t\83@\83C\83\8b"
+#define MSGJPN127              "\8aî\96{"
+#define MSGJPN128              "\8ag\92£"
+#define MSGJPN129              "\95\8e\9a\83R\81[\83h"
+#define MSGJPN130              "\83_\83C\83A\83\8b\83A\83b\83v"
+#define MSGJPN131              "\8d\82\93x"
+#define MSGJPN132              "\83z\83X\83g\82Ì\90Ý\92è"
+#define MSGJPN133              "GMT%+02d:00 (\93ú\96{)"
+#define MSGJPN134              "\8eg\97p\82µ\82È\82¢"
+#define MSGJPN135              "\8e©\93®\94F\8e¯"
+#define MSGJPN136              "OTP MD4, S/KEY"
+#define MSGJPN137              "OTP MD5"
+#define MSGJPN138              "OTP SHA-1"
+#define MSGJPN139              "\8e©\93®\94F\8e¯"
+#define MSGJPN140              "ACOS"
+#define MSGJPN141              "VAX VMS"
+#define MSGJPN142              "IRMX"
+#define MSGJPN143              "ACOS-4"
+#define MSGJPN144              "Stratus"
+#define MSGJPN145              "\83t\83H\83\8b\83_\82ð\95Ï\8dX\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN146              "\83t\83H\83\8b\83_\82ð\8dì\90¬\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN147              "\83t\83H\83\8b\83_\82ð\8dí\8f\9c\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN148              "\83t\83H\83\8b\83_\82ð\8dí\8f\9c\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN149              "\83t\83@\83C\83\8b\82ð\8dí\8f\9c\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN150              "\83t\83@\83C\83\8b\82ð\8dí\8f\9c\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN151              "\83t\83@\83C\83\8b\96¼\95Ï\8dX\82ª\82Å\82«\82Ü\82¹\82ñ."
+#define MSGJPN152              "\83e\83\93\83|\83\89\83\8a\83t\83H\83\8b\83_\81u%s\81v\82ª\82 \82è\82Ü\82¹\82ñ"
+#define MSGJPN153              "\83t\83H\83\8b\83_\81u%s\81v\82ð\8eg\97p\82µ\82Ü\82·"
+#define MSGJPN154              "\90Ú\91±"
+#define MSGJPN155              "\83N\83C\83b\83N\90Ú\91±"
+#define MSGJPN156              "\90Ø\92f"
+#define MSGJPN157              "\83_\83E\83\93\83\8d\81[\83h"
+#define MSGJPN158              "\83A\83b\83v\83\8d\81[\83h"
+#define MSGJPN159              "\83~\83\89\81[\83\8a\83\93\83O\83A\83b\83v\83\8d\81[\83h"
+#define MSGJPN160              "\8dí\8f\9c"
+#define MSGJPN161              "\96¼\91O\95Ï\8dX"
+#define MSGJPN162              "\83t\83H\83\8b\83_\8dì\90¬"
+#define MSGJPN163              "\88ê\82Â\8fã\82Ì\83t\83H\83\8b\83_\82Ö"
+#define MSGJPN164              "\83t\83H\83\8b\83_\82Ì\88Ú\93®"
+#define MSGJPN165              "\83A\83X\83L\81[\93]\91\97\83\82\81[\83h"
+#define MSGJPN166              "\83o\83C\83i\83\8a\93]\91\97\83\82\81[\83h"
+#define MSGJPN167              "\83t\83@\83C\83\8b\96¼\82Å\93]\91\97\83\82\81[\83h\90Ø\91Ö\82¦"
+#define MSGJPN168              "\95\\8e¦\82ð\8dX\90V"
+#define MSGJPN169              "\88ê\97\97"
+#define MSGJPN170              "\8fÚ\8d×"
+#define MSGJPN171              "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍEUC"
+#define MSGJPN172              "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍJIS"
+#define MSGJPN173              "\8a¿\8e\9a\83R\81[\83h\82Ì\95Ï\8a·\82È\82µ"
+#define MSGJPN174              "\94¼\8ap\83J\83i\82ð\91S\8ap\82É\95Ï\8a·"
+#define MSGJPN175              "\83t\83H\83\8b\83_\93¯\8e\9e\88Ú\93®"
+#define MSGJPN176              "\8eó\90M\92\86\8e~"
+#define MSGJPN177              "\90Ý\92è\96¼\81u%s\81v\82Í\82 \82è\82Ü\82¹\82ñ."
+#define MSGJPN178              "\90Ý\92è\96¼\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ."
+#define MSGJPN179              "\83z\83X\83g\96¼\82Æ\90Ý\92è\96¼\82Ì\97¼\95û\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82·."
+#define MSGJPN180              "\83I\83v\83V\83\87\83\93\81u%s\81v\82ª\8aÔ\88á\82Á\82Ä\82¢\82Ü\82·."
+#define MSGJPN181              "\83z\83X\83g\96¼\82Æ\90Ý\92è\96¼\82Ì\97¼\95û\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82·."
+#define MSGJPN182              "\83r\83\85\81[\83\8f\82Ì\8bN\93®\82É\8e¸\94s\82µ\82Ü\82µ\82½. (ERROR=%d)"
+#define MSGJPN183              "JRE32.DLL \96³\82µ"
+#define MSGJPN184              "JRE32.DLL Ver %x.%x (C) \8eR\93c\98a\95v\82³\82ñ"
+#define MSGJPN185              "\83t\83H\83\8b\83_\82ð\91I\91ð\82µ\82Ä\82­\82¾\82³\82¢"
+#define MSGJPN186              "\83\86\81[\83U"
+#define MSGJPN187              "\93]\91\97\82P"
+#define MSGJPN188              "\93]\91\97\82Q"
+#define MSGJPN189              "\93]\91\97\82R"
+#define MSGJPN190              "\83~\83\89\81[\83\8a\83\93\83O"
+#define MSGJPN191              "\91\80\8dì"
+#define MSGJPN192              "\95\\8e¦"
+#define MSGJPN193              "\90Ú\91±/\90Ø\92f"
+#define MSGJPN194              "FireWall"
+#define MSGJPN195              "\83c\81[\83\8b"
+#define MSGJPN196              "\83T\83E\83\93\83h"
+#define MSGJPN197              "\82»\82Ì\91¼"
+#define MSGJPN198              "\83I\83v\83V\83\87\83\93"
+#define MSGJPN199              "\83t\83@\83C\83\8b\96¼"
+#define MSGJPN200              "\83t\83@\83C\83\8b\96¼"
+#define MSGJPN201              "\91®\90«"
+#define MSGJPN202              "\83t\83@\83C\83\8b\96¼"
+#define MSGJPN203              "\83t\83@\83C\83\8b\96¼"
+#define MSGJPN204              "FW\83\86\81[\83U\96¼\81¨ FW\83p\83X\83\8f\81[\83h\81¨ SITE \83z\83X\83g\96¼"
+#define MSGJPN205              "FW\83\86\81[\83U\96¼\81¨ FW\83p\83X\83\8f\81[\83h\81¨ USER \83\86\81[\83U\96¼@\83z\83X\83g\96¼"
+#define MSGJPN206              "FW\83\86\81[\83U\96¼\81¨ FW\83p\83X\83\8f\81[\83h"
+#define MSGJPN207              "USER \83\86\81[\83U\96¼@\83z\83X\83g\96¼"
+#define MSGJPN208              "OPEN \83z\83X\83g\96¼"
+#define MSGJPN209              "SOCKS4"
+#define MSGJPN210              "SOCKS5 (\94F\8fØ\82È\82µ)"
+#define MSGJPN211              "SOCKS5 (\83\86\81[\83U\96¼\81A\83p\83X\83\8f\81[\83h\94F\8fØ)"
+#define MSGJPN212              "\8eg\97p\82µ\82È\82¢"
+#define MSGJPN213              "\8e©\93®\94F\8e¯"
+#define MSGJPN214              "OTP MD4,S/KEY"
+#define MSGJPN215              "OTP MD5"
+#define MSGJPN216              "OTP SHA-1"
+#define MSGJPN217              "\83r\83\85\81[\83\8f\82Ì\91I\91ð"
+#define MSGJPN218              "\8eÀ\8ds\83t\83@\83C\83\8b\0*.exe;*.com;*.bat\0\91S\82Ä\82Ì̧²Ù\0*\0"
+#define MSGJPN219              "Wave\83t\83@\83C\83\8b"
+#define MSGJPN220              "\83_\83C\83A\83\8b\83A\83b\83v\82ð\90Ø\92f\82µ\82Ä\82¢\82Ü\82·."
+#define MSGJPN221              "\83_\83C\83A\83\8b\83A\83b\83v\82Å\90Ú\91±\82µ\82Ä\82¢\82Ü\82·."
+#define MSGJPN222              "\83_\83C\83A\83\8b\83A\83b\83v\82ª\8eg\82¦\82Ü\82¹\82ñ(RasDialDlg)"
+#define MSGJPN223              "%s \82É\90Ú\91±\82µ\82Ä\82¢\82Ü\82·..."
+#define MSGJPN224              "\95s\96¾\82È\83G\83\89\81["
+#define MSGJPN225              "\83_\83C\83A\83\8b\83A\83b\83v\90Ú\91±"
+#define MSGJPN226              "\83|\81[\83g\82ð\8aJ\82¢\82Ä\82¢\82Ü\82·..."
+#define MSGJPN227              "\83|\81[\83g\82ª\8aJ\82©\82ê\82Ü\82µ\82½"
+#define MSGJPN228              "\83_\83C\83A\83\8b\92\86..."
+#define MSGJPN229              "\83_\83C\83A\83\8b\8a®\97¹"
+#define MSGJPN230              "\91S\83f\83o\83C\83X\82ª\90Ú\91±\82³\82ê\82Ü\82µ\82½"
+#define MSGJPN231              "\83\86\81[\83U\96¼\82Æ\83p\83X\83\8f\81[\83h\82ð\8c\9f\8fØ\92\86..."
+#define MSGJPN232              "\8dÄ\8c\9f\8fØ\92\86..."
+#define MSGJPN233              "\83p\83X\83\8f\81[\83h\82ð\95Ï\8dX\82µ\82Ä\89º\82³\82¢"
+#define MSGJPN234              "\8c\9f\8fØ\82ª\8fI\97¹\82µ\82Ü\82µ\82½"
+#define MSGJPN235              "\90Ú\91±\82µ\82Ü\82µ\82½"
+#define MSGJPN236              "\90Ø\92f\82µ\82Ü\82µ\82½"
+#define MSGJPN237              "\90Ú\91±\8f\88\97\9d\92\86..."
+#define MSGJPN238              "%s \82Ö\82Ì\90Ú\91±"
+#define MSGJPN239              "# \82±\82Ì\83t\83@\83C\83\8b\82Í\95Ò\8fW\82µ\82È\82¢\82Å\82­\82¾\82³\82¢\81B\n"
+#define MSGJPN240              "INI\83t\83@\83C\83\8b\82É\90Ý\92è\82ª\95Û\91\82Å\82«\82Ü\82¹\82ñ"
+#define MSGJPN241              "\91\97\90M\82Í\83^\83C\83\80\83A\83E\83g\82Å\8e¸\94s\82µ\82Ü\82µ\82½."
+#define MSGJPN242              "\8eó\90M\82Í\83^\83C\83\80\83A\83E\83g\82Å\8e¸\94s\82µ\82Ü\82µ\82½."
+#define MSGJPN243              "\8eó\90M\82Í\83^\83C\83\80\83A\83E\83g\82Å\8e¸\94s\82µ\82Ü\82µ\82½."
+#define MSGJPN244              "\8cÅ\92è\92·\82Ì\8eó\90M\82ª\8e¸\94s\82µ\82Ü\82µ\82½"
+#define MSGJPN245              "\83\8d\81[\83J\83\8b"
+#define MSGJPN246              "\83z\83X\83g"
+#define MSGJPN247              "\91I\91ð%d\8cÂ\81i%s\81j"
+#define MSGJPN248              "\83\8d\81[\83J\83\8b\8bó %s"
+#define MSGJPN249              "\93]\91\97\91Ò\82¿\83t\83@\83C\83\8b%d\8cÂ"
+#define MSGJPN250              "\8eó\90M\92\86 %s"
+#define MSGJPN251              "Err\81F\83V\81[\83h\95\8e\9a\97ñ"
+#define MSGJPN252              "Err\81F\83V\81[\83h\95\8e\9a\97ñ"
+#define MSGJPN253              "Err\81F\83V\81[\83P\83\93\83X\94Ô\8d\86"
+#define MSGJPN254              "\82l\82\82o\83S\83V\83b\83N"
+#define MSGJPN255              "\83A\83b\83v\83\8d\81[\83h(&U)"
+#define MSGJPN256              "\96¼\91O\82ð\95Ï\82¦\82Ä\83A\83b\83v\83\8d\81[\83h(&P)..."
+#define MSGJPN257              "\91S\82Ä\82ð\83A\83b\83v\83\8d\81[\83h"
+#define MSGJPN258              "\8dí\8f\9c(&R)"
+#define MSGJPN259              "\96¼\91O\95Ï\8dX(&N)..."
+#define MSGJPN260              "\83t\83H\83\8b\83_\8dì\90¬(&K)..."
+#define MSGJPN261              "\83t\83@\83C\83\8b\97e\97Ê\8cv\8eZ(&Z)"
+#define MSGJPN262              "\8dÅ\90V\82Ì\8fî\95ñ\82É\8dX\90V(&F)"
+#define MSGJPN263              "\83_\83E\83\93\83\8d\81[\83h(&D)"
+#define MSGJPN264              "\96¼\91O\82ð\95Ï\82¦\82Ä\83_\83E\83\93\83\8d\81[\83h(&W)..."
+#define MSGJPN265              "\83t\83@\83C\83\8b\82Æ\82µ\82Ä\83_\83E\83\93\83\8d\81[\83h(&I)"
+#define MSGJPN266              "\91S\82Ä\82ð\83_\83E\83\93\83\8d\81[\83h"
+#define MSGJPN267              "\8dí\8f\9c(&R)"
+#define MSGJPN268              "\96¼\91O\95Ï\8dX(&N)..."
+#define MSGJPN269              "\91®\90«\95Ï\8dX(&A)..."
+#define MSGJPN270              "\83t\83H\83\8b\83_\8dì\90¬(&K)..."
+#define MSGJPN271              "URL\82ð\83N\83\8a\83b\83v\83{\81[\83h\82Ö\83R\83s\81[(&C)"
+#define MSGJPN272              "\83t\83@\83C\83\8b\97e\97Ê\8cv\8eZ(&Z)"
+#define MSGJPN273              "\8dÅ\90V\82Ì\8fî\95ñ\82É\8dX\90V(&F)"
+#define MSGJPN274              "\8aJ\82­(&O)"
+#define MSGJPN275              "%s\82Å\8aJ\82­(&%d)"
+#define MSGJPN276              "WS_FTP.INI\0ws_ftp.ini\0\91S\82Ä\82Ì̧²Ù\0*\0"
+#define MSGJPN277              "Wave\83t\83@\83C\83\8b\0*.wav\0\91S\82Ä\82Ì\83t\83@\83C\83\8b\0*\0"
+#define MSGJPN278              "\97\9d\97R\81F%s"
+#define MSGJPN279              "Listen\83\\83P\83b\83g\82ª\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ"
+#define MSGJPN280              "Data\83\\83P\83b\83g\82ª\8eæ\93¾\82Å\82«\82Ü\82¹\82ñ"
+#define MSGJPN281              "PASV\83\82\81[\83h\82Å\90Ú\91±\82Å\82«\82Ü\82¹\82ñ"
+#define MSGJPN282              "INI\83t\83@\83C\83\8b\96¼\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ"
+#define MSGJPN283              "INI\83t\83@\83C\83\8b\8ew\92è\81F"
+#define MSGJPN284              "http://www2.biglobe.ne.jp/~sota/"
+#define MSGJPN285              "\83\8c\83W\83X\83g\83\8a\83G\83f\83B\83^\82ª\8bN\93®\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½"
+#define MSGJPN286              "\90Ý\92è\83t\83@\83C\83\8b\82Ì\95Û\91¶"
+#define MSGJPN287              "Reg\83t\83@\83C\83\8b\0*.reg\0\91S\82Ä\82Ì\83t\83@\83C\83\8b\0*\0"
+#define MSGJPN288              "INI\83t\83@\83C\83\8b\0*.ini\0\91S\82Ä\82Ì\83t\83@\83C\83\8b\0*\0"
+#define MSGJPN289              "Agilent Logic analyzer"
+#define MSGJPN290              "Reg\83t\83@\83C\83\8b\0*.reg\0INI\83t\83@\83C\83\8b\0*.ini\0\91S\82Ä\82Ì\83t\83@\83C\83\8b\0*\0"
+#define MSGJPN291              "\90Ý\92è\82ð\83t\83@\83C\83\8b\82©\82ç\95\9c\8c³"
+#define MSGJPN292              "\90Ý\92è\82ð\83t\83@\83C\83\8b\82©\82ç\95\9c\8c³\82·\82é\82½\82ß\82É\82Í\81AFFFTP\82ð\8dÄ\8bN\93®\82µ\82Ä\82­\82¾\82³\82¢\81B"
+#define MSGJPN293              "\90Ý\92è\83t\83@\83C\83\8b\82Í\8ag\92£\8eq\82ª.reg\82©.ini\82Å\82È\82¯\82ê\82Î\82È\82è\82Ü\82¹\82ñ\81B"
+#define MSGJPN294              "USER FW\83\86\81[\83U\96¼:FW\83p\83X\83\8f\81[\83h@\83z\83X\83g\96¼"
+#define MSGJPN295              "\83V\83o\83\\83N WL"
+#define MSGJPN296              "\93Ç\82Ý\8eæ\82è\90ê\97p\83t\83@\83C\83\8b\82Å\82·\81B\93Ç\82Ý\8eæ\82è\90ê\97p\91®\90«\82ð\89ð\8f\9c\82µ\82Ü\82·\82©\81H"
+#define MSGJPN297              "%s \82Í\95s\90³\82È\83t\83@\83C\83\8b\96¼\82Å\82·\81B\r\n\82±\82Ì\83t\83@\83C\83\8b\82Í\83_\83E\83\93\83\8d\81[\83h\82³\82ê\82Ü\82¹\82ñ\81B"
+#define MSGJPN298              "OLE\82Ì\8f\89\8aú\89»\82É\8e¸\94s\82µ\82Ü\82µ\82½\81B"
+#define MSGJPN299              "\83R\83}\83\93\83h\83\89\83C\83\93\82É\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ"
+#define MSGJPN300              "\83f\83t\83H\83\8b\83g\82Ì\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\8eg\82í\82ê\82Ü\82·\81D\r\n\83}\83\8b\83E\83F\83A\82Ì\8dU\8c\82\82ð\96h\82®\82½\82ß\81C\8cÅ\97L\82Ì\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ð\90Ý\92è\82·\82é\82±\82Æ\82ð\82¨\82·\82·\82ß\82µ\82Ü\82·"
+#define MSGJPN301              "\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\90Ý\92è\82Æ\88ê\92v\82µ\82Ü\82¹\82ñ\81D\88À\91S\82Ì\82½\82ß\90Ý\92è\82Ì\95Û\91\82ð\8ds\82¢\82Ü\82¹\82ñ\81D"
+#define MSGJPN302              "\8am\94F\97p\83f\81[\83^\82ª\89ó\82ê\82Ä\82¢\82é\82½\82ß\81C\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82Ì\90³\93\96\90«\82ð\8am\94F\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½\81D"
+#define MSGJPN303              "\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ð\95Ï\8dX\82µ\82Ü\82µ\82½"
+#define MSGJPN304              "\8ew\92è\82³\82ê\82½\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\93o\98^\82³\82ê\82½\82à\82Ì\82Æ\88ê\92v\82µ\82Ü\82¹\82ñ\81D\r\n\8dÄ\93x\93ü\97Í\82µ\82Ü\82·\82©\81H\r\n\81u\82¢\82¢\82¦\81v\82ð\91I\82Ô\82Æ\8bL\89¯\82³\82ê\82½FTP\83p\83X\83\8f\81[\83h\82Í\97\98\97p\82Å\82«\82Ü\82¹\82ñ\81D"
+#define MSGJPN305              "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍShift_JIS"
+#define MSGJPN306              "\83z\83X\83g\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍUTF-8"
+#define MSGJPN307              "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍShift_JIS"
+#define MSGJPN308              "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍEUC"
+#define MSGJPN309              "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍJIS"
+#define MSGJPN310              "\83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ÍUTF-8"
index a90237c..46cf59a 100644 (file)
--- a/remote.c
+++ b/remote.c
@@ -1307,8 +1307,20 @@ int ChangeFnameRemote2Local(char *Fname, int Max)
                cInfo.Buf = Buf;\r
                cInfo.BufSize = Max - 1;\r
 \r
+               // \82±\82±\82Å\91S\82ÄUTF-8\82Ö\95Ï\8a·\82·\82é\r
+               // TODO: SJIS\88È\8aO\82à\92¼\90ÚUTF-8\82Ö\95Ï\8a·\r
                switch(AskHostNameKanji())\r
                {\r
+                       case KANJI_SJIS :\r
+                               ConvSJIStoUTF8N(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Fname, Buf);\r
+                               Pos = strchr(Fname, NUL);\r
+                               FlushRestData(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Pos, Buf);\r
+                               break;\r
+\r
                        case KANJI_JIS :\r
                                ConvJIStoSJIS(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
@@ -1317,6 +1329,20 @@ int ChangeFnameRemote2Local(char *Fname, int Max)
                                FlushRestData(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Pos, Buf);\r
+                               // TODO\r
+                               InitCodeConvInfo(&cInfo);\r
+                               cInfo.KanaCnv = NO;\r
+                               cInfo.Str = Pos;\r
+                               cInfo.StrLen = strlen(Pos);\r
+                               cInfo.Buf = Buf;\r
+                               cInfo.BufSize = Max - 1;\r
+                               ConvSJIStoUTF8N(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Fname, Buf);\r
+                               Pos = strchr(Fname, NUL);\r
+                               FlushRestData(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Pos, Buf);\r
                                break;\r
 \r
                        case KANJI_EUC :\r
@@ -1327,6 +1353,20 @@ int ChangeFnameRemote2Local(char *Fname, int Max)
                                FlushRestData(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Pos, Buf);\r
+                               // TODO\r
+                               InitCodeConvInfo(&cInfo);\r
+                               cInfo.KanaCnv = NO;\r
+                               cInfo.Str = Pos;\r
+                               cInfo.StrLen = strlen(Pos);\r
+                               cInfo.Buf = Buf;\r
+                               cInfo.BufSize = Max - 1;\r
+                               ConvSJIStoUTF8N(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Fname, Buf);\r
+                               Pos = strchr(Fname, NUL);\r
+                               FlushRestData(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Pos, Buf);\r
                                break;\r
 \r
                        case KANJI_SMB_HEX :\r
@@ -1338,10 +1378,14 @@ int ChangeFnameRemote2Local(char *Fname, int Max)
                                FlushRestData(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Pos, Buf);\r
-                               break;\r
-\r
-                       case KANJI_UTF8N :\r
-                               ConvUTF8NtoSJIS(&cInfo);\r
+                               // TODO\r
+                               InitCodeConvInfo(&cInfo);\r
+                               cInfo.KanaCnv = NO;\r
+                               cInfo.Str = Pos;\r
+                               cInfo.StrLen = strlen(Pos);\r
+                               cInfo.Buf = Buf;\r
+                               cInfo.BufSize = Max - 1;\r
+                               ConvSJIStoUTF8N(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Fname, Buf);\r
                                Pos = strchr(Fname, NUL);\r
@@ -1349,6 +1393,16 @@ int ChangeFnameRemote2Local(char *Fname, int Max)
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Pos, Buf);\r
                                break;\r
+\r
+//                     case KANJI_UTF8N :\r
+//                             ConvUTF8NtoSJIS(&cInfo);\r
+//                             *(Buf + cInfo.OutLen) = NUL;\r
+//                             strcpy(Fname, Buf);\r
+//                             Pos = strchr(Fname, NUL);\r
+//                             FlushRestData(&cInfo);\r
+//                             *(Buf + cInfo.OutLen) = NUL;\r
+//                             strcpy(Pos, Buf);\r
+//                             break;\r
                }\r
                free(Buf);\r
                Sts = SUCCESS;\r
@@ -1385,9 +1439,35 @@ int ChangeFnameLocal2Remote(char *Fname, int Max)
                cInfo.Buf = Buf;\r
                cInfo.BufSize = Max - 1;\r
 \r
+               // \82±\82±\82Å\91S\82ÄUTF-8\82©\82ç\95Ï\8a·\82·\82é\r
+               // TODO: SJIS\88È\8aO\82à\92¼\90ÚUTF-8\82©\82ç\95Ï\8a·\r
                switch(AskHostNameKanji())\r
                {\r
+                       case KANJI_SJIS :\r
+                               ConvUTF8NtoSJIS(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Fname, Buf);\r
+                               Pos = strchr(Fname, NUL);\r
+                               FlushRestData(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Pos, Buf);\r
+                               break;\r
+\r
                        case KANJI_JIS :\r
+                               ConvUTF8NtoSJIS(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Fname, Buf);\r
+                               Pos = strchr(Fname, NUL);\r
+                               FlushRestData(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Pos, Buf);\r
+                               // TODO\r
+                               InitCodeConvInfo(&cInfo);\r
+                               cInfo.KanaCnv = NO;\r
+                               cInfo.Str = Pos;\r
+                               cInfo.StrLen = strlen(Pos);\r
+                               cInfo.Buf = Buf;\r
+                               cInfo.BufSize = Max - 1;\r
                                ConvSJIStoJIS(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Fname, Buf);\r
@@ -1398,6 +1478,20 @@ int ChangeFnameLocal2Remote(char *Fname, int Max)
                                break;\r
 \r
                        case KANJI_EUC :\r
+                               ConvUTF8NtoSJIS(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Fname, Buf);\r
+                               Pos = strchr(Fname, NUL);\r
+                               FlushRestData(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Pos, Buf);\r
+                               // TODO\r
+                               InitCodeConvInfo(&cInfo);\r
+                               cInfo.KanaCnv = NO;\r
+                               cInfo.Str = Pos;\r
+                               cInfo.StrLen = strlen(Pos);\r
+                               cInfo.Buf = Buf;\r
+                               cInfo.BufSize = Max - 1;\r
                                ConvSJIStoEUC(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Fname, Buf);\r
@@ -1408,6 +1502,20 @@ int ChangeFnameLocal2Remote(char *Fname, int Max)
                                break;\r
 \r
                        case KANJI_SMB_HEX :\r
+                               ConvUTF8NtoSJIS(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Fname, Buf);\r
+                               Pos = strchr(Fname, NUL);\r
+                               FlushRestData(&cInfo);\r
+                               *(Buf + cInfo.OutLen) = NUL;\r
+                               strcpy(Pos, Buf);\r
+                               // TODO\r
+                               InitCodeConvInfo(&cInfo);\r
+                               cInfo.KanaCnv = NO;\r
+                               cInfo.Str = Pos;\r
+                               cInfo.StrLen = strlen(Pos);\r
+                               cInfo.Buf = Buf;\r
+                               cInfo.BufSize = Max - 1;\r
                                ConvSJIStoSMB_HEX(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Fname, Buf);\r
@@ -1418,17 +1526,21 @@ int ChangeFnameLocal2Remote(char *Fname, int Max)
                                break;\r
 \r
                        case KANJI_SMB_CAP :\r
-                               ConvSJIStoSMB_CAP(&cInfo);\r
+                               ConvUTF8NtoSJIS(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Fname, Buf);\r
                                Pos = strchr(Fname, NUL);\r
                                FlushRestData(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Pos, Buf);\r
-                               break;\r
-\r
-                       case KANJI_UTF8N :\r
-                               ConvSJIStoUTF8N(&cInfo);\r
+                               // TODO\r
+                               InitCodeConvInfo(&cInfo);\r
+                               cInfo.KanaCnv = NO;\r
+                               cInfo.Str = Pos;\r
+                               cInfo.StrLen = strlen(Pos);\r
+                               cInfo.Buf = Buf;\r
+                               cInfo.BufSize = Max - 1;\r
+                               ConvSJIStoSMB_CAP(&cInfo);\r
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Fname, Buf);\r
                                Pos = strchr(Fname, NUL);\r
@@ -1436,6 +1548,16 @@ int ChangeFnameLocal2Remote(char *Fname, int Max)
                                *(Buf + cInfo.OutLen) = NUL;\r
                                strcpy(Pos, Buf);\r
                                break;\r
+\r
+//                     case KANJI_UTF8N :\r
+//                             ConvSJIStoUTF8N(&cInfo);\r
+//                             *(Buf + cInfo.OutLen) = NUL;\r
+//                             strcpy(Fname, Buf);\r
+//                             Pos = strchr(Fname, NUL);\r
+//                             FlushRestData(&cInfo);\r
+//                             *(Buf + cInfo.OutLen) = NUL;\r
+//                             strcpy(Pos, Buf);\r
+//                             break;\r
                }\r
                free(Buf);\r
                Sts = SUCCESS;\r
index 2cc48a7..b216a40 100644 (file)
@@ -90,6 +90,9 @@ static int TmpTransMode;
 static int TmpHostKanjiCode;\r
 static int TmpHostKanaCnv;\r
 \r
+// TODO: \83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ðShift_JIS\88È\8aO\82É\82à\91Î\89\9e\r
+static int TmpLocalKanjiCode;\r
+\r
 static int TmpLocalFileSort;\r
 static int TmpLocalDirSort;\r
 static int TmpRemoteFileSort;\r
@@ -133,8 +136,15 @@ static TBBUTTON TbarDataMain[] = {
        { 8,  MENU_BINARY, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 17, MENU_AUTO, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 27, MENU_L_KNJ_SJIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 20, MENU_L_KNJ_EUC, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 21, MENU_L_KNJ_JIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 28, MENU_L_KNJ_UTF8N, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 27, MENU_KNJ_SJIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 20, MENU_KNJ_EUC, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 21, MENU_KNJ_JIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 28, MENU_KNJ_UTF8N, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 22, MENU_KNJ_NONE, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
        { 23, MENU_KANACNV, TBSTATE_ENABLED, TBSTYLE_CHECK, 0, 0 },\r
@@ -185,7 +195,8 @@ static const int HideMenus[] = {
        MENU_HELP,                      MENU_HELP_TROUBLE,      MENU_ABOUT,\r
        MENU_REGINIT,\r
        MENU_TEXT,                      MENU_BINARY,            MENU_AUTO,\r
-       MENU_KNJ_EUC,           MENU_KNJ_JIS,           MENU_KNJ_NONE,\r
+       MENU_KNJ_SJIS,          MENU_KNJ_EUC,           MENU_KNJ_JIS,           MENU_KNJ_UTF8N,         MENU_KNJ_NONE,\r
+       MENU_L_KNJ_SJIS,        MENU_L_KNJ_EUC,         MENU_L_KNJ_JIS,         MENU_L_KNJ_UTF8N,\r
        MENU_KANACNV,\r
        MENU_LOCAL_UPDIR,       MENU_LOCAL_CHDIR,\r
        MENU_REMOTE_UPDIR,      MENU_REMOTE_CHDIR,\r
@@ -821,6 +832,7 @@ void SetTransferTypeImm(int Mode)
 {\r
        TmpTransMode = Mode;\r
        HideHostKanjiButton();\r
+       HideLocalKanjiButton();\r
        return;\r
 }\r
 \r
@@ -851,6 +863,7 @@ void SetTransferType(int Type)
                        break;\r
        }\r
        HideHostKanjiButton();\r
+       HideLocalKanjiButton();\r
        return;\r
 }\r
 \r
@@ -992,6 +1005,11 @@ void SetHostKanjiCode(int Type)
 {\r
        switch(Type)\r
        {\r
+               // UTF-8\91Î\89\9e\r
+               case MENU_KNJ_SJIS :\r
+                       TmpHostKanjiCode = KANJI_SJIS;\r
+                       break;\r
+\r
                case MENU_KNJ_EUC :\r
                        TmpHostKanjiCode = KANJI_EUC;\r
                        break;\r
@@ -1000,6 +1018,10 @@ void SetHostKanjiCode(int Type)
                        TmpHostKanjiCode = KANJI_JIS;\r
                        break;\r
 \r
+               case MENU_KNJ_UTF8N :\r
+                       TmpHostKanjiCode = KANJI_UTF8N;\r
+                       break;\r
+\r
                default :\r
                        TmpHostKanjiCode = KANJI_NOCNV;\r
                        break;\r
@@ -1023,6 +1045,11 @@ void DispHostKanjiCode(void)
 {\r
        switch(TmpHostKanjiCode)\r
        {\r
+               // UTF-8\91Î\89\9e\r
+               case KANJI_SJIS :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_SJIS, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
                case KANJI_EUC :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_EUC, MAKELONG(TRUE, 0));\r
                        break;\r
@@ -1031,6 +1058,10 @@ void DispHostKanjiCode(void)
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_JIS, MAKELONG(TRUE, 0));\r
                        break;\r
 \r
+               case KANJI_UTF8N :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
                default :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_NONE, MAKELONG(TRUE, 0));\r
                        break;\r
@@ -1067,16 +1098,21 @@ void HideHostKanjiButton(void)
 {\r
        switch(TmpTransMode)\r
        {\r
+               // UTF-8\91Î\89\9e\r
                case TYPE_I : \r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_SJIS, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_EUC, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_JIS, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_UTF8N, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_NONE, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
                        break;\r
 \r
                default :\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_SJIS, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_EUC, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_JIS, MAKELONG(TRUE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_NONE, MAKELONG(TRUE, 0));\r
                        if(TmpHostKanjiCode != KANJI_NOCNV)\r
                                SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(TRUE, 0));\r
@@ -1088,6 +1124,99 @@ void HideHostKanjiButton(void)
 }\r
 \r
 \r
+// \83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\r
+// \83e\83L\83X\83g\83\82\81[\83h\93]\91\97\8e\9e\82É\8eg\97p\r
+// \83z\83X\83g\91¤\82ª\96³\95Ï\8a·\82Ì\8e\9e\82Í\83\8d\81[\83J\83\8b\82à\96³\95Ï\8a·\r
+\r
+void SetLocalKanjiCodeImm(int Mode)\r
+{\r
+       TmpLocalKanjiCode = Mode;\r
+       DispLocalKanjiCode();\r
+       HideLocalKanjiButton();\r
+       return;\r
+}\r
+\r
+void SetLocalKanjiCode(int Type)\r
+{\r
+       switch(Type)\r
+       {\r
+               // UTF-8\91Î\89\9e\r
+               case MENU_L_KNJ_SJIS :\r
+                       TmpLocalKanjiCode = KANJI_SJIS;\r
+                       break;\r
+\r
+               case MENU_L_KNJ_EUC :\r
+//                     TmpLocalKanjiCode = KANJI_EUC;\r
+                       break;\r
+\r
+               case MENU_L_KNJ_JIS :\r
+//                     TmpLocalKanjiCode = KANJI_JIS;\r
+                       break;\r
+\r
+               case MENU_L_KNJ_UTF8N :\r
+                       TmpLocalKanjiCode = KANJI_UTF8N;\r
+                       break;\r
+       }\r
+       DispLocalKanjiCode();\r
+       HideLocalKanjiButton();\r
+       return;\r
+}\r
+\r
+void DispLocalKanjiCode(void)\r
+{\r
+       switch(TmpLocalKanjiCode)\r
+       {\r
+               // UTF-8\91Î\89\9e\r
+               case KANJI_SJIS :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_SJIS, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
+               case KANJI_EUC :\r
+//                     SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_EUC, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
+               case KANJI_JIS :\r
+//                     SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_JIS, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
+               case KANJI_UTF8N :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
+                       break;\r
+       }\r
+       return;\r
+}\r
+\r
+int AskLocalKanjiCode(void)\r
+{\r
+       return(TmpLocalKanjiCode);\r
+}\r
+\r
+void HideLocalKanjiButton(void)\r
+{\r
+       switch(TmpTransMode)\r
+       {\r
+               // UTF-8\91Î\89\9e\r
+               case TYPE_I : \r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_SJIS, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(FALSE, 0));\r
+                       break;\r
+\r
+               default :\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_SJIS, MAKELONG(TRUE, 0));\r
+//                     SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(TRUE, 0));\r
+//                     SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(TRUE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
+                       // TODO: \8c»\8dÝEUC\82ÆJIS\82Í\94ñ\91Î\89\9e\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(FALSE, 0));\r
+                       break;\r
+       }\r
+       return;\r
+}\r
+\r
+\r
 /*===================================================\r
 *                      \94¼\8ap\95Ï\8a·\83\82\81[\83h\r
 *===================================================*/\r