-/*=============================================================================\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
/============================================================================*/\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
extern char ViewerName[VIEWERS][FMAX_PATH+1];\r
extern int TransMode;\r
extern int SortSave;\r
+// UTF-8対応\r
+extern int LocalKanjiCode;\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
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
\r
static int SyncMove = NO;\r
\r
-static int HideUI = NO;\r
+// デッドロック対策\r
+//static int HideUI = NO;\r
+static int HideUI = 0;\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
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
\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
char *Pos;\r
int Tmp2;\r
DWORD NoDrives;\r
-\r
- /*===== \83\81\83C\83\93\82Ì\83c\81[\83\8b\83o\81[ =====*/\r
-\r
+ // 高DPI対応\r
+ HBITMAP hOriginal;\r
+ HBITMAP hResized;\r
+\r
+ /*===== メインのツールバー =====*/\r
+\r
+ // 高DPI対応\r
+// hWndTbarMain = CreateToolbarEx(\r
+// hWnd,\r
+// WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_TOP | TBSTYLE_FLAT,\r
+// 1,\r
+// 27,\r
+// hInst,\r
+// main_toolbar_bmp,\r
+// TbarDataMain,\r
+// sizeof(TbarDataMain)/sizeof(TBBUTTON),\r
+// 16,16,\r
+// 16,16,\r
+// sizeof(TBBUTTON));\r
+ hOriginal = LoadImage(hInst, MAKEINTRESOURCE(main_toolbar_bmp), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADMAP3DCOLORS);\r
+ if(hOriginal != NULL)\r
+ {\r
+ hResized = ResizeBitmap(hOriginal, 64, 64, 16, 64);\r
+ DeleteObject(hOriginal);\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
- main_toolbar_bmp,\r
+ 30,\r
+ NULL,\r
+ (UINT_PTR)hResized,\r
TbarDataMain,\r
sizeof(TbarDataMain)/sizeof(TBBUTTON),\r
- 16,16,\r
- 16,16,\r
+ CalcPixelX(16),CalcPixelY(16),\r
+ CalcPixelX(16),CalcPixelY(16),\r
sizeof(TBBUTTON));\r
+ if(hResized != NULL)\r
+ DeleteObject(hOriginal);\r
+ hResized = NULL;\r
\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
+ // 高DPI対応\r
+// MoveWindow(hWndTbarMain, 0, 0, Rect1.right, TOOLWIN_HEIGHT, FALSE);\r
+ MoveWindow(hWndTbarMain, 0, 0, Rect1.right, AskToolWinHeight(), FALSE);\r
}\r
\r
- /*===== \83\8d\81[\83J\83\8b\82Ì\83c\81[\83\8b\83o\81[ =====*/\r
-\r
+ /*===== ローカルのツールバー =====*/\r
+\r
+ // 高DPI対応\r
+// hWndTbarLocal = CreateToolbarEx(\r
+// hWnd,\r
+// WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE | TBSTYLE_FLAT,\r
+// 2,\r
+// 2,\r
+// hInst,\r
+// remote_toolbar_bmp,\r
+// TbarDataLocal,\r
+// sizeof(TbarDataLocal)/sizeof(TBBUTTON),\r
+// 16,16,\r
+// 16,16,\r
+// sizeof(TBBUTTON));\r
+ hOriginal = LoadImage(hInst, MAKEINTRESOURCE(remote_toolbar_bmp), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADMAP3DCOLORS);\r
+ if(hOriginal != NULL)\r
+ {\r
+ hResized = ResizeBitmap(hOriginal, 64, 64, 16, 64);\r
+ DeleteObject(hOriginal);\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
- remote_toolbar_bmp,\r
+ NULL,\r
+ (UINT_PTR)hResized,\r
TbarDataLocal,\r
sizeof(TbarDataLocal)/sizeof(TBBUTTON),\r
- 16,16,\r
- 16,16,\r
+ CalcPixelX(16),CalcPixelY(16),\r
+ CalcPixelX(16),CalcPixelY(16),\r
sizeof(TBBUTTON));\r
+ if(hResized != NULL)\r
+ DeleteObject(hOriginal);\r
+ hResized = NULL;\r
\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
+ // 高DPI対応\r
+// MoveWindow(hWndTbarLocal, 0, TOOLWIN_HEIGHT, LocalWidth, TOOLWIN_HEIGHT, FALSE);\r
+ MoveWindow(hWndTbarLocal, 0, AskToolWinHeight(), LocalWidth, AskToolWinHeight(), 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
- DlgFont = CreateFont(Rect1.bottom-Rect1.top-8, 0, 0, 0, 0, FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
-#else\r
- DlgFont = CreateFont(Rect1.bottom-Rect1.top-8, 0, 0, 0, 0, FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
-#endif\r
-\r
+ // UTF-8対応\r
+ // 高DPI対応\r
+//#ifndef FFFTP_ENGLISH\r
+// DlgFont = CreateFont(Rect1.bottom-Rect1.top-8, 0, 0, 0, 0, FALSE,FALSE,FALSE,SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
+//#else\r
+// DlgFont = CreateFont(Rect1.bottom-Rect1.top-8, 0, 0, 0, 0, FALSE,FALSE,FALSE,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
+//#endif\r
+ DlgFont = CreateFont(Rect1.bottom-Rect1.top-CalcPixelY(8), 0, 0, 0, 0, FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,MSGJPN254);\r
+\r
+ // 高DPI対応\r
+// hWndDirLocal = CreateWindowEx(WS_EX_CLIENTEDGE,\r
+// "COMBOBOX", "",\r
+// WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | CBS_DROPDOWN | CBS_SORT | CBS_AUTOHSCROLL,\r
+// Rect1.right, Rect1.top, LocalWidth - Rect1.right, 200,\r
+// hWndTbarLocal, (HMENU)COMBO_LOCAL, hInst, NULL);\r
hWndDirLocal = CreateWindowEx(WS_EX_CLIENTEDGE,\r
"COMBOBOX", "",\r
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | CBS_DROPDOWN | CBS_SORT | CBS_AUTOHSCROLL,\r
- Rect1.right, Rect1.top, LocalWidth - Rect1.right, 200,\r
+ Rect1.right, Rect1.top, LocalWidth - Rect1.right, CalcPixelY(200),\r
hWndTbarLocal, (HMENU)COMBO_LOCAL, hInst, NULL);\r
\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
+ NoDrives = LoadHideDriveListRegistry();\r
Pos = Tmp;\r
while(*Pos != NUL)\r
{\r
}\r
}\r
\r
- /*===== \83z\83X\83g\82Ì\83c\81[\83\8b\83o\81[ =====*/\r
-\r
+ /*===== ホストのツールバー =====*/\r
+\r
+ // 高DPI対応\r
+// hWndTbarRemote = CreateToolbarEx(\r
+// hWnd,\r
+// WS_CHILD | WS_VISIBLE | TBSTYLE_TOOLTIPS | CCS_NORESIZE | TBSTYLE_FLAT,\r
+// 3,\r
+// 2,\r
+// hInst,\r
+// remote_toolbar_bmp,\r
+// TbarDataRemote,\r
+// sizeof(TbarDataRemote)/sizeof(TBBUTTON),\r
+// 16,16,\r
+// 16,16,\r
+// sizeof(TBBUTTON));\r
+ hOriginal = LoadImage(hInst, MAKEINTRESOURCE(remote_toolbar_bmp), IMAGE_BITMAP, 0, 0, LR_DEFAULTSIZE | LR_LOADMAP3DCOLORS);\r
+ if(hOriginal != NULL)\r
+ {\r
+ hResized = ResizeBitmap(hOriginal, 64, 64, 16, 64);\r
+ DeleteObject(hOriginal);\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
- remote_toolbar_bmp,\r
+ NULL,\r
+ (UINT_PTR)hResized,\r
TbarDataRemote,\r
sizeof(TbarDataRemote)/sizeof(TBBUTTON),\r
- 16,16,\r
- 16,16,\r
+ CalcPixelX(16),CalcPixelY(16),\r
+ CalcPixelX(16),CalcPixelY(16),\r
sizeof(TBBUTTON));\r
+ if(hResized != NULL)\r
+ DeleteObject(hOriginal);\r
+ hResized = NULL;\r
\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
+ // 高DPI対応\r
+// MoveWindow(hWndTbarRemote, LocalWidth + SepaWidth, TOOLWIN_HEIGHT, RemoteWidth, TOOLWIN_HEIGHT, FALSE);\r
+ MoveWindow(hWndTbarRemote, LocalWidth + SepaWidth, AskToolWinHeight(), RemoteWidth, AskToolWinHeight(), 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
+ // 高DPI対応\r
+// hWndDirRemote = CreateWindowEx(WS_EX_CLIENTEDGE,\r
+// "COMBOBOX", "",\r
+// WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | CBS_DROPDOWN | CBS_AUTOHSCROLL,\r
+// Rect1.right, Rect1.top, RemoteWidth - Rect1.right, 200,\r
+// hWndTbarRemote, (HMENU)COMBO_REMOTE, hInst, NULL);\r
hWndDirRemote = CreateWindowEx(WS_EX_CLIENTEDGE,\r
"COMBOBOX", "",\r
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_VSCROLL | CBS_DROPDOWN | CBS_AUTOHSCROLL,\r
- Rect1.right, Rect1.top, RemoteWidth - Rect1.right, 200,\r
+ Rect1.right, Rect1.top, RemoteWidth - Rect1.right, CalcPixelY(200),\r
hWndTbarRemote, (HMENU)COMBO_REMOTE, hInst, NULL);\r
\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
}\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
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
}\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
\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
}\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
}\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
}\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
}\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
}\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
}\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
}\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
}\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
{\r
- return(HideUI);\r
+ // デッドロック対策\r
+// return(HideUI);\r
+ return (HideUI > 0 ? YES : NO);\r
}\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
int Count;\r
int Win;\r
\r
- if(HideUI == NO)\r
+ // デッドロック対策\r
+// if(HideUI == NO)\r
+ if(HideUI == 0)\r
{\r
hWndMain = GetMainHwnd();\r
hWndFocus = GetFocus();\r
}\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
{\r
int i;\r
\r
- HideUI = YES;\r
+ // デッドロック対策\r
+// HideUI = YES;\r
+ HideUI++;\r
\r
for(i = 0; i < sizeof(HideMenus) / sizeof(int); i++)\r
{\r
}\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
{\r
int i;\r
\r
- if(HideUI == YES)\r
+ // デッドロック対策\r
+// if(HideUI == YES)\r
+ if(HideUI > 0)\r
+ HideUI--;\r
+ if(HideUI == 0)\r
{\r
for(i = 0; i < sizeof(HideMenus) / sizeof(int); i++)\r
{\r
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
- HideUI = NO;\r
+ // バグ修正\r
+// HideUI = NO;\r
\r
MakeButtonsFocus();\r
}\r
}\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
{\r
- return(HideUI);\r
+ // デッドロック対策\r
+// return(HideUI);\r
+ return (HideUI > 0 ? YES : NO);\r
}\r
\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
\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
}\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
}\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
}\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
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
}\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
\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
}\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
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
}\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
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
}\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
}\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
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
}\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
{\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
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
{\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
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
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
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
return;\r
}\r
\r
+void SaveLocalKanjiCode(void)\r
+{\r
+ LocalKanjiCode = TmpLocalKanjiCode;\r
+ return;\r
+}\r
+\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
}\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
}\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
}\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
\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
}\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
}\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
}\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
}\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
\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
\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
}\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
}\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
}\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
\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
}\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
}\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
}\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
}\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
\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
}\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
UINT Flg3;\r
int Count;\r
\r
- if(HideUI == NO)\r
+ // デッドロック対策\r
+// if(HideUI == NO)\r
+ if(HideUI == 0)\r
{\r
Flg1 = 0;\r
if(AskConnecting() == NO)\r
}\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
UINT Flg3;\r
int Count;\r
\r
- if(HideUI == NO)\r
+ // デッドロック対策\r
+// if(HideUI == NO)\r
+ if(HideUI == 0)\r
{\r
Flg1 = 0;\r
if(AskConnecting() == NO)\r
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
+ // 上位のディレクトリへ移動対応\r
+ AppendMenu(hMenu, MF_STRING | Flg1 | Flg2, MENU_REMOTE_MOVE_UPDIR, MSGJPN355);\r
AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);\r
AppendMenu(hMenu, MF_STRING | Flg1, MENU_FILESIZE, MSGJPN272);\r
AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);\r
}\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
char Tmp[FMAX_PATH+1];\r
int i;\r
\r
- AppendMenu(hMenu, MF_STRING | Flg, MENU_DCLICK, MSGJPN274);\r
+ // ローカルフォルダを開く\r
+// AppendMenu(hMenu, MF_STRING | Flg, MENU_DCLICK, MSGJPN274);\r
+ AppendMenu(hMenu, MF_STRING | Flg, MENU_OPEN, MSGJPN274);\r
for(i = 0; i < VIEWERS; i++)\r
{\r
if(strlen(ViewerName[i]) != 0)\r
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
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
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
}\r
return CallWindowProc(pOldTbarRemoteProc, hWnd, uMessage, wParam, lParam);\r
}\r
-/********************************************* \82±\82±\82Ü\82Å */\r
+/********************************************* ここまで */\r