OSDN Git Service

Compile executable files.
[ffftp/ffftp.git] / toolmenu.c
index 2cc48a7..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,6 +93,9 @@ static int TmpTransMode;
 static int TmpHostKanjiCode;\r
 static int TmpHostKanaCnv;\r
 \r
+// TODO: ローカルの漢字コードをShift_JIS以外にも対応\r
+static int TmpLocalKanjiCode;\r
+\r
 static int TmpLocalFileSort;\r
 static int TmpLocalDirSort;\r
 static int TmpRemoteFileSort;\r
@@ -100,72 +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
+       { 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
@@ -185,7 +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_EUC,           MENU_KNJ_JIS,           MENU_KNJ_NONE,\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
@@ -198,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
@@ -218,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
@@ -235,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
@@ -260,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
@@ -283,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
@@ -306,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
@@ -323,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
@@ -340,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
@@ -351,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
@@ -374,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
@@ -384,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
@@ -416,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
@@ -444,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
@@ -459,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
@@ -474,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
@@ -489,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
@@ -504,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
@@ -519,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
@@ -534,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
@@ -549,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
@@ -564,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
@@ -725,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
@@ -755,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
@@ -780,6 +808,10 @@ void EnableUserOpe(void)
                EnableWindow(hWndDirLocal, TRUE);\r
                EnableWindow(hWndDirRemote, TRUE);\r
 \r
+               // 選択不可な漢字コードのボタンが表示されるバグを修正\r
+               HideHostKanjiButton();\r
+               HideLocalKanjiButton();\r
+\r
                HideUI = NO;\r
 \r
                MakeButtonsFocus();\r
@@ -788,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
@@ -805,33 +837,34 @@ 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
 {\r
        TmpTransMode = Mode;\r
        HideHostKanjiButton();\r
+       HideLocalKanjiButton();\r
        return;\r
 }\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
@@ -851,17 +884,18 @@ void SetTransferType(int Type)
                        break;\r
        }\r
        HideHostKanjiButton();\r
+       HideLocalKanjiButton();\r
        return;\r
 }\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
@@ -884,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
@@ -899,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
@@ -925,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
@@ -938,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
@@ -958,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
@@ -979,19 +1013,24 @@ 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対応\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 +1039,14 @@ void SetHostKanjiCode(int Type)
                        TmpHostKanjiCode = KANJI_JIS;\r
                        break;\r
 \r
+               case MENU_KNJ_UTF8N :\r
+                       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
@@ -1010,19 +1057,24 @@ 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対応\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 +1083,14 @@ 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
+               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
@@ -1039,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
@@ -1054,34 +1114,175 @@ 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対応\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
 \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_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
+//                     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
+                       // 現在カナ変換はShift_JIS、JIS、EUC間でのみ機能する\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
+                       switch(TmpHostKanjiCode)\r
+                       {\r
+                       case KANJI_SJIS:\r
+                       case KANJI_JIS:\r
+                       case KANJI_EUC:\r
+                               switch(TmpLocalKanjiCode)\r
+                               {\r
+                               case KANJI_SJIS:\r
+                               case KANJI_JIS:\r
+                               case KANJI_EUC:\r
+                                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(TRUE, 0));\r
+                                       break;\r
+                               }\r
+                               break;\r
+                       }\r
+       }\r
+       return;\r
+}\r
+\r
+\r
+// ローカルの漢字コード\r
+// テキストモード転送時に使用\r
+// ホスト側が無変換の時はローカルも無変換\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対応\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
+               case MENU_L_KNJ_UTF8BOM :\r
+                       TmpLocalKanjiCode = KANJI_UTF8BOM;\r
+                       break;\r
+       }\r
+       DispLocalKanjiCode();\r
+       HideLocalKanjiButton();\r
+       return;\r
+}\r
+\r
+void DispLocalKanjiCode(void)\r
+{\r
+       switch(TmpLocalKanjiCode)\r
+       {\r
+               // UTF-8対応\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
+               case KANJI_UTF8BOM :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_UTF8BOM, 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対応\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
+                       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
+                       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
+                       case KANJI_SJIS:\r
+                       case KANJI_JIS:\r
+                       case KANJI_EUC:\r
+                               switch(TmpLocalKanjiCode)\r
+                               {\r
+                               case KANJI_SJIS:\r
+                               case KANJI_JIS:\r
+                               case KANJI_EUC:\r
+                                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(TRUE, 0));\r
+                                       break;\r
+                               }\r
+                               break;\r
+                       }\r
                        break;\r
        }\r
        return;\r
@@ -1089,16 +1290,16 @@ void HideHostKanjiButton(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
@@ -1109,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
@@ -1126,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
@@ -1145,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
@@ -1161,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
@@ -1186,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
@@ -1229,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
@@ -1264,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
@@ -1280,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
@@ -1297,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
@@ -1333,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
@@ -1353,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
@@ -1370,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
@@ -1395,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
@@ -1411,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
@@ -1439,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
@@ -1462,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
@@ -1480,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
@@ -1498,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
@@ -1515,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
@@ -1536,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
@@ -1601,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
@@ -1645,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
@@ -1670,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
@@ -1699,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
@@ -1718,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
@@ -1735,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
@@ -1751,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