DispWindowTitle();\r
// SourceForge.JPによるフォーク\r
// SetTaskMsg("FFFTP Ver." VER_STR " Copyright(C) 1997-2010 Sota & cooperators.");\r
- SetTaskMsg("FFFTP Ver." VER_STR " Copyright(C) 1997-2010 Sota & cooperators.\r\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, raido).");\r
+ SetTaskMsg("FFFTP Ver." VER_STR " Copyright(C) 1997-2010 Sota & cooperators.\r\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).");\r
\r
if(ForceIni)\r
SetTaskMsg("%s%s", MSGJPN283, IniPath);\r
switch (message)\r
{\r
case WM_COMMAND :\r
+ // 同時接続対応\r
+ // 中断後に受信バッファに応答が残っていると次のコマンドの応答が正しく処理できない\r
+ if(CancelFlg == YES)\r
+ RemoveReceivedData(AskCmdCtrlSkt());\r
switch(LOWORD(wParam))\r
{\r
case MENU_CONNECT :\r
break;\r
\r
case MENU_FILTER :\r
+ // 同時接続対応\r
+ CancelFlg = NO;\r
SetFilter(&CancelFlg);\r
break;\r
\r
case MENU_SORT :\r
if(SortSetting() == YES)\r
{\r
+ // 同時接続対応\r
+ CancelFlg = NO;\r
LocalFileSort = AskSortType(ITEM_LFILE);\r
LocalDirSort = AskSortType(ITEM_LDIR);\r
RemoteFileSort = AskSortType(ITEM_RFILE);\r
break;\r
\r
case MENU_REFRESH :\r
+ // 同時接続対応\r
+ CancelFlg = NO;\r
SuppressRefresh = 1;\r
GetLocalDirForWnd();\r
if(CheckClosedAndReconnect() == FFFTP_SUCCESS)\r
break;\r
\r
case REFRESH_REMOTE :\r
+ // 同時接続対応\r
+ CancelFlg = NO;\r
SuppressRefresh = 1;\r
if(CheckClosedAndReconnect() == FFFTP_SUCCESS)\r
GetRemoteDirForWnd(CACHE_REFRESH, &CancelFlg);\r
break;\r
\r
case MENU_DOTFILE :\r
+ // 同時接続対応\r
+ CancelFlg = NO;\r
DotFile ^= 1;\r
DispDotFileMode();\r
GetLocalDirForWnd();\r
case LVN_COLUMNCLICK :\r
if(((NMHDR *)lParam)->hwndFrom == GetLocalHwnd())\r
{\r
+ // 同時接続対応\r
+ CancelFlg = NO;\r
SetSortTypeByColumn(WIN_LOCAL, ((NM_LISTVIEW *)lParam)->iSubItem);\r
ReSortDispList(WIN_LOCAL, &CancelFlg);\r
}\r
{\r
if(((NM_LISTVIEW *)lParam)->iSubItem != 4)\r
{\r
+ // 同時接続対応\r
+ CancelFlg = NO;\r
SetSortTypeByColumn(WIN_REMOTE, ((NM_LISTVIEW *)lParam)->iSubItem);\r
ReSortDispList(WIN_REMOTE, &CancelFlg);\r
}\r
// if((Sts = DoDownLoad(AskCmdCtrlSkt(), &MainTransPkt, NO)) == 429)\r
// {\r
// ReConnectCmdSkt();\r
+ // 同時接続対応\r
+ CancelFlg = NO;\r
Sts = DoDownLoad(AskCmdCtrlSkt(), &MainTransPkt, NO, &CancelFlg);\r
// }\r
}\r
char AssocProg[FMAX_PATH+1];\r
char ComLine[FMAX_PATH*2+3+1];\r
char CurDir[FMAX_PATH+1];\r
+ // 任意のコードが実行されるバグ修正\r
+ char SysDir[FMAX_PATH+1];\r
\r
/* FindExecutable()は関連付けられたプログラムのパス名にスペースが */\r
/* 含まれている時、間違ったパス名を返す事がある。 */\r
memset(&Startup, NUL, sizeof(STARTUPINFO));\r
Startup.cb = sizeof(STARTUPINFO);\r
Startup.wShowWindow = SW_SHOW;\r
- if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+ // 任意のコードが実行されるバグ修正\r
+// if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+// {\r
+// SetTaskMsg(MSGJPN182, GetLastError());\r
+// SetTaskMsg(">>%s", ComLine);\r
+// }\r
+ if(GetCurrentDirectory(FMAX_PATH, CurDir) > 0)\r
{\r
- SetTaskMsg(MSGJPN182, GetLastError());\r
- SetTaskMsg(">>%s", ComLine);\r
+ if(GetSystemDirectory(SysDir, FMAX_PATH) > 0)\r
+ {\r
+ if(SetCurrentDirectory(SysDir))\r
+ {\r
+ if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+ {\r
+ SetTaskMsg(MSGJPN182, GetLastError());\r
+ SetTaskMsg(">>%s", ComLine);\r
+ }\r
+ SetCurrentDirectory(CurDir);\r
+ }\r
+ }\r
}\r
}\r
return;\r
char AssocProg[FMAX_PATH+1];\r
char ComLine[FMAX_PATH*2+3+1];\r
char CurDir[FMAX_PATH+1];\r
+ // 任意のコードが実行されるバグ修正\r
+ char SysDir[FMAX_PATH+1];\r
\r
/* FindExecutable()は関連付けられたプログラムのパス名にスペースが */\r
/* 含まれている時、間違ったパス名を返す事がある。 */\r
memset(&Startup, NUL, sizeof(STARTUPINFO));\r
Startup.cb = sizeof(STARTUPINFO);\r
Startup.wShowWindow = SW_SHOW;\r
- if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+ // 任意のコードが実行されるバグ修正\r
+// if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+// {\r
+// SetTaskMsg(MSGJPN182, GetLastError());\r
+// SetTaskMsg(">>%s", ComLine);\r
+// }\r
+ if(GetCurrentDirectory(FMAX_PATH, CurDir) > 0)\r
{\r
- SetTaskMsg(MSGJPN182, GetLastError());\r
- SetTaskMsg(">>%s", ComLine);\r
+ if(GetSystemDirectory(SysDir, FMAX_PATH) > 0)\r
+ {\r
+ if(SetCurrentDirectory(SysDir))\r
+ {\r
+ if(CreateProcess(NULL, ComLine, NULL, NULL, FALSE, 0, NULL, NULL, &Startup, &Info) == FALSE)\r
+ {\r
+ SetTaskMsg(MSGJPN182, GetLastError());\r
+ SetTaskMsg(">>%s", ComLine);\r
+ }\r
+ SetCurrentDirectory(CurDir);\r
+ }\r
+ }\r
}\r
\r
return;\r
}\r
\r
// 暗号化通信対応\r
-BOOL __stdcall SSLTimeoutCallback()\r
+BOOL __stdcall SSLTimeoutCallback(BOOL* pbAborted)\r
{\r
Sleep(1);\r
if(BackgrndMessageProc() == YES)\r
return TRUE;\r
- // 念のためツールバーのMENU_ABORTも確認\r
-// if(MainTransPkt.Abort != ABORT_NONE)\r
-// {\r
-// MainTransPkt.Abort = ABORT_NONE;\r
-// return TRUE;\r
-// }\r
+ if(*pbAborted == YES)\r
+ return TRUE;\r
return FALSE;\r
}\r
\r
-BOOL __stdcall SSLConfirmCallback(BOOL bVerified, LPCSTR Certificate, LPCSTR CommonName)\r
+BOOL __stdcall SSLConfirmCallback(BOOL* pbAborted, BOOL bVerified, LPCSTR Certificate, LPCSTR CommonName)\r
{\r
BOOL bResult;\r
int i;\r
}\r
}\r
if(!bResult)\r
- CancelFlg = YES;\r
+ *pbAborted = YES;\r
return bResult;\r
}\r
\r