\r
SetTaskMsg(MSGJPN003);\r
\r
- DisableUserOpe();\r
+// DisableUserOpe();\r
/* 現在のソケットは切断 */\r
if(*Skt != INVALID_SOCKET)\r
do_closesocket(*Skt);\r
/* 再接続 */\r
if((*Skt = DoConnect(CurHost.HostAdrs, CurHost.UserName, CurHost.PassWord, CurHost.Account, CurHost.Port, CurHost.FireWall, NO, CurHost.Security)) != INVALID_SOCKET)\r
{\r
- AskRemoteCurDir(Path, FMAX_PATH);\r
+// AskRemoteCurDir(Path, FMAX_PATH);\r
// DoCWD(Path, YES, YES, YES);\r
Sts = FFFTP_SUCCESS;\r
}\r
else\r
SoundPlay(SND_ERROR);\r
\r
- EnableUserOpe();\r
+// EnableUserOpe();\r
return(Sts);\r
}\r
\r
{\r
DispTransPacket(Pkt);\r
\r
- WaitForSingleObject(hListAccMutex, INFINITE);\r
+ // 同時接続対応\r
+// WaitForSingleObject(hListAccMutex, INFINITE);\r
+ while(WaitForSingleObject(hListAccMutex, 0) == WAIT_TIMEOUT)\r
+ {\r
+ BackgrndMessageProc();\r
+ Sleep(1);\r
+ }\r
\r
if(AddTmpTransFileList(Pkt, &TransPacketBase) == FFFTP_SUCCESS)\r
{\r
{\r
TRANSPACKET *Pos;\r
\r
- WaitForSingleObject(hListAccMutex, INFINITE);\r
+ // 同時接続対応\r
+// WaitForSingleObject(hListAccMutex, INFINITE);\r
+ while(WaitForSingleObject(hListAccMutex, 0) == WAIT_TIMEOUT)\r
+ {\r
+ BackgrndMessageProc();\r
+ Sleep(1);\r
+ }\r
\r
if(TransPacketBase == NULL)\r
TransPacketBase = Pkt;\r
\r
NotDel = NULL;\r
\r
- WaitForSingleObject(hListAccMutex, INFINITE);\r
+ // 同時接続対応\r
+// WaitForSingleObject(hListAccMutex, INFINITE);\r
+ while(WaitForSingleObject(hListAccMutex, 0) == WAIT_TIMEOUT)\r
+ {\r
+ BackgrndMessageProc();\r
+ Sleep(1);\r
+ }\r
New = TransPacketBase;\r
while(New != NULL)\r
{\r
if(fTransferThreadExit == TRUE)\r
break;\r
\r
- WaitForSingleObject(hListAccMutex, INFINITE);\r
+// WaitForSingleObject(hListAccMutex, INFINITE);\r
+ while(WaitForSingleObject(hListAccMutex, 0) == WAIT_TIMEOUT)\r
+ {\r
+ BackgrndMessageProc();\r
+ Sleep(1);\r
+ }\r
memset(ErrMsg, NUL, ERR_MSG_LEN+7);\r
\r
// Canceled = NO;\r
{\r
ReleaseMutex(hListAccMutex);\r
ReConnectTrnSkt(&TrnSkt);\r
- WaitForSingleObject(hListAccMutex, INFINITE);\r
+// WaitForSingleObject(hListAccMutex, INFINITE);\r
+ while(WaitForSingleObject(hListAccMutex, 0) == WAIT_TIMEOUT)\r
+ {\r
+ BackgrndMessageProc();\r
+ Sleep(1);\r
+ }\r
}\r
}\r
else\r
ReleaseMutex(hListAccMutex);\r
DoClose(TrnSkt);\r
TrnSkt = INVALID_SOCKET;\r
- WaitForSingleObject(hListAccMutex, INFINITE);\r
+// WaitForSingleObject(hListAccMutex, INFINITE);\r
+ while(WaitForSingleObject(hListAccMutex, 0) == WAIT_TIMEOUT)\r
+ {\r
+ BackgrndMessageProc();\r
+ Sleep(1);\r
+ }\r
}\r
}\r
CmdSkt = NewCmdSkt;\r
\r
if(ForceAbort == NO)\r
{\r
- WaitForSingleObject(hListAccMutex, INFINITE);\r
+// WaitForSingleObject(hListAccMutex, INFINITE);\r
+ while(WaitForSingleObject(hListAccMutex, 0) == WAIT_TIMEOUT)\r
+ {\r
+ BackgrndMessageProc();\r
+ Sleep(1);\r
+ }\r
if(ClearAll == YES)\r
// EraseTransFileList();\r
{\r
r = TerminateStringM((LPSTR)lParam, wParam);
break;
case WM_GETTEXTLENGTH:
- Size = SendMessageW(hWnd, WM_GETTEXTLENGTH, 0, 0) + 1;
+ Size = SendMessageW(hWnd, WM_GETTEXTLENGTH, wParam, lParam) + 1;
pw0 = AllocateStringW(Size);
SendMessageW(hWnd, WM_GETTEXT, (WPARAM)Size, (LPARAM)pw0);
r = WtoM(NULL, 0, pw0, -1) - 1;
break;\r
}\r
}\r
+ // APIの仕様上ハンドルが登録される前にウィンドウメッセージが呼び出される可能性あり\r
+ if(Pos == MAX_SIGNAL_ENTRY_DBASE)\r
+ {\r
+ for(Pos = 0; Pos < MAX_SIGNAL_ENTRY_DBASE; Pos++)\r
+ {\r
+ if(SignalDbase[Pos].Async == 0)\r
+ {\r
+ SignalDbase[Pos].Async = (HANDLE)wParam;\r
+ SignalDbase[Pos].Done = 0;\r
+ SignalDbase[Pos].ErrorDb = 0;\r
+ if(HIWORD(lParam) != 0)\r
+ {\r
+ SignalDbase[Pos].ErrorDb = 1;\r
+#if DBG_MSG\r
+ DoPrintf("##### SignalDatabase: error");\r
+#endif\r
+ }\r
+ SignalDbase[Pos].Done = 1;\r
+#if DBG_MSG\r
+ DoPrintf("##### SignalDatabase: Done");\r
+#endif\r
+ break;\r
+ }\r
+ }\r
+ }\r
// スレッド衝突のバグ修正\r
ReleaseMutex(hAsyncTblAccMutex);\r
break;\r
{\r
// 強制的に閉じられたハンドルがあると重複する可能性あり\r
// MessageBox(GetMainHwnd(), "Async handle already registerd.", "FFFTP inner error", MB_OK);\r
- SignalDbase[Pos].Async = 0;\r
+ // APIの仕様上ハンドルが登録される前にウィンドウメッセージが呼び出される可能性あり\r
break;\r
}\r
}\r