OSDN Git Service

Add support for MLSD responses from some broken hosts.
[ffftp/ffftp.git] / toolmenu.c
index 5949215..217e2c9 100644 (file)
@@ -1,6 +1,6 @@
-/*=============================================================================\r
+/*=============================================================================\r
 *\r
-*                                                              \83c\81[\83\8b\83o\81[\82Æ\83\81\83j\83\85\81[\r
+*                                                              ツールバーとメニュー\r
 *\r
 ===============================================================================\r
 / Copyright (C) 1997-2007 Sota. All rights reserved.\r
@@ -28,6 +28,8 @@
 /============================================================================*/\r
 \r
 #define  STRICT\r
+// IPv6対応\r
+#include <winsock2.h>\r
 #include <windows.h>\r
 #include <stdio.h>\r
 #include <stdlib.h>\r
 #include <windowsx.h>\r
 #include <commctrl.h>\r
 #include <stdarg.h>\r
-#include <winsock.h>\r
+// IPv6対応\r
+//#include <winsock.h>\r
 \r
 #include "common.h"\r
 #include "resource.h"\r
 \r
 \r
-/*===== \83v\83\8d\83g\83^\83C\83v =====*/\r
+/*===== プロトタイプ =====*/\r
 \r
 static void AddOpenMenu(HMENU hMenu, UINT Flg);\r
 static LRESULT CALLBACK HistEditBoxWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);\r
 \r
-/* 2007/09/21 sunasunamix  \82±\82±\82©\82ç *********************/\r
+/* 2007/09/21 sunasunamix  ここから *********************/\r
 static LRESULT CALLBACK CountermeasureTbarMainProc(HWND hWnd,UINT uMessage,WPARAM wParam,LPARAM lParam);\r
 static LRESULT CALLBACK CountermeasureTbarLocalProc(HWND hWnd,UINT uMessage,WPARAM wParam,LPARAM lParam);\r
 static LRESULT CALLBACK CountermeasureTbarRemoteProc(HWND hWnd,UINT uMessage,WPARAM wParam,LPARAM lParam);\r
-/********************************************* \82±\82±\82Ü\82Å */\r
+/********************************************* ここまで */\r
 \r
 \r
-/*===== \8aO\95\94\8eQ\8fÆ =====*/\r
+/*===== 外部参照 =====*/\r
 \r
 extern int SepaWidth;\r
 extern int RemoteWidth;\r
 \r
 extern int CancelFlg;\r
 \r
-/* \90Ý\92è\92l */\r
+/* 設定値 */\r
 extern int DotFile;\r
 extern char AsciiExt[ASCII_EXT_LEN+1];\r
 extern int TransMode;\r
@@ -72,7 +75,7 @@ extern char ViewerName[VIEWERS][FMAX_PATH+1];
 extern int TransMode;\r
 extern int SortSave;\r
 \r
-/*===== \83\8d\81[\83J\83\8b\82È\83\8f\81[\83N =====*/\r
+/*===== ローカルなワーク =====*/\r
 \r
 static HWND hWndTbarMain = NULL;\r
 static HWND hWndTbarLocal = NULL;\r
@@ -90,7 +93,7 @@ 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
+// TODO: ローカルの漢字コードをShift_JIS以外にも対応\r
 static int TmpLocalKanjiCode;\r
 \r
 static int TmpLocalFileSort;\r
@@ -103,79 +106,81 @@ static int SyncMove = NO;
 static int HideUI = NO;\r
 \r
 \r
-/* 2007/09/21 sunasunamix  \82±\82±\82©\82ç *********************/\r
+/* 2007/09/21 sunasunamix  ここから *********************/\r
 static WNDPROC pOldTbarMainProc   = NULL;\r
 static WNDPROC pOldTbarLocalProc  = NULL;\r
 static WNDPROC pOldTbarRemoteProc = NULL;\r
-/********************************************* \82±\82±\82Ü\82Å */\r
+/********************************************* ここまで */\r
 \r
 \r
-/* \88È\91O\81A\83R\83\93\83{\83{\83b\83N\83X\82É\83J\83\8c\83\93\83g\83t\83H\83\8b\83_\82ð\89¯\82¦\82³\82¹\82Ä\82¢\82½\97¬\82ê\82Å */\r
-/* \82±\82Ì\83t\83@\83C\83\8b\82Å\83J\83\8c\83\93\83g\83t\83H\83\8b\83_\82ð\89¯\82¦\82³\82¹\82é */\r
+/* 以前、コンボボックスにカレントフォルダを憶えさせていた流れで */\r
+/* このファイルでカレントフォルダを憶えさせる */\r
 static char LocalCurDir[FMAX_PATH+1];\r
 static char RemoteCurDir[FMAX_PATH+1];\r
 \r
 \r
-/* \83\81\83C\83\93\82Ì\83c\81[\83\8b\83o\81[ */\r
+/* メインのツールバー */\r
 static TBBUTTON TbarDataMain[] = {\r
-       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 0,  MENU_CONNECT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
        { 16, MENU_QUICK, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
        { 1,  MENU_DISCONNECT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
-       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 2,  MENU_DOWNLOAD, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
        { 3,  MENU_UPLOAD, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
-       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 24, MENU_MIRROR_UPLOAD, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
-       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 4,  MENU_DELETE, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
        { 5,  MENU_RENAME, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
        { 6,  MENU_MKDIR, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
-       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 7,  MENU_TEXT, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 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
+       { 0,  0, TBSTATE_ENABLED, BTNS_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
+       { 29, MENU_L_KNJ_UTF8BOM, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_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
+       { 29, MENU_KNJ_UTF8BOM, 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
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 23, MENU_KANACNV, TBSTATE_ENABLED, TBSTYLE_CHECK, 0, 0 },\r
-       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 15, MENU_REFRESH, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
-       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 18, MENU_LIST, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 19, MENU_REPORT, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
-       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 25, MENU_SYNC, TBSTATE_ENABLED, TBSTYLE_CHECK, 0, 0 },\r
-       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 26, MENU_ABORT, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 }\r
 };\r
 \r
-/* \83\8d\81[\83J\83\8b\91¤\82Ì\83c\81[\83\8b\83o\81[ */\r
+/* ローカル側のツールバー */\r
 static TBBUTTON TbarDataLocal[] = {\r
-       { 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0, 0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 0, MENU_LOCAL_UPDIR, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
        { 1, MENU_LOCAL_CHDIR, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
-       { 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 }\r
+       { 0, 0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 }\r
 };\r
 \r
-/* \83z\83X\83g\91¤\82Ì\83c\81[\83\8b\83o\81[ */\r
+/* ホスト側のツールバー */\r
 static TBBUTTON TbarDataRemote[] = {\r
-       { 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 0, 0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 },\r
        { 0, MENU_REMOTE_UPDIR, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
        { 1, MENU_REMOTE_CHDIR, TBSTATE_ENABLED, TBSTYLE_BUTTON, 0, 0 },\r
-       { 0, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 }\r
+       { 0, 0, TBSTATE_ENABLED, BTNS_SEP, 0, 0 }\r
 };\r
 \r
-/* \91S\83{\83^\83\93\81^\83\81\83j\83\85\81[\8d\80\96Ú */\r
+/* 全ボタン/メニュー項目 */\r
 static const int HideMenus[] = {\r
        MENU_CONNECT,           MENU_QUICK,                     MENU_DISCONNECT,\r
        MENU_SET_CONNECT,       MENU_IMPORT_WS,         MENU_EXIT,\r
@@ -195,8 +200,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_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_KNJ_SJIS,          MENU_KNJ_EUC,           MENU_KNJ_JIS,           MENU_KNJ_UTF8N,         MENU_KNJ_UTF8BOM,       MENU_KNJ_NONE,\r
+       MENU_L_KNJ_SJIS,        MENU_L_KNJ_EUC,         MENU_L_KNJ_JIS,         MENU_L_KNJ_UTF8N,       MENU_L_KNJ_UTF8BOM,\r
        MENU_KANACNV,\r
        MENU_LOCAL_UPDIR,       MENU_LOCAL_CHDIR,\r
        MENU_REMOTE_UPDIR,      MENU_REMOTE_CHDIR,\r
@@ -209,15 +214,15 @@ static const int HideMenus[] = {
 \r
 \r
 \r
-/*----- \83c\81[\83\8b\83o\81[\82ð\8dì\90¬\82·\82é --------------------------------------------------\r
+/*----- ツールバーを作成する --------------------------------------------------\r
 *\r
 *      Parameter\r
-*              HWND hWnd : \90e\83E\83C\83\93\83h\83E\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\r
-*              HINSTANCE hInst : \83C\83\93\83X\83^\83\93\83X\83n\83\93\83h\83\8b\r
+*              HWND hWnd : 親ウインドウのウインドウハンドル\r
+*              HINSTANCE hInst : インスタンスハンドル\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)\r
@@ -229,11 +234,11 @@ int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)
        int Tmp2;\r
        DWORD NoDrives;\r
 \r
-       /*===== \83\81\83C\83\93\82Ì\83c\81[\83\8b\83o\81[ =====*/\r
+       /*===== メインのツールバー =====*/\r
 \r
        hWndTbarMain = CreateToolbarEx(\r
                                hWnd,\r
-                               WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_TOP,\r
+                               WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_TOP | TBSTYLE_FLAT,\r
                                1,\r
                                27,\r
                                hInst,\r
@@ -246,19 +251,21 @@ int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)
 \r
        if(hWndTbarMain != NULL)\r
        {\r
-               /* 2007/09/21 sunasunamix  \82±\82±\82©\82ç *********************/\r
-               pOldTbarMainProc = (WNDPROC)SetWindowLong(hWndTbarMain, GWL_WNDPROC, (DWORD)CountermeasureTbarMainProc);\r
-               /********************************************* \82±\82±\82Ü\82Å */\r
+               /* 2007/09/21 sunasunamix  ここから *********************/\r
+               // 64ビット対応\r
+//             pOldTbarMainProc = (WNDPROC)SetWindowLong(hWndTbarMain, GWL_WNDPROC, (DWORD)CountermeasureTbarMainProc);\r
+               pOldTbarMainProc = (WNDPROC)SetWindowLongPtr(hWndTbarMain, GWLP_WNDPROC, (LONG_PTR)CountermeasureTbarMainProc);\r
+               /********************************************* ここまで */\r
 \r
                GetClientRect(hWnd, &Rect1);\r
                MoveWindow(hWndTbarMain, 0, 0, Rect1.right, TOOLWIN_HEIGHT, FALSE);\r
        }\r
 \r
-       /*===== \83\8d\81[\83J\83\8b\82Ì\83c\81[\83\8b\83o\81[ =====*/\r
+       /*===== ローカルのツールバー =====*/\r
 \r
        hWndTbarLocal = CreateToolbarEx(\r
                                hWnd,\r
-                               WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE,\r
+                               WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE | TBSTYLE_FLAT,\r
                                2,\r
                                2,\r
                                hInst,\r
@@ -271,13 +278,15 @@ int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)
 \r
        if(hWndTbarLocal != NULL)\r
        {\r
-               /* 2007/09/21 sunasunamix  \82±\82±\82©\82ç *********************/\r
-               pOldTbarLocalProc = (WNDPROC)SetWindowLong(hWndTbarLocal, GWL_WNDPROC, (DWORD)CountermeasureTbarLocalProc);\r
-               /********************************************* \82±\82±\82Ü\82Å */\r
+               /* 2007/09/21 sunasunamix  ここから *********************/\r
+               // 64ビット対応\r
+//             pOldTbarLocalProc = (WNDPROC)SetWindowLong(hWndTbarLocal, GWL_WNDPROC, (DWORD)CountermeasureTbarLocalProc);\r
+               pOldTbarLocalProc = (WNDPROC)SetWindowLongPtr(hWndTbarLocal, GWLP_WNDPROC, (LONG_PTR)CountermeasureTbarLocalProc);\r
+               /********************************************* ここまで */\r
 \r
                MoveWindow(hWndTbarLocal, 0, TOOLWIN_HEIGHT, LocalWidth, TOOLWIN_HEIGHT, FALSE);\r
 \r
-               /*===== \83\8d\81[\83J\83\8b\82Ì\83f\83B\83\8c\83N\83g\83\8a\96¼\83E\83C\83\93\83h\83E =====*/\r
+               /*===== ローカルのディレクトリ名ウインドウ =====*/\r
 \r
                SendMessage(hWndTbarLocal, TB_GETITEMRECT, 3, (LPARAM)&Rect1);\r
 #ifndef ENGLISH\r
@@ -294,15 +303,17 @@ int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)
 \r
                if(hWndDirLocal != NULL)\r
                {\r
-                       /* \83G\83f\83B\83b\83g\83R\83\93\83g\83\8d\81[\83\8b\82ð\92T\82· */\r
+                       /* エディットコントロールを探す */\r
                        hWndDirLocalEdit = GetWindow(hWndDirLocal, GW_CHILD);\r
                        if(hWndDirLocalEdit != NULL)\r
-                               HistEditBoxProcPtr = (WNDPROC)SetWindowLong(hWndDirLocalEdit, GWL_WNDPROC, (LONG)HistEditBoxWndProc);\r
+                               // 64ビット対応\r
+//                             HistEditBoxProcPtr = (WNDPROC)SetWindowLong(hWndDirLocalEdit, GWL_WNDPROC, (LONG)HistEditBoxWndProc);\r
+                               HistEditBoxProcPtr = (WNDPROC)SetWindowLongPtr(hWndDirLocalEdit, GWLP_WNDPROC, (LONG_PTR)HistEditBoxWndProc);\r
 \r
                        SendMessage(hWndDirLocal, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE, 0));\r
                        SendMessage(hWndDirLocal, CB_LIMITTEXT, FMAX_PATH, 0);\r
 \r
-                       /* \83h\83\89\83C\83u\96¼\82ð\83Z\83b\83g\82µ\82Ä\82¨\82­ */\r
+                       /* ドライブ名をセットしておく */\r
                        GetLogicalDriveStrings(FMAX_PATH, Tmp);\r
                        NoDrives = LoadHideDriveListRegistory();\r
                        Pos = Tmp;\r
@@ -317,11 +328,11 @@ int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)
                }\r
        }\r
 \r
-       /*===== \83z\83X\83g\82Ì\83c\81[\83\8b\83o\81[ =====*/\r
+       /*===== ホストのツールバー =====*/\r
 \r
        hWndTbarRemote = CreateToolbarEx(\r
                                hWnd,\r
-                               WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE,\r
+                               WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE | TBSTYLE_FLAT,\r
                                3,\r
                                2,\r
                                hInst,\r
@@ -334,13 +345,15 @@ int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)
 \r
        if(hWndTbarRemote != NULL)\r
        {\r
-               /* 2007/09/21 sunasunamix  \82±\82±\82©\82ç *********************/\r
-               pOldTbarRemoteProc = (WNDPROC)SetWindowLong(hWndTbarRemote, GWL_WNDPROC, (DWORD)CountermeasureTbarRemoteProc);\r
-               /********************************************* \82±\82±\82Ü\82Å */\r
+               /* 2007/09/21 sunasunamix  ここから *********************/\r
+               // 64ビット対応\r
+//             pOldTbarRemoteProc = (WNDPROC)SetWindowLong(hWndTbarRemote, GWL_WNDPROC, (DWORD)CountermeasureTbarRemoteProc);\r
+               pOldTbarRemoteProc = (WNDPROC)SetWindowLongPtr(hWndTbarRemote, GWLP_WNDPROC, (LONG_PTR)CountermeasureTbarRemoteProc);\r
+               /********************************************* ここまで */\r
 \r
                MoveWindow(hWndTbarRemote, LocalWidth + SepaWidth, TOOLWIN_HEIGHT, RemoteWidth, TOOLWIN_HEIGHT, FALSE);\r
 \r
-               /*===== \83z\83X\83g\82Ì\83f\83B\83\8c\83N\83g\83\8a\96¼\83E\83C\83\93\83h\83E =====*/\r
+               /*===== ホストのディレクトリ名ウインドウ =====*/\r
 \r
                SendMessage(hWndTbarRemote, TB_GETITEMRECT, 3, (LPARAM)&Rect1);\r
                hWndDirRemote = CreateWindowEx(WS_EX_CLIENTEDGE,\r
@@ -351,10 +364,12 @@ int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)
 \r
                if(hWndDirRemote != NULL)\r
                {\r
-                       /* \83G\83f\83B\83b\83g\83R\83\93\83g\83\8d\81[\83\8b\82ð\92T\82· */\r
+                       /* エディットコントロールを探す */\r
                        hWndDirRemoteEdit = GetWindow(hWndDirRemote, GW_CHILD);\r
                        if(hWndDirRemoteEdit != NULL)\r
-                               HistEditBoxProcPtr = (WNDPROC)SetWindowLong(hWndDirRemoteEdit, GWL_WNDPROC, (LONG)HistEditBoxWndProc);\r
+                               // 64ビット対応\r
+//                             HistEditBoxProcPtr = (WNDPROC)SetWindowLong(hWndDirRemoteEdit, GWL_WNDPROC, (LONG)HistEditBoxWndProc);\r
+                               HistEditBoxProcPtr = (WNDPROC)SetWindowLongPtr(hWndDirRemoteEdit, GWLP_WNDPROC, (LONG_PTR)HistEditBoxWndProc);\r
 \r
                        SendMessage(hWndDirRemote, WM_SETFONT, (WPARAM)DlgFont, MAKELPARAM(TRUE, 0));\r
                        SendMessage(hWndDirRemote, CB_LIMITTEXT, FMAX_PATH, 0);\r
@@ -362,14 +377,14 @@ int MakeToolBarWindow(HWND hWnd, HINSTANCE hInst)
                }\r
        }\r
 \r
-       Sts = SUCCESS;\r
+       Sts = FFFTP_SUCCESS;\r
        if((hWndTbarMain == NULL) ||\r
           (hWndTbarLocal == NULL) ||\r
           (hWndTbarRemote == NULL) ||\r
           (hWndDirLocal == NULL) ||\r
           (hWndDirRemote == NULL))\r
        {\r
-               Sts = FAIL;\r
+               Sts = FFFTP_FAIL;\r
        }\r
        return(Sts);\r
 }\r
@@ -385,7 +400,7 @@ static LRESULT CALLBACK HistEditBoxWndProc(HWND hWnd, UINT message, WPARAM wPara
        switch (message)\r
        {\r
                case WM_CHAR :\r
-                       if(wParam == 0x0D)              /* \83\8a\83^\81[\83\93\83L\81[\82ª\89\9f\82³\82ê\82½ */\r
+                       if(wParam == 0x0D)              /* リターンキーが押された */\r
                        {\r
                                if(hWnd == hWndDirLocalEdit)\r
                                {\r
@@ -395,15 +410,17 @@ static LRESULT CALLBACK HistEditBoxWndProc(HWND hWnd, UINT message, WPARAM wPara
                                }\r
                                else\r
                                {\r
+                                       // 同時接続対応\r
+                                       CancelFlg = NO;\r
                                        SendMessage(hWndDirRemoteEdit, WM_GETTEXT, FMAX_PATH+1, (LPARAM)Tmp);\r
-                                       if(CheckClosedAndReconnect() == SUCCESS)\r
+                                       if(CheckClosedAndReconnect() == FFFTP_SUCCESS)\r
                                        {\r
                                                if(DoCWD(Tmp, YES, NO, YES) < FTP_RETRY)\r
                                                        GetRemoteDirForWnd(CACHE_NORMAL, &CancelFlg);\r
                                        }\r
                                }\r
                        }\r
-                       else if(wParam == 0x09)         /* TAB\83L\81[\82ª\89\9f\82³\82ê\82½ */\r
+                       else if(wParam == 0x09)         /* TABキーが押された */\r
                        {\r
                                if(hWnd == hWndDirLocalEdit)\r
                                {\r
@@ -427,13 +444,13 @@ static LRESULT CALLBACK HistEditBoxWndProc(HWND hWnd, UINT message, WPARAM wPara
 \r
 \r
 \r
-/*----- \83c\81[\83\8b\83o\81[\82ð\8dí\8f\9c ------------------------------------------------------\r
+/*----- ツールバーを削除 ------------------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void DeleteToolBarWindow(void)\r
@@ -455,13 +472,13 @@ void DeleteToolBarWindow(void)
 }\r
 \r
 \r
-/*----- \83\81\83C\83\93\82Ì\83c\81[\83\8b\83o\81[\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\82ð\95Ô\82· --------------------------\r
+/*----- メインのツールバーのウインドウハンドルを返す --------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              HWND \83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\r
+*              HWND ウインドウハンドル\r
 *----------------------------------------------------------------------------*/\r
 \r
 HWND GetMainTbarWnd(void)\r
@@ -470,13 +487,13 @@ HWND GetMainTbarWnd(void)
 }\r
 \r
 \r
-/*----- \83\8d\81[\83J\83\8b\91¤\82Ì\83q\83X\83g\83\8a\83E\83C\83\93\83h\83E\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\82ð\95Ô\82· --------------\r
+/*----- ローカル側のヒストリウインドウのウインドウハンドルを返す --------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              HWND \83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\r
+*              HWND ウインドウハンドル\r
 *----------------------------------------------------------------------------*/\r
 \r
 HWND GetLocalHistHwnd(void)\r
@@ -485,13 +502,13 @@ HWND GetLocalHistHwnd(void)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\91¤\82Ì\83q\83X\83g\83\8a\83E\83C\83\93\83h\83E\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\82ð\95Ô\82· ----------------\r
+/*----- ホスト側のヒストリウインドウのウインドウハンドルを返す ----------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              HWND \83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\r
+*              HWND ウインドウハンドル\r
 *----------------------------------------------------------------------------*/\r
 \r
 HWND GetRemoteHistHwnd(void)\r
@@ -500,13 +517,13 @@ HWND GetRemoteHistHwnd(void)
 }\r
 \r
 \r
-/*----- \83\8d\81[\83J\83\8b\91¤\82Ì\83q\83X\83g\83\8a\83G\83f\83B\83b\83g\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\82ð\95Ô\82· --------------\r
+/*----- ローカル側のヒストリエディットのウインドウハンドルを返す --------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              HWND \83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\r
+*              HWND ウインドウハンドル\r
 *----------------------------------------------------------------------------*/\r
 \r
 HWND GetLocalHistEditHwnd(void)\r
@@ -515,13 +532,13 @@ HWND GetLocalHistEditHwnd(void)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\91¤\82Ì\83q\83X\83g\83\8a\83G\83f\83B\83b\83g\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\82ð\95Ô\82· ----------------\r
+/*----- ホスト側のヒストリエディットのウインドウハンドルを返す ----------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              HWND \83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\r
+*              HWND ウインドウハンドル\r
 *----------------------------------------------------------------------------*/\r
 \r
 HWND GetRemoteHistEditHwnd(void)\r
@@ -530,13 +547,13 @@ HWND GetRemoteHistEditHwnd(void)
 }\r
 \r
 \r
-/*----- \83\8d\81[\83J\83\8b\91¤\82Ì\83c\81[\83\8b\83o\81[\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\82ð\95Ô\82· ----------------------\r
+/*----- ローカル側のツールバーのウインドウハンドルを返す ----------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              HWND \83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\r
+*              HWND ウインドウハンドル\r
 *----------------------------------------------------------------------------*/\r
 \r
 HWND GetLocalTbarWnd(void)\r
@@ -545,13 +562,13 @@ HWND GetLocalTbarWnd(void)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\91¤\82Ì\83c\81[\83\8b\83o\81[\82Ì\83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\82ð\95Ô\82· ------------------------\r
+/*----- ホスト側のツールバーのウインドウハンドルを返す ------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              HWND \83E\83C\83\93\83h\83E\83n\83\93\83h\83\8b\r
+*              HWND ウインドウハンドル\r
 *----------------------------------------------------------------------------*/\r
 \r
 HWND GetRemoteTbarWnd(void)\r
@@ -560,13 +577,13 @@ HWND GetRemoteTbarWnd(void)
 }\r
 \r
 \r
-/*----- HideUI \82Ì\8fó\91Ô\82ð\95Ô\82· ---------------------------------------------------\r
+/*----- HideUI の状態を返す ---------------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              int HideUI \82Ì\8fó\91Ô\r
+*              int HideUI の状態\r
 *----------------------------------------------------------------------------*/\r
 \r
 int GetHideUI(void)\r
@@ -575,13 +592,13 @@ int GetHideUI(void)
 }\r
 \r
 \r
-/*----- \83c\81[\83\8b\83{\83^\83\93\81^\83\81\83j\83\85\81[\82Ì\83n\83C\83h\8f\88\97\9d ------------------------------------\r
+/*----- ツールボタン/メニューのハイド処理 ------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void MakeButtonsFocus(void)\r
@@ -736,13 +753,13 @@ void MakeButtonsFocus(void)
 }\r
 \r
 \r
-/*----- \83\86\81[\83U\82Ì\91\80\8dì\82ð\8bÖ\8e~\82·\82é ------------------------------------------------\r
+/*----- ユーザの操作を禁止する ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void DisableUserOpe(void)\r
@@ -766,13 +783,13 @@ void DisableUserOpe(void)
 }\r
 \r
 \r
-/*----- \83\86\81[\83U\82Ì\91\80\8dì\82ð\8b\96\89Â\82·\82é ------------------------------------------------\r
+/*----- ユーザの操作を許可する ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void EnableUserOpe(void)\r
@@ -791,7 +808,7 @@ void EnableUserOpe(void)
                EnableWindow(hWndDirLocal, TRUE);\r
                EnableWindow(hWndDirRemote, TRUE);\r
 \r
-               // \91I\91ð\95s\89Â\82È\8a¿\8e\9a\83R\81[\83h\82Ì\83{\83^\83\93\82ª\95\\8e¦\82³\82ê\82é\83o\83O\82ð\8fC\90³\r
+               // 選択不可な漢字コードのボタンが表示されるバグを修正\r
                HideHostKanjiButton();\r
                HideLocalKanjiButton();\r
 \r
@@ -803,14 +820,14 @@ void EnableUserOpe(void)
 }\r
 \r
 \r
-/*----- \83\86\81[\83U\82Ì\91\80\8dì\82ª\8bÖ\8e~\82³\82ê\82Ä\82¢\82é\82©\82Ç\82¤\82©\82ð\95Ô\82· ----------------------------\r
+/*----- ユーザの操作が禁止されているかどうかを返す ----------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      YES=\8bÖ\8e~\82³\82ê\82Ä\82¢\82é/NO\r
+*              int ステータス\r
+*                      YES=禁止されている/NO\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskUserOpeDisabled(void)\r
@@ -820,16 +837,16 @@ int AskUserOpeDisabled(void)
 \r
 \r
 /*===================================================\r
-*                      \93]\91\97\83\82\81[\83h\r
+*                      転送モード\r
 *===================================================*/\r
 \r
-/*----- \93]\91\97\83\82\81[\83h\82ð\90Ý\92è\82·\82é --------------------------------------------------\r
+/*----- 転送モードを設定する --------------------------------------------------\r
 *\r
 *      Parameter\r
-*              int Mode : \93]\91\97\83\82\81[\83h (TYPE_xx)\r
+*              int Mode : 転送モード (TYPE_xx)\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetTransferTypeImm(int Mode)\r
@@ -841,13 +858,13 @@ void SetTransferTypeImm(int Mode)
 }\r
 \r
 \r
-/*----- \83\81\83j\83\85\81[\82É\82æ\82è\93]\91\97\83\82\81[\83h\82ð\90Ý\92è\82·\82é ------------------------------------\r
+/*----- メニューにより転送モードを設定する ------------------------------------\r
 *\r
 *      Parameter\r
-*              int Type : \93]\91\97\83\82\81[\83h (MENU_xxxx)\r
+*              int Type : 転送モード (MENU_xxxx)\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetTransferType(int Type)\r
@@ -872,13 +889,13 @@ void SetTransferType(int Type)
 }\r
 \r
 \r
-/*----- \93]\91\97\83\82\81[\83h\82É\82µ\82½\82ª\82Á\82Ä\83{\83^\83\93\82ð\95\\8e¦\82·\82é --------------------------------\r
+/*----- 転送モードにしたがってボタンを表示する --------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void DispTransferType(void)\r
@@ -901,13 +918,13 @@ void DispTransferType(void)
 }\r
 \r
 \r
-/*----- \90Ý\92è\8fã\82Ì\93]\91\97\83\82\81[\83h\82ð\95Ô\82· ----------------------------------------------\r
+/*----- 設定上の転送モードを返す ----------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              int \93]\91\97\83\82\81[\83h (TYPE_xx)\r
+*              int 転送モード (TYPE_xx)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskTransferType(void)\r
@@ -916,14 +933,14 @@ int AskTransferType(void)
 }\r
 \r
 \r
-/*----- \8eÀ\8dÛ\82Ì\93]\91\97\83\82\81[\83h\82ð\95Ô\82· ------------------------------------------------\r
+/*----- 実際の転送モードを返す ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              char Fname : \83t\83@\83C\83\8b\96¼\r
-*              int Type : \90Ý\92è\8fã\82Ì\93]\91\97\83\82\81[\83h (TYPE_xx)\r
+*              char Fname : ファイル名\r
+*              int Type : 設定上の転送モード (TYPE_xx)\r
 *\r
 *      Return Value\r
-*              int \93]\91\97\83\82\81[\83h (TYPE_xx)\r
+*              int 転送モード (TYPE_xx)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskTransferTypeAssoc(char *Fname, int Type)\r
@@ -942,7 +959,7 @@ int AskTransferTypeAssoc(char *Fname, int Type)
                        Pos = AsciiExt;\r
                        while(*Pos != NUL)\r
                        {\r
-                               if(CheckFname(Name, Pos) == SUCCESS)\r
+                               if(CheckFname(Name, Pos) == FFFTP_SUCCESS)\r
                                {\r
                                        Ret = TYPE_A;\r
                                        break;\r
@@ -955,16 +972,16 @@ int AskTransferTypeAssoc(char *Fname, int Type)
 }\r
 \r
 \r
-/*----- \93]\91\97\83\82\81[\83h\82ð\95Û\91\82·\82é --------------------------------------------------\r
+/*----- 転送モードを保存する --------------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Note\r
-*              \8c»\8dÝ\82Ì\93]\91\97\83\82\81[\83h\82ª\83\8c\83W\83X\83g\83\8a\82É\95Û\91\82³\82ê\82é\r
+*              現在の転送モードがレジストリに保存される\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SaveTransferType(void)\r
@@ -975,16 +992,16 @@ void SaveTransferType(void)
 \r
 \r
 /*===================================================\r
-*                      \8a¿\8e\9a\83\82\81[\83h\r
+*                      漢字モード\r
 *===================================================*/\r
 \r
-/*----- \83z\83X\83g\82Ì\8a¿\8e\9a\83\82\81[\83h\82ð\83Z\83b\83g\82·\82é ----------------------------------------\r
+/*----- ホストの漢字モードをセットする ----------------------------------------\r
 *\r
 *      Parameter\r
-*              int Mode : \8a¿\8e\9a\83\82\81[\83h (KANJI_xxxx)\r
+*              int Mode : 漢字モード (KANJI_xxxx)\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetHostKanjiCodeImm(int Mode)\r
@@ -996,20 +1013,20 @@ void SetHostKanjiCodeImm(int Mode)
 }\r
 \r
 \r
-/*----- \83\81\83j\83\85\81[\82É\82æ\82è\83z\83X\83g\82Ì\8a¿\8e\9a\83\82\81[\83h\82ð\90Ý\92è\82·\82é -----------------------------\r
+/*----- メニューによりホストの漢字モードを設定する -----------------------------\r
 *\r
 *      Parameter\r
-*              int Type : \8a¿\8e\9a\83\82\81[\83h (MENU_xxxx)\r
+*              int Type : 漢字モード (MENU_xxxx)\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetHostKanjiCode(int Type)\r
 {\r
        switch(Type)\r
        {\r
-               // UTF-8\91Î\89\9e\r
+               // UTF-8対応\r
                case MENU_KNJ_SJIS :\r
                        TmpHostKanjiCode = KANJI_SJIS;\r
                        break;\r
@@ -1026,6 +1043,10 @@ void SetHostKanjiCode(int Type)
                        TmpHostKanjiCode = KANJI_UTF8N;\r
                        break;\r
 \r
+               case MENU_KNJ_UTF8BOM :\r
+                       TmpHostKanjiCode = KANJI_UTF8BOM;\r
+                       break;\r
+\r
                default :\r
                        TmpHostKanjiCode = KANJI_NOCNV;\r
                        break;\r
@@ -1036,20 +1057,20 @@ void SetHostKanjiCode(int Type)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\82Ì\8a¿\8e\9a\83\82\81[\83h\82É\82µ\82½\82ª\82Á\82Ä\83{\83^\83\93\82ð\95\\8e¦\82·\82é ------------------------\r
+/*----- ホストの漢字モードにしたがってボタンを表示する ------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void DispHostKanjiCode(void)\r
 {\r
        switch(TmpHostKanjiCode)\r
        {\r
-               // UTF-8\91Î\89\9e\r
+               // UTF-8対応\r
                case KANJI_SJIS :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_SJIS, MAKELONG(TRUE, 0));\r
                        break;\r
@@ -1066,6 +1087,10 @@ void DispHostKanjiCode(void)
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
                        break;\r
 \r
+               case KANJI_UTF8BOM :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_UTF8BOM, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
                default :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_NONE, MAKELONG(TRUE, 0));\r
                        break;\r
@@ -1074,13 +1099,13 @@ void DispHostKanjiCode(void)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\82Ì\8a¿\8e\9a\83\82\81[\83h\82ð\95Ô\82· ----------------------------------------------\r
+/*----- ホストの漢字モードを返す ----------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              int \8a¿\8e\9a\83\82\81[\83h (KANJI_xxxx)\r
+*              int 漢字モード (KANJI_xxxx)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskHostKanjiCode(void)\r
@@ -1089,25 +1114,26 @@ int AskHostKanjiCode(void)
 }\r
 \r
 \r
-/*----- \8a¿\8e\9a\83\82\81[\83h\83{\83^\83\93\82Ì\83n\83C\83h\8f\88\97\9d\82ð\8ds\82¤ ------------------------------------\r
+/*----- 漢字モードボタンのハイド処理を行う ------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void HideHostKanjiButton(void)\r
 {\r
        switch(TmpTransMode)\r
        {\r
-               // UTF-8\91Î\89\9e\r
+               // UTF-8対応\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_UTF8BOM, 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
@@ -1117,13 +1143,14 @@ void HideHostKanjiButton(void)
                        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_UTF8BOM, 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
 //                     else\r
 //                             SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
 //                     break;\r
-                       // \8c»\8dÝ\83J\83i\95Ï\8a·\82ÍShift_JIS\81AJIS\81AEUC\8aÔ\82Å\82Ì\82Ý\8b@\94\\82·\82é\r
+                       // 現在カナ変換はShift_JIS、JIS、EUC間でのみ機能する\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
                        switch(TmpHostKanjiCode)\r
                        {\r
@@ -1145,9 +1172,9 @@ 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
+// テキストモード転送時に使用\r
+// ホスト側が無変換の時はローカルも無変換\r
 \r
 void SetLocalKanjiCodeImm(int Mode)\r
 {\r
@@ -1161,7 +1188,7 @@ void SetLocalKanjiCode(int Type)
 {\r
        switch(Type)\r
        {\r
-               // UTF-8\91Î\89\9e\r
+               // UTF-8対応\r
                case MENU_L_KNJ_SJIS :\r
                        TmpLocalKanjiCode = KANJI_SJIS;\r
                        break;\r
@@ -1177,6 +1204,10 @@ void SetLocalKanjiCode(int Type)
                case MENU_L_KNJ_UTF8N :\r
                        TmpLocalKanjiCode = KANJI_UTF8N;\r
                        break;\r
+\r
+               case MENU_L_KNJ_UTF8BOM :\r
+                       TmpLocalKanjiCode = KANJI_UTF8BOM;\r
+                       break;\r
        }\r
        DispLocalKanjiCode();\r
        HideLocalKanjiButton();\r
@@ -1187,7 +1218,7 @@ void DispLocalKanjiCode(void)
 {\r
        switch(TmpLocalKanjiCode)\r
        {\r
-               // UTF-8\91Î\89\9e\r
+               // UTF-8対応\r
                case KANJI_SJIS :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_SJIS, MAKELONG(TRUE, 0));\r
                        break;\r
@@ -1203,6 +1234,10 @@ void DispLocalKanjiCode(void)
                case KANJI_UTF8N :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
                        break;\r
+\r
+               case KANJI_UTF8BOM :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_UTF8BOM, MAKELONG(TRUE, 0));\r
+                       break;\r
        }\r
        return;\r
 }\r
@@ -1216,12 +1251,13 @@ void HideLocalKanjiButton(void)
 {\r
        switch(TmpTransMode)\r
        {\r
-               // UTF-8\91Î\89\9e\r
+               // UTF-8対応\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
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8BOM, MAKELONG(FALSE, 0));\r
                        break;\r
 \r
                default :\r
@@ -1229,7 +1265,8 @@ void HideLocalKanjiButton(void)
                        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
-                       // \8c»\8dÝ\83J\83i\95Ï\8a·\82ÍShift_JIS\81AJIS\81AEUC\8aÔ\82Å\82Ì\82Ý\8b@\94\\82·\82é\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8BOM, MAKELONG(TRUE, 0));\r
+                       // 現在カナ変換はShift_JIS、JIS、EUC間でのみ機能する\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
                        switch(TmpHostKanjiCode)\r
                        {\r
@@ -1253,16 +1290,16 @@ void HideLocalKanjiButton(void)
 \r
 \r
 /*===================================================\r
-*                      \94¼\8ap\95Ï\8a·\83\82\81[\83h\r
+*                      半角変換モード\r
 *===================================================*/\r
 \r
-/*----- \83z\83X\83g\82Ì\94¼\8ap\95Ï\8a·\83\82\81[\83h\82ð\90Ý\92è\82·\82é --------------------------------------\r
+/*----- ホストの半角変換モードを設定する --------------------------------------\r
 *\r
 *      Parameter\r
-*              int Mode : \94¼\8ap\95Ï\8a·\83\82\81[\83h(YES/NO)\r
+*              int Mode : 半角変換モード(YES/NO)\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetHostKanaCnvImm(int Mode)\r
@@ -1273,13 +1310,13 @@ void SetHostKanaCnvImm(int Mode)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\82Ì\94¼\8ap\95Ï\8a·\83\82\81[\83h\82ð\94½\93]\82·\82é --------------------------------------\r
+/*----- ホストの半角変換モードを反転する --------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetHostKanaCnv(void)\r
@@ -1290,13 +1327,13 @@ void SetHostKanaCnv(void)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\82Ì\94¼\8ap\95Ï\8a·\83\82\81[\83h\82É\82µ\82½\82ª\82Á\82Ä\83{\83^\83\93\82ð\95\\8e¦\82·\82é --------------------\r
+/*----- ホストの半角変換モードにしたがってボタンを表示する --------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void DispHostKanaCnv(void)\r
@@ -1309,13 +1346,13 @@ void DispHostKanaCnv(void)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\82Ì\94¼\8ap\95Ï\8a·\83\82\81[\83h\82ð\95Ô\82· ------------------------------------------\r
+/*----- ホストの半角変換モードを返す ------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              int \94¼\8ap\95Ï\8a·\83\82\81[\83h\r
+*              int 半角変換モード\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskHostKanaCnv(void)\r
@@ -1325,19 +1362,19 @@ int AskHostKanaCnv(void)
 \r
 \r
 /*===================================================\r
-*                      \83\\81[\83g\95û\96@\r
+*                      ソート方法\r
 *===================================================*/\r
 \r
-/*----- \83\\81[\83g\95û\96@\82ð\83Z\83b\83g\82·\82é ------------------------------------------------\r
+/*----- ソート方法をセットする ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              int LFsort : \83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\82Ì\83\\81[\83g\95û\96@ (SORT_xxx)\r
-*              int LDsort : \83\8d\81[\83J\83\8b\91¤\82Ì\83f\83B\83\8c\83N\83g\83\8a\82Ì\83\\81[\83g\95û\96@ (SORT_xxx)\r
-*              int RFsort : \83z\83X\83g\91¤\82Ì\83t\83@\83C\83\8b\82Ì\83\\81[\83g\95û\96@ (SORT_xxx)\r
-*              int RDsort : \83z\83X\83g\91¤\82Ì\83f\83B\83\8c\83N\83g\83\8a\82Ì\83\\81[\83g\95û\96@ (SORT_xxx)\r
+*              int LFsort : ローカル側のファイルのソート方法 (SORT_xxx)\r
+*              int LDsort : ローカル側のディレクトリのソート方法 (SORT_xxx)\r
+*              int RFsort : ホスト側のファイルのソート方法 (SORT_xxx)\r
+*              int RDsort : ホスト側のディレクトリのソート方法 (SORT_xxx)\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetSortTypeImm(int LFsort, int LDsort, int RFsort, int RDsort)\r
@@ -1350,14 +1387,14 @@ void SetSortTypeImm(int LFsort, int LDsort, int RFsort, int RDsort)
 }\r
 \r
 \r
-/*----- \83\8a\83X\83g\83r\83\85\81[\82Ì\83^\83u\83N\83\8a\83b\83N\82É\82æ\82é\83\\81[\83g\95û\96@\82Ì\83Z\83b\83g --------------------\r
+/*----- リストビューのタブクリックによるソート方法のセット --------------------\r
 *\r
 *      Parameter\r
-*              int Win : \83E\83C\83\93\83h\83E\94Ô\8d\86\r
-*              int Tab : \83J\83\89\83\80\94Ô\8d\86\r
+*              int Win : ウインドウ番号\r
+*              int Tab : カラム番号\r
 *\r
 *      Return Value\r
-*              int \83\\81[\83g\95û\96@ (SORT_xxx)\r
+*              int ソート方法 (SORT_xxx)\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetSortTypeByColumn(int Win, int Tab)\r
@@ -1393,13 +1430,13 @@ void SetSortTypeByColumn(int Win, int Tab)
 }\r
 \r
 \r
-/*----- \83\\81[\83g\95û\96@\82ð\95Ô\82· ------------------------------------------------------\r
+/*----- ソート方法を返す ------------------------------------------------------\r
 *\r
 *      Parameter\r
-*              int Name : \82Ç\82Ì\95\94\95ª\82© (ITEM_xxx)\r
+*              int Name : どの部分か (ITEM_xxx)\r
 *\r
 *      Return Value\r
-*              int \83\\81[\83g\95û\96@ (SORT_xxx)\r
+*              int ソート方法 (SORT_xxx)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskSortType(int Name)\r
@@ -1428,13 +1465,13 @@ int AskSortType(int Name)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\82²\82Æ\82É\83\\81[\83g\82ð\95Û\91\82·\82é\82©\82Ç\82¤\82©\82ð\83Z\83b\83g\82·\82é-----------------------\r
+/*----- ホストごとにソートを保存するかどうかをセットする-----------------------\r
 *\r
 *      Parameter\r
-*              int Sw : \83X\83C\83b\83` (YES/NO)\r
+*              int Sw : スイッチ (YES/NO)\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetSaveSortToHost(int Sw)\r
@@ -1444,13 +1481,13 @@ void SetSaveSortToHost(int Sw)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\82²\82Æ\82É\83\\81[\83g\82ð\95Û\91\82·\82é\82©\82Ç\82¤\82©\82ð\95Ô\82· ----------------------------\r
+/*----- ホストごとにソートを保存するかどうかを返す ----------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              int \83X\83C\83b\83` (YES/NO)\r
+*              int スイッチ (YES/NO)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskSaveSortToHost(void)\r
@@ -1461,16 +1498,16 @@ int AskSaveSortToHost(void)
 \r
 \r
 /*===================================================\r
-*                      \83\8a\83X\83g\83\82\81[\83h\r
+*                      リストモード\r
 *===================================================*/\r
 \r
-/*----- \83\8a\83X\83g\83\82\81[\83h\82É\82µ\82½\82ª\82Á\82Ä\83{\83^\83\93\82ð\95\\8e¦\82·\82é ------------------------------\r
+/*----- リストモードにしたがってボタンを表示する ------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void DispListType(void)\r
@@ -1497,16 +1534,16 @@ void DispListType(void)
 \r
 \r
 /*===================================================\r
-*                      \83t\83H\83\8b\83_\93¯\8e\9e\88Ú\93®\83\82\81[\83h\r
+*                      フォルダ同時移動モード\r
 *===================================================*/\r
 \r
-/*----- \93]\91\97\83\82\81[\83h\82ð\90Ý\92è\82·\82é --------------------------------------------------\r
+/*----- 転送モードを設定する --------------------------------------------------\r
 *\r
 *      Parameter\r
-*              int Mode : \93]\91\97\83\82\81[\83h (TYPE_xx)\r
+*              int Mode : 転送モード (TYPE_xx)\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetSyncMoveMode(int Mode)\r
@@ -1517,13 +1554,13 @@ void SetSyncMoveMode(int Mode)
 }\r
 \r
 \r
-/*----- \83t\83H\83\8b\83_\93¯\8e\9e\88Ú\93®\83\82\81[\83h\82ð\90Ø\82è\91Ö\82¦\82é ------------------------------------\r
+/*----- フォルダ同時移動モードを切り替える ------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void ToggleSyncMoveMode(void)\r
@@ -1534,13 +1571,13 @@ void ToggleSyncMoveMode(void)
 }\r
 \r
 \r
-/*----- \83t\83H\83\8b\83_\93¯\8e\9e\88Ú\93®\82ð\8ds\82¤\82©\82Ç\82¤\82©\82ð\82É\82æ\82Á\82Ä\83\81\83j\83\85\81[\81^\83{\83^\83\93\82ð\95\\8e¦ --------\r
+/*----- フォルダ同時移動を行うかどうかをによってメニュー/ボタンを表示 --------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void DispSyncMoveMode(void)\r
@@ -1559,13 +1596,13 @@ void DispSyncMoveMode(void)
 }\r
 \r
 \r
-/*----- \83t\83H\83\8b\83_\93¯\8e\9e\88Ú\93®\83\82\81[\83h\82ð\95Ô\82· ------------------------------------------\r
+/*----- フォルダ同時移動モードを返す ------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              int \94¼\8ap\95Ï\8a·\83\82\81[\83h\r
+*              int 半角変換モード\r
 *----------------------------------------------------------------------------*/\r
 \r
 int AskSyncMoveMode(void)\r
@@ -1575,16 +1612,16 @@ int AskSyncMoveMode(void)
 \r
 \r
 /*===================================================\r
-*                      \83f\83B\83\8c\83N\83g\83\8a\83q\83X\83g\83\8a\r
+*                      ディレクトリヒストリ\r
 *===================================================*/\r
 \r
-/*----- \83z\83X\83g\91¤\82Ì\83q\83X\83g\83\8a\88ê\97\97\83E\83C\83\93\83h\83E\82É\93o\98^ --------------------------------\r
+/*----- ホスト側のヒストリ一覧ウインドウに登録 --------------------------------\r
 *\r
 *      Parameter\r
-*              char *Path : \83p\83X\r
+*              char *Path : パス\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetRemoteDirHist(char *Path)\r
@@ -1603,13 +1640,13 @@ void SetRemoteDirHist(char *Path)
 }\r
 \r
 \r
-/*----- \83\8d\81[\83J\83\8b\91¤\82Ì\83q\83X\83g\83\8a\88ê\97\97\83E\83C\83\93\83h\83E\82É\93o\98^ -------------------------------\r
+/*----- ローカル側のヒストリ一覧ウインドウに登録 -------------------------------\r
 *\r
 *      Parameter\r
-*              char *Path : \83p\83X\r
+*              char *Path : パス\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetLocalDirHist(char *Path)\r
@@ -1626,14 +1663,14 @@ void SetLocalDirHist(char *Path)
 }\r
 \r
 \r
-/*----- \83\8d\81[\83J\83\8b\82Ì\83J\83\8c\83\93\83g\83f\83B\83\8c\83N\83g\83\8a\82ð\95Ô\82· ----------------------------------\r
+/*----- ローカルのカレントディレクトリを返す ----------------------------------\r
 *\r
 *      Parameter\r
-*              char *Buf : \83J\83\8c\83\93\83g\83f\83B\83\8c\83N\83g\83\8a\96¼\82ð\95Ô\82·\83o\83b\83t\83@\r
-*              int Max : \83o\83b\83t\83@\82Ì\83T\83C\83Y\r
+*              char *Buf : カレントディレクトリ名を返すバッファ\r
+*              int Max : バッファのサイズ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void AskLocalCurDir(char *Buf, int Max)\r
@@ -1644,14 +1681,14 @@ void AskLocalCurDir(char *Buf, int Max)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\82Ì\83J\83\8c\83\93\83g\83f\83B\83\8c\83N\83g\83\8a\82ð\95Ô\82· ------------------------------------\r
+/*----- ホストのカレントディレクトリを返す ------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Buf : \83J\83\8c\83\93\83g\83f\83B\83\8c\83N\83g\83\8a\96¼\82ð\95Ô\82·\83o\83b\83t\83@\r
-*              int Max : \83o\83b\83t\83@\82Ì\83T\83C\83Y\r
+*              char *Buf : カレントディレクトリ名を返すバッファ\r
+*              int Max : バッファのサイズ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void AskRemoteCurDir(char *Buf, int Max)\r
@@ -1662,13 +1699,13 @@ void AskRemoteCurDir(char *Buf, int Max)
 }\r
 \r
 \r
-/*----- \83J\83\8c\83\93\83g\83f\83B\83\8c\83N\83g\83\8a\82ð\90Ý\92è\82·\82é ----------------------------------------\r
+/*----- カレントディレクトリを設定する ----------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SetCurrentDirAsDirHist(void)\r
@@ -1679,16 +1716,16 @@ void SetCurrentDirAsDirHist(void)
 \r
 \r
 /*===================================================\r
-*                      \83\81\83j\83\85\81[\r
+*                      メニュー\r
 *===================================================*/\r
 \r
-/*----- \83h\83b\83g\83t\83@\83C\83\8b\82ð\95\\8e¦\82·\82é\82©\82Ç\82¤\82©\82ð\83\81\83j\83\85\81[\82É\95\\8e¦\82·\82é ------------------\r
+/*----- ドットファイルを表示するかどうかをメニューに表示する ------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void DispDotFileMode(void)\r
@@ -1700,15 +1737,15 @@ void DispDotFileMode(void)
 }\r
 \r
 \r
-/*----- \83\8d\81[\83J\83\8b\91¤\82Ì\89E\83{\83^\83\93\83\81\83j\83\85\81[\82ð\95\\8e¦ ------------------------------------------------\r
+/*----- ローカル側の右ボタンメニューを表示 ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              int Pos : \83\81\83j\83\85\81[\82Ì\88Ê\92u\r
-*                                      0=\83}\83E\83X\83J\81[\83\\83\8b\82Ì\88Ê\92u\r
-*                                      1=\83E\83C\83\93\83h\83E\82Ì\8d\8fã\r
+*              int Pos : メニューの位置\r
+*                                      0=マウスカーソルの位置\r
+*                                      1=ウインドウの左上\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void LocalRbuttonMenu(int Pos)\r
@@ -1765,15 +1802,15 @@ void LocalRbuttonMenu(int Pos)
 }\r
 \r
 \r
-/*----- \83z\83X\83g\91¤\82Ì\89E\83{\83^\83\93\83\81\83j\83\85\81[\82ð\95\\8e¦ --------------------------------------\r
+/*----- ホスト側の右ボタンメニューを表示 --------------------------------------\r
 *\r
 *      Parameter\r
-*              int Pos : \83\81\83j\83\85\81[\82Ì\88Ê\92u\r
-*                                      0=\83}\83E\83X\83J\81[\83\\83\8b\82Ì\88Ê\92u\r
-*                                      1=\83E\83C\83\93\83h\83E\82Ì\8d\8fã\r
+*              int Pos : メニューの位置\r
+*                                      0=マウスカーソルの位置\r
+*                                      1=ウインドウの左上\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void RemoteRbuttonMenu(int Pos)\r
@@ -1809,9 +1846,18 @@ void RemoteRbuttonMenu(int Pos)
                AppendMenu(hMenu, MF_STRING | Flg1, MENU_DOWNLOAD_ALL, MSGJPN266);\r
                AppendMenu(hMenu, MF_STRING | Flg1 | Flg2, MENU_DELETE, MSGJPN267);\r
                AppendMenu(hMenu, MF_STRING | Flg1 | Flg2, MENU_RENAME, MSGJPN268);\r
+#if defined(HAVE_TANDEM)\r
+               /* HP NonStop Server では CHMOD の仕様が異なるため使用不可 */\r
+               if (AskRealHostType() != HTYPE_TANDEM)\r
+#endif\r
                AppendMenu(hMenu, MF_STRING | Flg1 | Flg2, MENU_CHMOD, MSGJPN269);\r
                AppendMenu(hMenu, MF_STRING | Flg1, MENU_MKDIR, MSGJPN270);\r
                AppendMenu(hMenu, MF_STRING | Flg1 | Flg2, MENU_URL_COPY, MSGJPN271);\r
+#if defined(HAVE_TANDEM)\r
+               /* OSS モードのときに表示されるように AskRealHostType() を使用する */\r
+               if (AskRealHostType() == HTYPE_TANDEM)\r
+                       AppendMenu(hMenu, MF_STRING | Flg1, MENU_SWITCH_OSS, MSGJPN2001);\r
+#endif\r
                AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);\r
                AppendMenu(hMenu, MF_STRING | Flg1, MENU_FILESIZE, MSGJPN272);\r
                AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);\r
@@ -1834,14 +1880,14 @@ void RemoteRbuttonMenu(int Pos)
 }\r
 \r
 \r
-/*----- \89E\83{\83^\83\93\83\81\83j\83\85\81[\82É\81u\8aJ\82­\81v\82ð\92Ç\89Á  -------------------------------------\r
+/*----- 右ボタンメニューに「開く」を追加  -------------------------------------\r
 *\r
 *      Parameter\r
-*              HMENU hMenu : \83\81\83j\83\85\81[\83n\83\93\83h\83\8b\r
-*              UINT Flg : \83t\83\89\83O\r
+*              HMENU hMenu : メニューハンドル\r
+*              UINT Flg : フラグ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void AddOpenMenu(HMENU hMenu, UINT Flg)\r
@@ -1863,16 +1909,18 @@ static void AddOpenMenu(HMENU hMenu, UINT Flg)
        return;\r
 }\r
 \r
-/* 2007/09/21 sunasunamix  \82±\82±\82©\82ç *********************/\r
+/* 2007/09/21 sunasunamix  ここから *********************/\r
 \r
-/*----- CreateToolbarEx \82Ì\83}\83E\83X\83N\83\8a\83b\83N\8aÖ\98A\82ð\96³\8e\8b\82·\82é(TbarMain\97p) -----------\r
-*       (\83T\83u\83N\83\89\83X\89»\82ð\8ds\82¤\82½\82ß\82Ì\83E\83C\83\93\83h\83E\83v\83\8d\83V\81[\83W\83\83)\r
+/*----- CreateToolbarEx のマウスクリック関連を無視する(TbarMain用) -----------\r
+*       (サブクラス化を行うためのウインドウプロシージャ)\r
 *----------------------------------------------------------------------------*/\r
 static LRESULT CALLBACK CountermeasureTbarMainProc(HWND hWnd,UINT uMessage,WPARAM wParam,LPARAM lParam)\r
 {\r
        switch (uMessage) {\r
        case WM_DESTROY :\r
-               SetWindowLong(hWnd,GWL_WNDPROC,(DWORD)pOldTbarMainProc);\r
+               // 64ビット対応\r
+//             SetWindowLong(hWnd,GWL_WNDPROC,(DWORD)pOldTbarMainProc);\r
+               SetWindowLongPtr(hWnd,GWLP_WNDPROC,(LONG_PTR)pOldTbarMainProc);\r
                break;\r
        case WM_RBUTTONDBLCLK :\r
        case WM_RBUTTONDOWN :\r
@@ -1882,14 +1930,16 @@ static LRESULT CALLBACK CountermeasureTbarMainProc(HWND hWnd,UINT uMessage,WPARA
        return CallWindowProc(pOldTbarMainProc, hWnd, uMessage, wParam, lParam);\r
 }\r
 \r
-/*----- CreateToolbarEx \82Ì\83}\83E\83X\83N\83\8a\83b\83N\8aÖ\98A\82ð\96³\8e\8b\82·\82é(TbarLocal\97p) ----------\r
-*       (\83T\83u\83N\83\89\83X\89»\82ð\8ds\82¤\82½\82ß\82Ì\83E\83C\83\93\83h\83E\83v\83\8d\83V\81[\83W\83\83)\r
+/*----- CreateToolbarEx のマウスクリック関連を無視する(TbarLocal用) ----------\r
+*       (サブクラス化を行うためのウインドウプロシージャ)\r
 *----------------------------------------------------------------------------*/\r
 static LRESULT CALLBACK CountermeasureTbarLocalProc(HWND hWnd,UINT uMessage,WPARAM wParam,LPARAM lParam)\r
 {\r
        switch (uMessage) {\r
        case WM_DESTROY :\r
-               SetWindowLong(hWnd,GWL_WNDPROC,(DWORD)pOldTbarLocalProc);\r
+               // 64ビット対応\r
+//             SetWindowLong(hWnd,GWL_WNDPROC,(DWORD)pOldTbarLocalProc);\r
+               SetWindowLongPtr(hWnd,GWLP_WNDPROC,(LONG_PTR)pOldTbarLocalProc);\r
                break;\r
        case WM_RBUTTONDBLCLK :\r
        case WM_RBUTTONDOWN :\r
@@ -1899,14 +1949,16 @@ static LRESULT CALLBACK CountermeasureTbarLocalProc(HWND hWnd,UINT uMessage,WPAR
        return CallWindowProc(pOldTbarLocalProc, hWnd, uMessage, wParam, lParam);\r
 }\r
 \r
-/*----- CreateToolbarEx \82Ì\83}\83E\83X\83N\83\8a\83b\83N\8aÖ\98A\82ð\96³\8e\8b\82·\82é(TbarRemote\97p) ---------\r
-*       (\83T\83u\83N\83\89\83X\89»\82ð\8ds\82¤\82½\82ß\82Ì\83E\83C\83\93\83h\83E\83v\83\8d\83V\81[\83W\83\83)\r
+/*----- CreateToolbarEx のマウスクリック関連を無視する(TbarRemote用) ---------\r
+*       (サブクラス化を行うためのウインドウプロシージャ)\r
 *----------------------------------------------------------------------------*/\r
 static LRESULT CALLBACK CountermeasureTbarRemoteProc(HWND hWnd,UINT uMessage,WPARAM wParam,LPARAM lParam)\r
 {\r
        switch (uMessage) {\r
        case WM_DESTROY :\r
-               SetWindowLong(hWnd,GWL_WNDPROC,(DWORD)pOldTbarRemoteProc);\r
+               // 64ビット対応\r
+//             SetWindowLong(hWnd,GWL_WNDPROC,(DWORD)pOldTbarRemoteProc);\r
+               SetWindowLongPtr(hWnd,GWLP_WNDPROC,(LONG_PTR)pOldTbarRemoteProc);\r
                break;\r
        case WM_RBUTTONDBLCLK :\r
        case WM_RBUTTONDOWN :\r
@@ -1915,4 +1967,4 @@ static LRESULT CALLBACK CountermeasureTbarRemoteProc(HWND hWnd,UINT uMessage,WPA
        }\r
        return CallWindowProc(pOldTbarRemoteProc, hWnd, uMessage, wParam, lParam);\r
 }\r
-/********************************************* \82±\82±\82Ü\82Å */\r
+/********************************************* ここまで */\r