BOOL __stdcall SSLTimeoutCallback(BOOL* pbAborted);\r
BOOL __stdcall SSLConfirmCallback(BOOL* pbAborted, BOOL bVerified, LPCSTR Certificate, LPCSTR CommonName);\r
BOOL LoadSSLRootCAFile();\r
+// マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策\r
+BOOL IsMainThread();\r
\r
/*===== filelist.c =====*/\r
\r
// プロセスをDLL Injectionから保護する\r
#include "protectprocess.h"\r
// 使用するCPUを1個に限定する(マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策)\r
-#define DISABLE_MULTI_CPUS\r
+//#define DISABLE_MULTI_CPUS\r
// ファイル転送用のネットワークバッファを無効にする(通信中止後にリモートのディレクトリが表示されないバグ対策)\r
//#define DISABLE_TRANSFER_NETWORK_BUFFERS\r
// コントロール用のネットワークバッファを無効にする(フリーズ対策)\r
\r
// 暗号化通信対応\r
static char SSLRootCAFilePath[FMAX_PATH+1];\r
+// マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策\r
+static DWORD MainThreadId;\r
\r
\r
/*===== グローバルなワーク =====*/\r
InitializeLoadLibraryHook();\r
#endif\r
\r
+ // マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策\r
#ifdef DISABLE_MULTI_CPUS\r
SetProcessAffinityMask(GetCurrentProcess(), 1);\r
#endif\r
+ MainThreadId = GetCurrentThreadId();\r
\r
// yutaka\r
if(OleInitialize(NULL) != S_OK){\r
Ret = NO;\r
while(PeekMessage(&Msg, NULL, 0, 0, PM_REMOVE))\r
{\r
- if(!HtmlHelp(NULL, NULL, HH_PRETRANSLATEMESSAGE, (DWORD)&Msg))\r
+ // マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策\r
+// if(!HtmlHelp(NULL, NULL, HH_PRETRANSLATEMESSAGE, (DWORD)&Msg))\r
+ if(!IsMainThread() || !HtmlHelp(NULL, NULL, HH_PRETRANSLATEMESSAGE, (DWORD)&Msg))\r
{\r
/* ディレクトリ名の表示コンボボックスでBSやRETが効くように */\r
/* コンボボックス内ではアクセラレータを無効にする */\r
return bResult;\r
}\r
\r
+// マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策\r
+BOOL IsMainThread()\r
+{\r
+ if(GetCurrentThreadId() != MainThreadId)\r
+ return FALSE;\r
+ return TRUE;\r
+}
\ No newline at end of file