Change URL strings.
Fix bugs of UTF-8 to UTF-16 API bridge.
Fix bugs of opening wrong files when they contain no extensions.
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;sfc.dll;shell32.dll;ole32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;ole32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
ProgramDatabaseFile=".\Release\FFFTP.pdb"\r
SubSystem="2"\r
RandomizedBaseAddress="1"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;sfc.dll;shell32.dll;ole32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;ole32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\Debug\FFFTP.pdb"\r
SubSystem="2"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;sfc.dll;shell32.dll;ole32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;ole32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
ProgramDatabaseFile=".\Release\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;sfc.dll;shell32.dll;ole32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;ole32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\FFFTP_Eng_Debug\FFFTP.pdb"\r
SubSystem="2"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;sfc.dll;shell32.dll;ole32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;ole32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
ProgramDatabaseFile=".\FFFTP_Eng_Release\FFFTP.pdb"\r
SubSystem="2"\r
RandomizedBaseAddress="1"\r
LinkIncremental="2"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;sfc.dll;shell32.dll;ole32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;ole32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
GenerateDebugInformation="true"\r
ProgramDatabaseFile=".\FFFTP_Eng_Debug\FFFTP.pdb"\r
SubSystem="2"\r
LinkIncremental="1"\r
SuppressStartupBanner="true"\r
GenerateManifest="false"\r
- DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;sfc.dll;shell32.dll;ole32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
+ DelayLoadDLLs="advapi32.dll;comctl32.dll;crypt32.dll;comdlg32.dll;gdi32.dll;ole32.dll;sfc.dll;shell32.dll;user32.dll;winmm.dll;wintrust.dll;wsock32.dll"\r
ProgramDatabaseFile=".\FFFTP_Eng_Release\FFFTP.pdb"\r
SubSystem="2"\r
/>\r
#define PROGRAM_VERSION_NUM 1990 /* バージョン */\r
\r
\r
-#define MYWEB_URL "http://www2.biglobe.ne.jp/~sota/ffftp-qa.html"\r
+// SourceForge.JPによるフォーク\r
+//#define MYWEB_URL "http://www2.biglobe.ne.jp/~sota/ffftp-qa.html"\r
+#define MYWEB_URL "http://sourceforge.jp/projects/ffftp/"\r
\r
\r
\r
void DispFileProperty(char *Fname)\r
{\r
SHELLEXECUTEINFO sInfo;\r
+ // 異なるファイルが表示されるバグ修正\r
+ // 詳細は不明だが末尾に半角スペースを置くと拡張子の補完がされなくなる\r
+ char Fname2[FMAX_PATH+1];\r
\r
memset(&sInfo, NUL, sizeof(SHELLEXECUTEINFO));\r
sInfo.cbSize = sizeof(SHELLEXECUTEINFO);\r
sInfo.fMask = SEE_MASK_INVOKEIDLIST;\r
sInfo.hwnd = NULL; //GetMainHwnd();\r
sInfo.lpVerb = "Properties";\r
- sInfo.lpFile = Fname;\r
+ // 異なるファイルが表示されるバグ修正\r
+// sInfo.lpFile = Fname;\r
+ strcpy(Fname2, Fname);\r
+ strcat(Fname2, " ");\r
+ sInfo.lpFile = Fname2;\r
sInfo.lpParameters = NULL;\r
sInfo.lpDirectory = NULL;\r
sInfo.nShow = SW_NORMAL;\r
break;\r
\r
case MENU_HELP_TROUBLE :\r
- ShellExecute(NULL, "open", MYWEB_URL, NULL, ".", SW_SHOW);\r
+ // 任意のコードが実行されるバグ修正\r
+// ShellExecute(NULL, "open", MYWEB_URL, NULL, ".", SW_SHOW);\r
+ ShellExecute(NULL, "open", MYWEB_URL, NULL, NULL, SW_SHOW);\r
break;\r
\r
case MENU_BMARK_ADD :\r
\r
AskLocalCurDir(CurDir, FMAX_PATH);\r
\r
- if((App == -1) && (FindExecutable(Fname, NULL, AssocProg) > (HINSTANCE)32))\r
+ // 任意のコードが実行されるバグ修正\r
+ // 拡張子が無いと補完されるため\r
+// if((App == -1) && (FindExecutable(Fname, NULL, AssocProg) > (HINSTANCE)32))\r
+ if((App == -1) && strrchr(Fname, '.') > strrchr(Fname, '\\') && (FindExecutable(Fname, NULL, AssocProg) > (HINSTANCE)32))\r
{\r
DoPrintf("ShellExecute - %s", Fname);\r
ShellExecute(NULL, "open", Fname, NULL, CurDir, SW_SHOW);\r
return r;\r
}\r
\r
+BOOL ShellExecuteExM(LPSHELLEXECUTEINFOA lpExecInfo)\r
+{\r
+ BOOL r = FALSE;\r
+ wchar_t* pw0 = NULL;\r
+ wchar_t* pw1 = NULL;\r
+ wchar_t* pw2 = NULL;\r
+ wchar_t* pw3 = NULL;\r
+ wchar_t* pw4 = NULL;\r
+ SHELLEXECUTEINFOW wExecInfo;\r
+START_ROUTINE\r
+ wExecInfo.cbSize = sizeof(SHELLEXECUTEINFOW);\r
+ wExecInfo.fMask = lpExecInfo->fMask;\r
+ wExecInfo.hwnd = lpExecInfo->hwnd;\r
+ pw0 = DuplicateMtoW(lpExecInfo->lpVerb, -1);\r
+ wExecInfo.lpVerb = pw0;\r
+ pw1 = DuplicateMtoW(lpExecInfo->lpFile, -1);\r
+ wExecInfo.lpFile = pw1;\r
+ pw2 = DuplicateMtoW(lpExecInfo->lpParameters, -1);\r
+ wExecInfo.lpParameters = pw2;\r
+ pw3 = DuplicateMtoW(lpExecInfo->lpDirectory, -1);\r
+ wExecInfo.lpDirectory = pw3;\r
+ wExecInfo.nShow = lpExecInfo->nShow;\r
+ wExecInfo.hInstApp = lpExecInfo->hInstApp;\r
+ wExecInfo.lpIDList = lpExecInfo->lpIDList;\r
+ if(lpExecInfo->fMask & SEE_MASK_CLASSNAME)\r
+ {\r
+ pw4 = DuplicateMtoW(lpExecInfo->lpClass, -1);\r
+ wExecInfo.lpClass = pw4;\r
+ }\r
+ wExecInfo.hkeyClass = lpExecInfo->hkeyClass;\r
+ wExecInfo.dwHotKey = lpExecInfo->dwHotKey;\r
+ wExecInfo.hIcon = lpExecInfo->hIcon;\r
+ wExecInfo.hProcess = lpExecInfo->hProcess;\r
+ r = ShellExecuteExW(&wExecInfo);\r
+ lpExecInfo->hInstApp = wExecInfo.hInstApp;\r
+ lpExecInfo->hProcess = wExecInfo.hProcess;\r
+END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ FreeDuplicatedString(pw1);\r
+ FreeDuplicatedString(pw2);\r
+ FreeDuplicatedString(pw3);\r
+ FreeDuplicatedString(pw4);\r
+ return r;\r
+}\r
+\r
PIDLIST_ABSOLUTE SHBrowseForFolderM(LPBROWSEINFOA lpbi)\r
{\r
PIDLIST_ABSOLUTE r = NULL;\r
#undef ShellExecute\r
#define ShellExecute ShellExecuteM\r
HINSTANCE ShellExecuteM(HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);\r
+#undef ShellExecuteEx\r
+#define ShellExecuteEx ShellExecuteExM\r
+BOOL ShellExecuteExM(LPSHELLEXECUTEINFOA lpExecInfo);\r
#undef SHBrowseForFolder\r
#define SHBrowseForFolder SHBrowseForFolderM\r
PIDLIST_ABSOLUTE SHBrowseForFolderM(LPBROWSEINFOA lpbi);\r
#define MSGJPN281 "Can't connect with PASV mode"\r
#define MSGJPN282 "INI filename is not specified"\r
#define MSGJPN283 "INI file : "\r
-#define MSGJPN284 "http://www2.biglobe.ne.jp/~sota/"\r
+#define MSGJPN284 "http://sourceforge.jp/projects/ffftp/"\r
#define MSGJPN285 "Failed to execute Registory Editor."\r
#define MSGJPN286 "Save Settings"\r
#define MSGJPN287 "Reg file\0*.reg\0All file\0*\0"\r
#define MSGJPN281 "Can't connect with PASV mode"\r
#define MSGJPN282 "INI filename is not specified"\r
#define MSGJPN283 "INI file : "\r
-#define MSGJPN284 "http://www2.biglobe.ne.jp/~sota/"\r
+#define MSGJPN284 "http://sourceforge.jp/projects/ffftp/"\r
#define MSGJPN285 "Failed to execute Registory Editor."\r
#define MSGJPN286 "Save Settings"\r
#define MSGJPN287 "Reg file\0*.reg\0All file\0*\0"\r
#define MSGJPN281 "PASV\xE3\x83\xA2\xE3\x83\xBC\xE3\x83\x89\xE3\x81\xA7\xE6\x8E\xA5\xE7\xB6\x9A\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
#define MSGJPN282 "INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE5\x90\x8D\xE3\x81\x8C\xE6\x8C\x87\xE5\xAE\x9A\xE3\x81\x95\xE3\x82\x8C\xE3\x81\xA6\xE3\x81\x84\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93"\r
#define MSGJPN283 "INI\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE6\x8C\x87\xE5\xAE\x9A\xEF\xBC\x9A"\r
-#define MSGJPN284 "http://www2.biglobe.ne.jp/~sota/"\r
+#define MSGJPN284 "http://sourceforge.jp/projects/ffftp/"\r
#define MSGJPN285 "\xE3\x83\xAC\xE3\x82\xB8\xE3\x82\xB9\xE3\x83\x88\xE3\x83\xAA\xE3\x82\xA8\xE3\x83\x87\xE3\x82\xA3\xE3\x82\xBF\xE3\x81\x8C\xE8\xB5\xB7\xE5\x8B\x95\xE3\x81\xA7\xE3\x81\x8D\xE3\x81\xBE\xE3\x81\x9B\xE3\x82\x93\xE3\x81\xA7\xE3\x81\x97\xE3\x81\x9F"\r
#define MSGJPN286 "\xE8\xA8\xAD\xE5\xAE\x9A\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\xE3\x81\xAE\xE4\xBF\x9D\xE5\xAD\x98"\r
#define MSGJPN287 "Reg\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*.reg\0\xE5\x85\xA8\xE3\x81\xA6\xE3\x81\xAE\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\0*\0"\r
#define MSGJPN281 "PASV\83\82\81[\83h\82Å\90Ú\91±\82Å\82«\82Ü\82¹\82ñ"\r
#define MSGJPN282 "INI\83t\83@\83C\83\8b\96¼\82ª\8ew\92è\82³\82ê\82Ä\82¢\82Ü\82¹\82ñ"\r
#define MSGJPN283 "INI\83t\83@\83C\83\8b\8ew\92è\81F"\r
-#define MSGJPN284 "http://www2.biglobe.ne.jp/~sota/"\r
+#define MSGJPN284 "http://sourceforge.jp/projects/ffftp/"\r
#define MSGJPN285 "\83\8c\83W\83X\83g\83\8a\83G\83f\83B\83^\82ª\8bN\93®\82Å\82«\82Ü\82¹\82ñ\82Å\82µ\82½"\r
#define MSGJPN286 "\90Ý\92è\83t\83@\83C\83\8b\82Ì\95Û\91¶"\r
#define MSGJPN287 "Reg\83t\83@\83C\83\8b\0*.reg\0\91S\82Ä\82Ì\83t\83@\83C\83\8b\0*\0"\r
{\r
if(SetCurrentDirectory(SysDir))\r
{\r
- if(ShellExecute(NULL, "open", "regedit", Tmp, ".", SW_SHOW) <= (HINSTANCE)32)\r
+ if(ShellExecute(NULL, "open", "regedit", Tmp, NULL, SW_SHOW) <= (HINSTANCE)32)\r
{\r
MessageBox(NULL, MSGJPN285, "FFFTP", MB_OK);\r
}\r
{\r
if(SetCurrentDirectory(SysDir))\r
{\r
- if(ShellExecute(NULL, "open", "regedit", Tmp, ".", SW_SHOW) <= (HINSTANCE)32)\r
+ if(ShellExecute(NULL, "open", "regedit", Tmp, NULL, SW_SHOW) <= (HINSTANCE)32)\r
{\r
MessageBox(NULL, MSGJPN285, "FFFTP", MB_OK);\r
}\r
if(strlen(Tmp) < FMAX_PATH)\r
{\r
strcpy(Buf, Tmp);\r
- // 0x5Cが含まれる文字列を扱えないバグ修正\r
-// ReplaceAll(Buf, '\\', '/');\r
- ChangeSepaRemote2Local(Buf);\r
- ChangeFnameRemote2Local(Buf, FMAX_PATH);\r
- // 0x5Cが含まれる文字列を扱えないバグ修正\r
ReplaceAll(Buf, '\\', '/');\r
+ ChangeSepaRemote2Local(Buf);\r
}\r
else\r
Sts = FTP_ERROR*100;\r
iContinue = NO;\r
iRetCode = ReadOneLine(cSkt, Tmp, ONELINE_BUF_SIZE, CancelCheckWork);\r
\r
+ // 文字化け対策\r
+ ChangeFnameRemote2Local(Tmp, ONELINE_BUF_SIZE);\r
SetTaskMsg("%s", Tmp);\r
\r
if(Buf != NULL)\r
\r
\r
\r
+// SourceForge.JPによるフォーク\r
+//#define MAIL_ADDRESS "sota@mwa.biglobe.ne.jp"\r
+//#define SOFTWARE "FFFTP"\r
+//#define MYNAME "曽田"\r
+//#define MYURL "http://www2.biglobe.ne.jp/~sota/"\r
+//#define INFOFILE "http://www2.biglobe.ne.jp/~sota/product/update.inf"\r
+// TODO: 更新の通知用のINFファイルのURL(SourceForge.JPに作成可能かどうか不明)\r
#define MAIL_ADDRESS "sota@mwa.biglobe.ne.jp"\r
#define SOFTWARE "FFFTP"\r
-#define MYNAME "曽田"\r
-#define MYURL "http://www2.biglobe.ne.jp/~sota/"\r
+#define MYNAME "FFFTP Project"\r
+#define MYURL "http://sourceforge.jp/projects/ffftp/"\r
#define INFOFILE "http://www2.biglobe.ne.jp/~sota/product/update.inf"\r
\r
\r