Modify documents.
BEGIN\r
DEFPUSHBUTTON "OK",IDOK,133,294,50,14\r
ICON ffftp,-1,7,4,20,20\r
- CTEXT "FFFTP Ver 1.98d",-1,113,11,90,8\r
+ CTEXT "FFFTP Ver 1.98e",-1,113,11,90,8\r
CTEXT "FFFTP\82Ífreeware\82Å\82·",-1,7,279,305,8\r
- CTEXT "Copyright(C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, \82¤\82È\81[, Asami, fortran90, tomo1192)",-1,7,25,305,44,SS_NOPREFIX\r
+ CTEXT "Copyright(C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, \82¤\82È\81[, Asami, fortran90, tomo1192, Yuji Tanaka)",-1,7,25,305,44,SS_NOPREFIX\r
CTEXT "",ABOUT_JRE,7,96,305,8\r
EDITTEXT ABOUT_URL,7,76,305,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
CTEXT "OLE D&&D\8b@\94\ by \95½\93c\96L\82³\82ñ\81Anakka\82³\82ñ\n\83z\83X\83g\93à\82Å\82Ì\83t\83@\83C\83\8b\88Ú\93®\8b@\94\ by \95½\93c\96L\82³\82ñ\n\82¢\82\82Â\82©\82Ì\8b@\94\ by miau\82³\82ñ\n\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\8b@\94\ by \82°\82ñ\82°\82ñ\82³\82ñ\nAES\88Ã\8d\86\89» by Moca\82³\82ñ\n\n\91¼\81A\91½\82\82Ì\95û\82Ì\82²\8b¦\97Í\82ð\82¢\82½\82¾\82«\82Ü\82µ\82½\81B",-1,7,143,305,60\r
CONTROL "\89B\82µ\91®\90«\82Ì\83t\83@\83C\83\8b\81A\83t\83H\83\8b\83_\82Í\95\\8e¦\82µ\82È\82¢(&H)",DISP_HIDE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,30,172,10\r
LTEXT "\89B\82µ\91®\90«\82Ì\83t\83@\83C\83\8b\82ð\95\\8e¦\82µ\82È\82¢\82æ\82¤\82É\82·\82é\82Æ\81A\83~\83\89\81[\83\8a\83\93\83O\83A\83b\83v\83\8d\81[\83h\82Å\82à\89B\82µ\91®\90«\82Ì\83t\83@\83C\83\8b\82Í\83A\83b\83v\83\8d\81[\83h\82µ\82È\82¢\82æ\82¤\82É\82È\82è\82Ü\82·\81B",-1,29,44,167,27,SS_SUNKEN\r
CONTROL "\83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\88ê\97\97\82É\83h\83\89\83C\83u\96¼\82à\95\\8e¦\82·\82é(&D)",DISP_DRIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,79,172,10\r
+ CONTROL "\83\8d\81[\83J\83\8b\91¤\82Ì\83t\83@\83C\83\8b\88ê\97\97\82É\83A\83C\83R\83\93\82ð\95\\8e¦\82·\82é(&I)",DISP_ICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,93,172,10\r
END\r
\r
bmark_edit_dlg DIALOG 0, 0, 187, 83\r
//\r
\r
VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 1,98,4,0\r
- PRODUCTVERSION 1,98,4,0\r
+ FILEVERSION 1,98,5,0\r
+ PRODUCTVERSION 1,98,5,0\r
FILEFLAGSMASK 0x3fL\r
#ifdef _DEBUG\r
FILEFLAGS 0x1L\r
VALUE "Comments", "\82±\82ê\82Í\83t\83\8a\81[\83\\83t\83g\83E\83G\83A\82Å\82·\81B"\r
VALUE "CompanyName", " "\r
VALUE "FileDescription", "FFFTP"\r
- VALUE "FileVersion", "1, 98, 4, 0"\r
+ VALUE "FileVersion", "1, 98, 5, 0"\r
VALUE "InternalName", "FFFTP"\r
- VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, \82¤\82È\81[, Asami, fortran90, tomo1192)."\r
+ VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, \82¤\82È\81[, Asami, fortran90, tomo1192, Yuji Tanaka)."\r
VALUE "OriginalFilename", "FFFTP.exe"\r
VALUE "ProductName", "FFFTP"\r
- VALUE "ProductVersion", "1, 98, 4, 0"\r
+ VALUE "ProductVersion", "1, 98, 5, 0"\r
END\r
END\r
BLOCK "VarFileInfo"\r
#define FIRE_RESOLV 1013\r
#define HSET_DIALNOTIFY 1013\r
#define MIRROR_DOWNDEL_NOTIFY 1013\r
+#define DISP_ICON 1013\r
#define OPT1_EDITOR_BR 1014\r
#define PERM_G_WRITE 1014\r
#define SORT_RDIR_REV 1014\r
BEGIN\r
DEFPUSHBUTTON "OK",IDOK,132,296,50,14\r
ICON ffftp,-1,7,4,20,20\r
- CTEXT "FFFTP Ver 1.98d",-1,110,11,90,8\r
+ CTEXT "FFFTP Ver 1.98e",-1,110,11,90,8\r
CTEXT "FFFTP is freeware",-1,7,281,301,8\r
- CTEXT "Copyright(C) 1997-2010 Sota && cooperators\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192)",-1,7,25,301,44\r
+ CTEXT "Copyright(C) 1997-2010 Sota && cooperators\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka)",-1,7,25,301,44\r
CTEXT "",ABOUT_JRE,7,93,301,8\r
EDITTEXT ABOUT_URL,7,76,301,12,ES_CENTER | ES_AUTOHSCROLL | ES_READONLY | NOT WS_BORDER\r
CTEXT "OLE D&&D by Yutaka Hirata-san, nakka-san\nIn site file mover by Hirata-san\nAny issues by miau-san\nMaster Password by Gengen-san\nAES encryption by Moca-san\n\nI had cooperation of many other one.",-1,7,142,301,59\r
CONTROL "Do not display &hidden files/folders",DISP_HIDE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,30,172,10\r
LTEXT "If this box is checked, hidden files/folders are not transferred during Mirror operations.",-1,29,44,167,27,SS_SUNKEN\r
CONTROL "&Display drives in the file list",DISP_DRIVE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,76,172,10\r
+ CONTROL "Display &icons in the file list",DISP_ICON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,90,172,10\r
END\r
\r
bmark_edit_dlg DIALOG 0, 0, 187, 83\r
//\r
\r
VS_VERSION_INFO VERSIONINFO\r
- FILEVERSION 1,98,4,0\r
- PRODUCTVERSION 1,98,4,0\r
+ FILEVERSION 1,98,5,0\r
+ PRODUCTVERSION 1,98,5,0\r
FILEFLAGSMASK 0x3fL\r
#ifdef _DEBUG\r
FILEFLAGS 0x1L\r
VALUE "Comments", "This software is Free Software"\r
VALUE "CompanyName", " Sota"\r
VALUE "FileDescription", "FFFTP"\r
- VALUE "FileVersion", "1, 98, 4, 0"\r
+ VALUE "FileVersion", "1, 98, 5, 0"\r
VALUE "InternalName", "FFFTP"\r
- VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & cooperators\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192)."\r
+ VALUE "LegalCopyright", "Copyright (C) 1997-2010 Sota & cooperators\nCopyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka)."\r
VALUE "OriginalFilename", "FFFTP.exe"\r
VALUE "ProductName", "FFFTP"\r
- VALUE "ProductVersion", "1, 98, 4, 0"\r
+ VALUE "ProductVersion", "1, 98, 5, 0"\r
END\r
END\r
BLOCK "VarFileInfo"\r
#define FIRE_RESOLV 1013\r
#define HSET_DIALNOTIFY 1013\r
#define MIRROR_DOWNDEL_NOTIFY 1013\r
+#define DISP_ICON 1013\r
#define OPT1_EDITOR_BR 1014\r
#define PERM_G_WRITE 1014\r
#define SORT_RDIR_REV 1014\r
//#define VER_STR "1.97b"\r
//#define VER_NUM 1921 /* 設定バージョン */\r
//#define PROGRAM_VERSION_NUM 1972 /* バージョン */\r
-#define VER_STR "1.98d"\r
-#define VER_NUM 1984 /* 設定バージョン */\r
-#define PROGRAM_VERSION_NUM 1984 /* バージョン */\r
+#define VER_STR "1.98e"\r
+#define VER_NUM 1985 /* 設定バージョン */\r
+#define PROGRAM_VERSION_NUM 1985 /* バージョン */\r
\r
\r
// SourceForge.JPによるフォーク\r
FILETIME Time; /* 時間(UTC) */\r
char Owner[OWNER_NAME_LEN+1]; /* オーナ名 */\r
char InfoExist; /* ファイル一覧に存在した情報のフラグ (FINFO_xxx) */\r
+ // ファイルアイコン表示対応\r
+ int ImageId; /* アイコン画像番号 */\r
struct filelist *Next;\r
} FILELIST;\r
\r
BOOL LoadSSLRootCAFile();\r
// マルチコアCPUの特定環境下でファイル通信中にクラッシュするバグ対策\r
BOOL IsMainThread();\r
+// ファイルアイコン表示対応\r
+int AskDispFileIcon(void);\r
\r
/*===== filelist.c =====*/\r
\r
============================================================\r
-[Software Name] FFFTP Ver.1.98d (FTP Client software)\r
+[Software Name] FFFTP Ver.1.98e (FTP Client software)\r
[Copyright] Copyright(C) 1997-2010 Sota & cooperators\r
- Copyright(C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).\r
+ Copyright(C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka).\r
[Environment] Windows 7, Vista, XP, 2000\r
============================================================\r
\r
File ->\81@Settings -> Change Master password\r
\r
\r
-Changes in Ver.1.98d\r
+Changes in Ver.1.98e\r
--------------------\r
\r
--- MLSD command became used for retrieving filenames on appropriate hosts.\r
- That is helpful for hosts that do not return filenames properly.\r
+-- Fixed bugs that an inputted password is ignored if failed in login.\r
\r
--- Enhanced communication routines to reduce waiting time.\r
+-- Fixed bugs to crash under multicore CPU environment.\r
\r
--- Changed to display responses from hosts after decoding as Kanji code of\r
- filenames.\r
+-- Changed the location of temporary files.\r
+ This resolves interference in file list caches between instances of FFFTP.\r
\r
--- Fixed bugs of arbitrary code execution in saving registry settings to a\r
- file.\r
-\r
--- Fixed bugs of launching wrong files if correct ones contain no extensions.\r
-\r
--- Internet Protocol Version 6 became available.\r
- IPv6 will be used when name resolution for IPv4 is unavailable by default.\r
-\r
--- Changed to detect encoding of strings in INI file automatically.\r
-\r
--- Changed to verify SSL/TLS certificates with root CAs in FTPS connections.\r
- Please modify "ssl.pem" in PEM format if you want to update root CA list.\r
-\r
--- Added a feature to send commands for keep alive.\r
- This is disabled by default.\r
-\r
--- Reduced chance of stopping transfer when numerous files are transfered.\r
-\r
--- Added a feature to retry transfering files if failed.\r
-\r
--- Enhanced automatic detection of Kanji code of filenames.\r
+-- Supported the file list format of linux-ftpd.\r
\r
\r
Outline\r
License Agreement\r
-----------------\r
Copyright(C) 1997-2010, Sota & cooperators. All rights reserved.\r
-Copyright(C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).\r
+Copyright(C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka).\r
\r
Redistribution and use in source and binary forms, with or without \r
modification, are permitted provided that the following conditions \r
FFFTP version history.\r
\r
+Changes in Ver.1.98e\r
+--------------------\r
+\r
+-- Fixed bugs that an inputted password is ignored if failed in login.\r
+\r
+-- Fixed bugs to crash under multicore CPU environment.\r
+\r
+-- Changed the location of temporary files.\r
+ This resolves interference in file list caches between instances of FFFTP.\r
+\r
+-- Supported the file list format of linux-ftpd.\r
+\r
Changes in Ver.1.98d\r
--------------------\r
\r
============================================================\r
-\81y\83\\83t\83g\96¼\81z\81@FTP\83N\83\89\83C\83A\83\93\83g FFFTP\81isf.jp\94Å\81j Ver 1.98d\r
+\81y\83\\83t\83g\96¼\81z\81@FTP\83N\83\89\83C\83A\83\93\83g FFFTP\81isf.jp\94Å\81j Ver 1.98e\r
\81y\93®\8dì\8am\94F\8aÂ\8b«\81z\81@Windows 7\81AVista\81AXP\81A2000\r
\81y\83T\83|\81[\83g\81z\81@http://sourceforge.jp/projects/ffftp/\r
============================================================\r
\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82Ì\93ü\97Í\82ª\8b\81\82ß\82ç\82ê\82Ü\82·\82Ì\82Å\81A\93ü\97Í\82µ\82Ä\82\82¾\82³\82¢\81B\r
\r
\r
-Ver 1.98d\82Å\82Ì\95Ï\8dX\93_\r
+Ver 1.98e\82Å\82Ì\95Ï\8dX\93_\r
-------------------\r
\r
-\81EMLSD\83R\83}\83\93\83h\82É\91Î\89\9e\82µ\82½\83z\83X\83g\82Å\82ÍMLSD\83R\83}\83\93\83h\82ð\97p\82¢\82Ä\83t\83@\83C\83\8b\88ê\97\97\82ð\r
-\81@\8eæ\93¾\82·\82é\82æ\82¤\82É\82µ\82Ü\82µ\82½\81BLIST\83R\83}\83\93\83h\82Ì\89\9e\93\9a\82É\93Á\92è\82Ì\83t\83@\83C\83\8b\82ª\r
-\81@\8aÜ\82Ü\82ê\82È\82¢\88ê\95\94\82Ì\83z\83X\83g\82Å\82à\90³\82µ\82\97ñ\8b\93\82Å\82«\82é\89Â\94\\90«\82ª\8d\82\82\82È\82è\82Ü\82·\81B\r
+\81E\83z\83X\83g\82Ì\83p\83X\83\8f\81[\83h\82ª\90³\82µ\82\82È\82¢\8fê\8d\87\82É\83p\83X\83\8f\81[\83h\82ð\8eè\93®\82Å\8dÄ\93x\93ü\97Í\82µ\82Ä\82à\r
+\81@\83\8d\83O\83C\83\93\82Å\82«\82È\82¢\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
\r
-\81E\92Ê\90M\82Ì\83\8b\81[\83`\83\93\82ð\91Ò\82¿\8e\9e\8aÔ\82ª\8c¸\82é\82æ\82¤\82É\89ü\91P\82µ\82Ü\82µ\82½\81B\r
+\81E\83}\83\8b\83`\83R\83ACPU\82Ì\93Á\92è\8aÂ\8b«\89º\82Å\83N\83\89\83b\83V\83\85\82·\82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
\r
-\81E\83z\83X\83g\82Ì\89\9e\93\9a\82ð\83z\83X\83g\82Ì\83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h\82Å\83f\83R\81[\83h\82µ\82Ä\82©\82ç\83\8d\83O\82É\r
-\81@\95\\8e¦\82·\82é\82æ\82¤\82É\95Ï\8dX\82µ\82Ü\82µ\82½\81B\r
+\81E\8dì\8bÆ\83t\83@\83C\83\8b\82ð\95Û\91¶\82·\82é\83t\83H\83\8b\83_\82Ì\8d\\90¬\82ð\95Ï\8dX\82µ\82Ü\82µ\82½\81B\82±\82ê\82É\82æ\82èFFFTP\82ð\r
+\81@\95¡\90\94\8bN\93®\82µ\82Ä\82à\83L\83\83\83b\83V\83\85\82ª\8a±\8fÂ\82µ\82È\82\82È\82è\82Ü\82·\81B\r
\r
-\81E\83\8c\83W\83X\83g\83\8a\82Ì\90Ý\92è\82ð\83t\83@\83C\83\8b\82É\95Û\91¶\82·\82é\82Æ\82«\82É\94C\88Ó\82Ì\83R\81[\83h\82ª\8eÀ\8ds\82³\82ê\82é\r
-\81@\89Â\94\\90«\82ª\82 \82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\8ag\92£\8eq\82ª\96³\82¢\83t\83@\83C\83\8b\82ð\83_\83u\83\8b\83N\83\8a\83b\83N\82µ\82½\8fê\8d\87\82É\91I\91ð\82³\82ê\82½\82à\82Ì\82Æ\88Ù\82È\82é\r
-\81@\83t\83@\83C\83\8b\82ª\95\\8e¦\82³\82ê\82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83z\83X\83g\82Æ\82Ì\90Ú\91±\82ÉInternet Protocol Version 6\81i\97ª\8fÌIPv6\81j\82ª\8eg\97p\82Å\82«\82é\r
-\81@\82æ\82¤\82É\82È\82è\82Ü\82µ\82½\81B\83f\83t\83H\83\8b\83g\82Å\82Í\8f]\97\88\82ÌIPv4\82Å\96¼\91O\89ð\8c\88\82ª\82Å\82«\82È\82¢\8fê\8d\87\82É\r
-\81@IPv6\82Å\90Ú\91±\82ð\8e\8e\82Ý\82é\82æ\82¤\82É\82È\82è\82Ü\82·\81B\r
-\r
-\81EINI\83t\83@\83C\83\8b\82Ì\95¶\8e\9a\97ñ\82Ì\95¶\8e\9a\83R\81[\83h\82ð\8e©\93®\94»\95Ê\82·\82é\82æ\82¤\82É\95Ï\8dX\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83\81\83C\83\93\83E\83B\83\93\83h\83E\82ª\8eg\97p\82µ\82Ä\82¢\82é\90Ú\91±\82ð\93]\91\97\97p\82É\8dÄ\8eg\97p\82·\82é\82½\82ß\82Ì\90Ý\92è\82ð\r
-\81@\92Ç\89Á\82µ\82Ü\82µ\82½\81B\82±\82ê\82É\82æ\82è1.97b\88È\91O\82Å\93]\91\97\89Â\94\\82¾\82Á\82½\82ª1.98\82Å\93]\91\97\95s\94\\82É\r
-\81@\82È\82é\82Æ\82¢\82¤\8fÇ\8fó\82ª\89ü\91P\82³\82ê\82Ü\82·\82ª\81A\95s\8bï\8d\87\82ª\94\90¶\82·\82é\89Â\94\\90«\82ª\82 \82è\82Ü\82·\81B\r
-\r
-\81EFTPS\82Å\90Ú\91±\82µ\82½\8e\9e\82ÉSSL/TLS\82Ì\83\8b\81[\83g\8fØ\96¾\8f\91\82ð\97p\82¢\82Ä\83z\83X\83g\82Ì\8fØ\96¾\8f\91\82ð\8c\9f\8fØ\r
-\81@\82·\82é\82æ\82¤\82É\95Ï\8dX\82µ\82Ü\82µ\82½\81B\83\8b\81[\83g\8fØ\96¾\8f\91\82ð\8dX\90V\82·\82é\82É\82Í\93¯\8d«\82Ì"ssl.pem"\r
-\81@\83t\83@\83C\83\8b\82ðPEM\8c`\8e®\82É\8f]\82Á\82Ä\8f\91\82«\8a·\82¦\82Ä\82\82¾\82³\82¢\81B\r
-\r
-\81E\83z\83X\83g\82Æ\82Ì\90Ú\91±\82ð\88Û\8e\9d\82·\82é\82½\82ß\82É\88ê\92è\8e\9e\8aÔ\82²\82Æ\82É\83R\83}\83\93\83h\82ð\91\97\90M\82·\82é\8b@\94\\82ð\r
-\81@\92Ç\89Á\82µ\82Ü\82µ\82½\81B\82½\82¾\82µ\82±\82Ì\8b@\94\\82Í\83f\83t\83H\83\8b\83g\82Å\82Í\96³\8cø\82É\90Ý\92è\82³\82ê\82Ü\82·\81B\r
-\r
-\81E\91å\97Ê\82Ì\83t\83@\83C\83\8b\82ð\93]\91\97\82µ\82½\8e\9e\82É\93r\92\86\82Å\93]\91\97\82ª\8fI\97¹\82·\82é\83o\83O\82ð\8cy\8c¸\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83t\83@\83C\83\8b\82Ì\93]\91\97\82É\8e¸\94s\82µ\82½\8fê\8d\87\82É\93]\91\97\82ð\82â\82è\92¼\82·\8b@\94\\82ð\92Ç\89Á\82µ\82Ü\82µ\82½\81B\r
-\r
-\81E\83z\83X\83g\82Ì\83t\83@\83C\83\8b\96¼\82Ì\8a¿\8e\9a\83R\81[\83h\82Ì\8e©\93®\94»\95Ê\82Ì\90¸\93x\82ð\89ü\91P\82µ\82Ü\82µ\82½\81B\r
+\81Elinux-ftpd\82Ì\83t\83@\83C\83\8b\88ê\97\97\8c`\8e®\82É\91Î\89\9e\82µ\82Ü\82µ\82½\81B\r
\r
\r
Ver 1.96d\88È\91O\82Ö\96ß\82·\8fê\8d\87\r
\82µ\82Ü\82·\81B\r
\r
Copyright(C) 1997-2010, Sota & cooperators. All rights reserved.\r
-Copyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).\r
+Copyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka).\r
\r
Redistribution and use in source and binary forms, with or without \r
modification, are permitted provided that the following conditions \r
*** \88È\89º\82Í\93ú\96{\8cê\96ó(\8eQ\8dl) ***\r
\r
Copyright(C) 1997-2010 Sota & \82²\8b¦\97Í\82¢\82½\82¾\82¢\82½\95û\81X. All rights reserved.\r
-Copyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192).\r
+Copyright (C) 2011 FFFTP Project (Hiromichi Matsushima, Suguru Kawamoto, IWAMOTO Kouichi, vitamin0x, unarist, Asami, fortran90, tomo1192, Yuji Tanaka).\r
\r
\83\\81[\83X\83R\81[\83h\8c`\8e®\82Å\82à\83o\83C\83i\83\8a\8c`\8e®\82Å\82à\81A\95Ï\8dX\82Ì\97L\96³\82É\8aÖ\82í\82ç\82¸\81A\88È\89º\82Ì\8fð\8c\8f\82ð\r
\96\9e\82½\82·\8fê\8d\87\82É\81A\8dÄ\94z\95z\82¨\82æ\82Ñ\8eg\97p\82ð\8b\96\89Â\82µ\82Ü\82·\81B\r
FFFTP\81@\89ü\94Å\83\8a\83X\83g\r
\r
+\81¡Ver 1.98e\r
+\r
+\81E\83z\83X\83g\82Ì\83p\83X\83\8f\81[\83h\82ª\90³\82µ\82\82È\82¢\8fê\8d\87\82É\83p\83X\83\8f\81[\83h\82ð\8eè\93®\82Å\8dÄ\93x\93ü\97Í\82µ\82Ä\82à\r
+\81@\83\8d\83O\83C\83\93\82Å\82«\82È\82¢\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
+\r
+\81E\83}\83\8b\83`\83R\83ACPU\82Ì\93Á\92è\8aÂ\8b«\89º\82Å\83N\83\89\83b\83V\83\85\82·\82é\83o\83O\82ð\8fC\90³\82µ\82Ü\82µ\82½\81B\r
+\r
+\81E\8dì\8bÆ\83t\83@\83C\83\8b\82ð\95Û\91¶\82·\82é\83t\83H\83\8b\83_\82Ì\8d\\90¬\82ð\95Ï\8dX\82µ\82Ü\82µ\82½\81B\82±\82ê\82É\82æ\82èFFFTP\82ð\r
+\81@\95¡\90\94\8bN\93®\82µ\82Ä\82à\83L\83\83\83b\83V\83\85\82ª\8a±\8fÂ\82µ\82È\82\82È\82è\82Ü\82·\81B\r
+\r
+\81Elinux-ftpd\82Ì\83t\83@\83C\83\8b\88ê\97\97\8c`\8e®\82É\91Î\89\9e\82µ\82Ü\82µ\82½\81B\r
+\r
\81¡Ver 1.98d\r
\r
\81EMLSD\83R\83}\83\93\83h\82É\91Î\89\9e\82µ\82½\83z\83X\83g\82Å\82ÍMLSD\83R\83}\83\93\83h\82ð\97p\82¢\82Ä\83t\83@\83C\83\8b\88ê\97\97\82ð\r
static void AddDispFileList(FLISTANCHOR *Anchor, char *Name, FILETIME *Time, LONGLONG Size, int Attr, int Type, int Link, char *Owner, int InfoExist, int Win);\r
static void EraseDispFileList(FLISTANCHOR *Anchor);\r
static void DispFileList2View(HWND hWnd, FLISTANCHOR *Anchor);\r
-static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist);\r
+// ファイルアイコン表示対応\r
+//static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist);\r
+static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist, int ImageId);\r
// 64ビット対応\r
//static BOOL CALLBACK SelectDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
static INT_PTR CALLBACK SelectDialogCallBack(HWND hDlg, UINT iMessage, WPARAM wParam, LPARAM lParam);\r
* なし\r
*----------------------------------------------------------------------------*/\r
\r
+// ファイルアイコン表示対応\r
+void RefreshIconImageList(FLISTANCHOR *Anchor)\r
+{\r
+ HBITMAP hBitmap;\r
+ int ImageId;\r
+ FILELIST *Pos;\r
+ int i;\r
+ char Cur[FMAX_PATH+1];\r
+ SHFILEINFO FileInfo;\r
+ SendMessage(hWndListLocal, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)NULL);\r
+ ShowWindow(hWndListLocal, SW_SHOW);\r
+ SendMessage(hWndListRemote, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)NULL);\r
+ ShowWindow(hWndListRemote, SW_SHOW);\r
+ ImageList_Destroy(ListImg);\r
+ ListImg = ImageList_Create(16, 16, ILC_MASK | ILC_COLOR24, 0, 1);\r
+ hBitmap = LoadBitmap(GetFtpInst(), MAKEINTRESOURCE(dirattr_bmp));\r
+ ImageList_AddMasked(ListImg, hBitmap, RGB(255,0,0));\r
+ DeleteObject(hBitmap);\r
+ ImageId = 0;\r
+ Pos = Anchor->Top;\r
+ for(i = 0; i < Anchor->Files; i++)\r
+ {\r
+ Pos->ImageId = -1;\r
+ if(AskDispFileIcon() == YES)\r
+ {\r
+ if(Pos->Node == NODE_DRIVE)\r
+ strcpy(Cur, Pos->File);\r
+ else\r
+ {\r
+ AskLocalCurDir(Cur, FMAX_PATH);\r
+ SetYenTail(Cur);\r
+ strcat(Cur, Pos->File);\r
+ }\r
+ if(SHGetFileInfoM(Cur, 0, &FileInfo, sizeof(SHFILEINFO), SHGFI_SMALLICON | SHGFI_ICON) != 0)\r
+ {\r
+ if(ImageList_AddIcon(ListImg, FileInfo.hIcon) >= 0)\r
+ {\r
+ Pos->ImageId = ImageId;\r
+ ImageId++;\r
+ }\r
+ DestroyIcon(FileInfo.hIcon);\r
+ }\r
+ }\r
+ Pos = Pos->Next;\r
+ }\r
+ SendMessage(hWndListLocal, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImg);\r
+ ShowWindow(hWndListLocal, SW_SHOW);\r
+ SendMessage(hWndListRemote, LVM_SETIMAGELIST, LVSIL_SMALL, (LPARAM)ListImg);\r
+ ShowWindow(hWndListRemote, SW_SHOW);\r
+}\r
+\r
void GetLocalDirForWnd(void)\r
{\r
HANDLE fHnd;\r
}\r
}\r
\r
+ // ファイルアイコン表示対応\r
+ RefreshIconImageList(&Anchor);\r
DispFileList2View(GetLocalHwnd(), &Anchor);\r
EraseDispFileList(&Anchor);\r
\r
Pos = Anchor->Top;\r
for(i = 0; i < Anchor->Files; i++)\r
{\r
- AddListView(hWnd, -1, Pos->File, Pos->Node, Pos->Size, &Pos->Time, Pos->Attr, Pos->Owner, Pos->Link, Pos->InfoExist);\r
+ // ファイルアイコン表示対応\r
+// AddListView(hWnd, -1, Pos->File, Pos->Node, Pos->Size, &Pos->Time, Pos->Attr, Pos->Owner, Pos->Link, Pos->InfoExist);\r
+ AddListView(hWnd, -1, Pos->File, Pos->Node, Pos->Size, &Pos->Time, Pos->Attr, Pos->Owner, Pos->Link, Pos->InfoExist, Pos->ImageId);\r
Pos = Pos->Next;\r
}\r
\r
* なし\r
*----------------------------------------------------------------------------*/\r
\r
-static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist)\r
+// ファイルアイコン表示対応\r
+//static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist)\r
+static void AddListView(HWND hWnd, int Pos, char *Name, int Type, LONGLONG Size, FILETIME *Time, int Attr, char *Owner, int Link, int InfoExist, int ImageId)\r
{\r
LV_ITEM LvItem;\r
char Tmp[20];\r
LvItem.iImage = Type;\r
else\r
LvItem.iImage = 4;\r
+ // ファイルアイコン表示対応\r
+ if(hWnd == GetLocalHwnd() && ImageId >= 0)\r
+ LvItem.iImage = 5 + ImageId;\r
LvItem.iItem = SendMessage(hWnd, LVM_INSERTITEM, 0, (LPARAM)&LvItem);\r
\r
/* 日付/時刻 */\r
// 暗号化通信対応\r
BYTE CertificateCacheHash[MAX_CERT_CACHE_HASH][20];\r
BYTE SSLRootCAFileHash[20];\r
+// ファイルアイコン表示対応\r
+int DispFileIcon = NO;\r
+\r
\r
\r
\r
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, Asami, fortran90, tomo1192).");\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, Yuji Tanaka).");\r
\r
if(ForceIni)\r
SetTaskMsg("%s%s", MSGJPN283, IniPath);\r
if(GetCurrentThreadId() != MainThreadId)\r
return FALSE;\r
return TRUE;\r
-}
\ No newline at end of file
+}\r
+\r
+// ファイルアイコン表示対応\r
+int AskDispFileIcon(void)\r
+{\r
+ return(DispFileIcon);\r
+}\r
+\r
return r;\r
}\r
\r
+DWORD_PTR SHGetFileInfoM(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags)\r
+{\r
+ DWORD_PTR r = 0;\r
+ wchar_t* pw0 = NULL;\r
+ SHFILEINFOW wsfi;\r
+START_ROUTINE\r
+ pw0 = DuplicateMtoWMultiString(pszPath);\r
+ if((r = SHGetFileInfoW(pw0, dwFileAttributes, &wsfi, cbFileInfo, uFlags)) != 0)\r
+ {\r
+ psfi->hIcon = wsfi.hIcon;\r
+ psfi->iIcon = wsfi.iIcon;\r
+ psfi->dwAttributes = wsfi.dwAttributes;\r
+ WtoM(psfi->szDisplayName, MAX_PATH, wsfi.szDisplayName, -1);\r
+ WtoM(psfi->szTypeName, 80, wsfi.szTypeName, -1);\r
+ }\r
+END_ROUTINE\r
+ FreeDuplicatedString(pw0);\r
+ return r;\r
+}\r
+\r
+\r
BOOL AppendMenuM(HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem)\r
{\r
int r = 0;\r
#undef SHFileOperation\r
#define SHFileOperation SHFileOperationM\r
int SHFileOperationM(LPSHFILEOPSTRUCTA lpFileOp);\r
+#undef SHGetFileInfo\r
+#define SHGetFileInfo SHGetFileInfoM\r
+DWORD_PTR SHGetFileInfoM(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags);\r
#undef AppendMenu\r
#define AppendMenu AppendMenuM\r
BOOL AppendMenuM(HMENU hMenu, UINT uFlags, UINT_PTR uIDNewItem, LPCSTR lpNewItem);\r
extern int MirDownDelNotify;\r
extern int FolderAttr;\r
extern int FolderAttrNum;\r
+// ファイルアイコン表示対応\r
+extern int DispFileIcon;\r
\r
\r
/*----- オプションのプロパティシート ------------------------------------------\r
SendDlgItemMessage(hDlg, DISP_FONT, WM_SETTEXT, 0, (LPARAM)TmpFont.lfFaceName);\r
SendDlgItemMessage(hDlg, DISP_HIDE, BM_SETCHECK, DispIgnoreHide, 0);\r
SendDlgItemMessage(hDlg, DISP_DRIVE, BM_SETCHECK, DispDrives, 0);\r
+ // ファイルアイコン表示対応\r
+ SendDlgItemMessage(hDlg, DISP_ICON, BM_SETCHECK, DispFileIcon, 0);\r
return(TRUE);\r
\r
case WM_NOTIFY:\r
case PSN_APPLY :\r
DispIgnoreHide = SendDlgItemMessage(hDlg, DISP_HIDE, BM_GETCHECK, 0, 0);\r
DispDrives = SendDlgItemMessage(hDlg, DISP_DRIVE, BM_GETCHECK, 0, 0);\r
+ // ファイルアイコン表示対応\r
+ DispFileIcon = SendDlgItemMessage(hDlg, DISP_ICON, BM_GETCHECK, 0, 0);\r
if(strlen(TmpFont.lfFaceName) > 0)\r
{\r
memcpy(&ListLogFont, &TmpFont, sizeof(LOGFONT));\r
// 暗号化通信対応\r
extern BYTE CertificateCacheHash[MAX_CERT_CACHE_HASH][20];\r
extern BYTE SSLRootCAFileHash[20];\r
+// ファイルアイコン表示対応\r
+extern int DispFileIcon;\r
\r
/*----- マスタパスワードの設定 ----------------------------------------------\r
*\r
StrCatOut((char*)&SSLRootCAFileHash, sizeof(SSLRootCAFileHash), Buf);\r
EncodePassword(Buf, Str);\r
WriteStringToReg(hKey4, "RootCertHash", Str);\r
+ // ファイルアイコン表示対応\r
+ WriteIntValueToReg(hKey4, "ListIcon", DispFileIcon);\r
}\r
CloseSubKey(hKey4);\r
}\r
ReadStringFromReg(hKey4, "RootCertHash", Str, PRIVATE_KEY_LEN*4+1);\r
DecodePassword(Str, Buf);\r
StrReadIn(Buf, sizeof(SSLRootCAFileHash), (char*)&SSLRootCAFileHash);\r
+ // ファイルアイコン表示対応\r
+ ReadIntValueFromReg(hKey4, "ListIcon", &DispFileIcon);\r
\r
CloseSubKey(hKey4);\r
}\r