OSDN Git Service

Fix bugs of file deletion code on transfer thread (but it is unused).
[ffftp/ffftp.git] / registory.c
index 70fc3ce..2635ed5 100644 (file)
@@ -1,5 +1,5 @@
-/*=============================================================================\r
-*                                                              \83\8c\83W\83X\83g\83\8a\8aÖ\8cW\r
+/*=============================================================================\r
+*                                                              レジストリ関係\r
 *\r
 *\r
 ===============================================================================\r
@@ -27,7 +27,7 @@
 / THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
 /============================================================================*/\r
 \r
-// VC 8.0(2005)\88È\8fã\82Å\82Ì\82Ý rand_s \82ð\97\98\97p\89Â\94\\r
+// VC 8.0(2005)以上でのみ rand_s を利用可能\r
 #if 1400 <= _MSC_VER\r
 //#define _CRT_RAND_S\r
 #endif\r
@@ -49,7 +49,7 @@
 #include "aes.h"\r
 \r
 \r
-/*===== \83v\83\8d\83g\83^\83C\83v =====*/\r
+/*===== プロトタイプ =====*/\r
 \r
 static void SaveStr(HKEY hKey, char *Key, char *Str, char *DefaultStr);\r
 static void SaveIntNum(HKEY hKey, char *Key, int Num, int DefaultNum);\r
@@ -91,7 +91,7 @@ void SetHashSalt( DWORD salt );
 \r
 DWORD GetRandamDWRODValue(void);\r
 \r
-/* 2010.01.30 genta \92Ç\89Á */\r
+/* 2010.01.30 genta 追加 */\r
 static char SecretKey[FMAX_PATH+1];\r
 static int SecretKeyLength;\r
 static int IsMasterPasswordError = PASSWORD_OK;\r
@@ -99,9 +99,9 @@ static int IsMasterPasswordError = PASSWORD_OK;
 static int IsRndSourceInit = 0;\r
 static ulong RndSource[9];\r
 \r
-/*===== \8aO\95\94\8eQ\8fÆ =====*/\r
+/*===== 外部参照 =====*/\r
 \r
-/* \90Ý\92è\92l */\r
+/* 設定値 */\r
 extern int WinPosX;\r
 extern int WinPosY;\r
 extern int WinWidth;\r
@@ -182,13 +182,13 @@ extern int MirDownDelNotify;
 extern int FolderAttr;\r
 extern int FolderAttrNum;\r
 \r
-/*----- \83}\83X\83^\83p\83X\83\8f\81[\83h\82Ì\90Ý\92è ----------------------------------------------\r
+/*----- マスタパスワードの設定 ----------------------------------------------\r
 *\r
 *      Parameter\r
-*              const char* Password : \83}\83X\83^\81[\83p\83X\83\8f\81[\83h\r
+*              const char* Password : マスターパスワード\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 void SetMasterPassword( const char* Password )\r
 {\r
@@ -201,29 +201,29 @@ void SetMasterPassword( const char* Password )
        }\r
        SecretKeyLength = strlen( SecretKey );\r
        \r
-       /* \96¢\8c\9f\8fØ\82È\82Ì\82Å\81C\8f\89\8aú\8fó\91Ô\82ÍOK\82É\82·\82é (\8b­\90§\8dÄ\90Ý\92è\81¨\95Û\91\82É\82ð\89Â\94\\82É\82·\82é)*/\r
+       /* 未検証なので,初期状態はOKにする (強制再設定→保存にを可能にする)*/\r
        IsMasterPasswordError = PASSWORD_OK;\r
 }\r
 \r
-/*----- \83}\83X\83^\83p\83X\83\8f\81[\83h\82Ì\8fó\91Ô\8eæ\93¾ ----------------------------------------------\r
+/*----- マスタパスワードの状態取得 ----------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
 *              PASSWORD_OK : OK\r
-*              PASSWORD_UNMATCH : \83p\83X\83\8f\81[\83h\95s\88ê\92v\r
-*              BAD_PASSWORD_HASH : \83p\83X\83\8f\81[\83h\8am\94F\8e¸\94s\r
+*              PASSWORD_UNMATCH : パスワード不一致\r
+*              BAD_PASSWORD_HASH : パスワード確認失敗\r
 *----------------------------------------------------------------------------*/\r
 int GetMasterPasswordStatus(void)\r
 {\r
        return IsMasterPasswordError;\r
 }\r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a\81^INI\83t\83@\83C\83\8b\82Ì\83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82Ì\8c\9f\8fØ\82ð\8ds\82¤ ------------\r
+/*----- レジストリ/INIファイルのマスターパスワードの検証を行う ------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
 *              \r
@@ -235,7 +235,7 @@ int ValidateMasterPassword(void)
        int i;\r
 \r
        SetRegType(REGTYPE_INI);\r
-       if((i = OpenReg("FFFTP", &hKey3)) != SUCCESS)\r
+       if((i = OpenReg("FFFTP", &hKey3)) != FFFTP_SUCCESS)\r
        {\r
                if(AskForceIni() == NO)\r
                {\r
@@ -243,14 +243,14 @@ int ValidateMasterPassword(void)
                        i = OpenReg("FFFTP", &hKey3);\r
                }\r
        }\r
-       if(i == SUCCESS){\r
+       if(i == FFFTP_SUCCESS){\r
                char checkbuf[48];\r
                int salt = 0;\r
 \r
                if( ReadIntValueFromReg(hKey3, "CredentialSalt", &salt)){\r
                        SetHashSalt( salt );\r
                }\r
-               if( ReadStringFromReg(hKey3, "CredentialCheck", checkbuf, sizeof( checkbuf )) == SUCCESS ){\r
+               if( ReadStringFromReg(hKey3, "CredentialCheck", checkbuf, sizeof( checkbuf )) == FFFTP_SUCCESS ){\r
                        switch( CheckPasswordValidity( SecretKey, SecretKeyLength, checkbuf ) ){\r
                        case 0: /* not match */\r
                                IsMasterPasswordError = PASSWORD_UNMATCH;\r
@@ -270,13 +270,13 @@ int ValidateMasterPassword(void)
        return NO;\r
 }\r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a\81^INI\83t\83@\83C\83\8b\82É\90Ý\92è\92l\82ð\95Û\91 ---------------------------------\r
+/*----- レジストリ/INIファイルに設定値を保存 ---------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SaveRegistory(void)\r
@@ -293,12 +293,12 @@ void SaveRegistory(void)
        HISTORYDATA DefaultHist;\r
        \r
        if( GetMasterPasswordStatus() == PASSWORD_UNMATCH ){\r
-               /* 2010.01.30 genta: \83}\83X\83^\81[\83p\83X\83\8f\81[\83h\82ª\95s\88ê\92v\82Ì\8fê\8d\87\82Í\95s\97p\88Ó\82É\8fã\8f\91\82«\82µ\82È\82¢ */\r
+               /* 2010.01.30 genta: マスターパスワードが不一致の場合は不用意に上書きしない */\r
                return;\r
        }\r
 \r
        SetRegType(RegType);\r
-       if(CreateReg("FFFTP", &hKey3) == SUCCESS)\r
+       if(CreateReg("FFFTP", &hKey3) == FFFTP_SUCCESS)\r
        {\r
                char buf[48];\r
                int salt = GetTickCount();\r
@@ -311,7 +311,7 @@ void SaveRegistory(void)
                CreatePasswordHash( SecretKey, SecretKeyLength, buf );\r
                WriteStringToReg(hKey3, "CredentialCheck", buf);\r
 \r
-               if(CreateSubKey(hKey3, "Options", &hKey4) == SUCCESS)\r
+               if(CreateSubKey(hKey3, "Options", &hKey4) == FFFTP_SUCCESS)\r
                {\r
                        WriteIntValueToReg(hKey4, "NoSave", SuppressSave);\r
 \r
@@ -419,18 +419,18 @@ void SaveRegistory(void)
 \r
                                WriteIntValueToReg(hKey4, "HistNum", FileHist);\r
 \r
-                               /* Ver1.54a\88È\91O\82Ì\8c`\8e®\82Ì\83q\83X\83g\83\8a\83f\81[\83^\82Í\8dí\8f\9c */\r
+                               /* Ver1.54a以前の形式のヒストリデータは削除 */\r
                                DeleteValue(hKey4, "Hist");\r
 \r
-                               /* \83q\83X\83g\83\8a\82Ì\90Ý\92è\82ð\95Û\91 */\r
+                               /* ヒストリの設定を保存 */\r
                                CopyDefaultHistory(&DefaultHist);\r
                                n = 0;\r
                                for(i = AskHistoryNum(); i > 0; i--)\r
                                {\r
-                                       if(GetHistoryByNum(i-1, &Hist) == SUCCESS)\r
+                                       if(GetHistoryByNum(i-1, &Hist) == FFFTP_SUCCESS)\r
                                        {\r
                                                sprintf(Str, "History%d", n);\r
-                                               if(CreateSubKey(hKey4, Str, &hKey5) == SUCCESS)\r
+                                               if(CreateSubKey(hKey4, Str, &hKey5) == FFFTP_SUCCESS)\r
                                                {\r
                                                        SaveStr(hKey5, "HostAdrs", Hist.HostAdrs, DefaultHist.HostAdrs);\r
                                                        SaveStr(hKey5, "UserName", Hist.UserName, DefaultHist.UserName);\r
@@ -462,10 +462,14 @@ void SaveRegistory(void)
                                                        SaveIntNum(hKey5, "UseIt", Hist.DialupAlways, DefaultHist.DialupAlways);\r
                                                        SaveIntNum(hKey5, "Notify", Hist.DialupNotify, DefaultHist.DialupNotify);\r
                                                        SaveStr(hKey5, "DialTo", Hist.DialEntry, DefaultHist.DialEntry);\r
-                                                       // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+                                                       // 暗号化通信対応\r
                                                        SaveIntNum(hKey5, "FTPES", Hist.UseFTPES, DefaultHist.UseFTPES);\r
                                                        SaveIntNum(hKey5, "FTPIS", Hist.UseFTPIS, DefaultHist.UseFTPIS);\r
                                                        SaveIntNum(hKey5, "SFTP", Hist.UseSFTP, DefaultHist.UseSFTP);\r
+                                                       // 同時接続対応\r
+                                                       SaveIntNum(hKey5, "ThreadCount", Hist.MaxThreadCount, DefaultHist.MaxThreadCount);\r
+                                                       // MLSD対応\r
+                                                       SaveIntNum(hKey5, "MLSD", Hist.UseMLSD, DefaultHist.UseMLSD);\r
 \r
                                                        CloseSubKey(hKey5);\r
                                                        n++;\r
@@ -474,21 +478,21 @@ void SaveRegistory(void)
                                }\r
                                WriteIntValueToReg(hKey4, "SavedHist", n);\r
 \r
-                               /* \97]\95ª\82È\83q\83X\83g\83\8a\82ª\82 \82Á\82½\82ç\8dí\8f\9c */\r
+                               /* 余分なヒストリがあったら削除 */\r
                                for(; n < 999; n++)\r
                                {\r
                                        sprintf(Str, "History%d", n);\r
-                                       if(DeleteSubKey(hKey4, Str) != SUCCESS)\r
+                                       if(DeleteSubKey(hKey4, Str) != FFFTP_SUCCESS)\r
                                                break;\r
                                }\r
 \r
-                               /* \83z\83X\83g\82Ì\90Ý\92è\82ð\95Û\91 */\r
+                               /* ホストの設定を保存 */\r
                                CopyDefaultHost(&DefaultHost);\r
                                i = 0;\r
-                               while(CopyHostFromList(i, &Host) == SUCCESS)\r
+                               while(CopyHostFromList(i, &Host) == FFFTP_SUCCESS)\r
                                {\r
                                        sprintf(Str, "Host%d", i);\r
-                                       if(CreateSubKey(hKey4, Str, &hKey5) == SUCCESS)\r
+                                       if(CreateSubKey(hKey4, Str, &hKey5) == FFFTP_SUCCESS)\r
                                        {\r
 //                                             SaveIntNum(hKey5, "Set", Host.Level, DefaultHost.Level);\r
                                                WriteIntValueToReg(hKey5, "Set", Host.Level);\r
@@ -534,10 +538,14 @@ void SaveRegistory(void)
                                                        SaveIntNum(hKey5, "UseIt", Host.DialupAlways, DefaultHost.DialupAlways);\r
                                                        SaveIntNum(hKey5, "Notify", Host.DialupNotify, DefaultHost.DialupNotify);\r
                                                        SaveStr(hKey5, "DialTo", Host.DialEntry, DefaultHost.DialEntry);\r
-                                                       // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+                                                       // 暗号化通信対応\r
                                                        SaveIntNum(hKey5, "FTPES", Host.UseFTPES, DefaultHost.UseFTPES);\r
                                                        SaveIntNum(hKey5, "FTPIS", Host.UseFTPIS, DefaultHost.UseFTPIS);\r
                                                        SaveIntNum(hKey5, "SFTP", Host.UseSFTP, DefaultHost.UseSFTP);\r
+                                                       // 同時接続対応\r
+                                                       SaveIntNum(hKey5, "ThreadCount", Host.MaxThreadCount, DefaultHost.MaxThreadCount);\r
+                                                       // MLSD対応\r
+                                                       SaveIntNum(hKey5, "MLSD", Host.UseMLSD, DefaultHost.UseMLSD);\r
                                                }\r
                                                CloseSubKey(hKey5);\r
                                        }\r
@@ -545,11 +553,11 @@ void SaveRegistory(void)
                                }\r
                                WriteIntValueToReg(hKey4, "SetNum", i);\r
 \r
-                               /* \97]\95ª\82È\83z\83X\83g\82Ì\90Ý\92è\82ª\82 \82Á\82½\82ç\8dí\8f\9c */\r
+                               /* 余分なホストの設定があったら削除 */\r
                                for(; i < 998; i++)\r
                                {\r
                                        sprintf(Str, "Host%d", i);\r
-                                       if(DeleteSubKey(hKey4, Str) != SUCCESS)\r
+                                       if(DeleteSubKey(hKey4, Str) != FFFTP_SUCCESS)\r
                                                break;\r
                                }\r
 \r
@@ -564,16 +572,16 @@ void SaveRegistory(void)
        return;\r
 }\r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a\81^INI\83t\83@\83C\83\8b\82©\82ç\90Ý\92è\92l\82ð\8cÄ\82Ñ\8fo\82· ---------------------------\r
+/*----- レジストリ/INIファイルから設定値を呼び出す ---------------------------\r
 *\r
-*      \82±\82Ì\8aÖ\90\94\82ð\95¡\90\94\89ñ\8cÄ\82Ñ\8fo\82·\82Æ\81C\83z\83X\83g\90Ý\92è\82ª\92Ç\89Á\82³\82ê\82é\81D\r
+*      この関数を複数回呼び出すと,ホスト設定が追加される.\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              YES: \93Ç\82Ý\8fo\82µ\90¬\8c÷\r
-*              NO:  \93Ç\82Ý\8fo\82µ\8e¸\94s(\90Ý\92è\96³\82µ)\r
+*              YES: 読み出し成功\r
+*              NO:  読み出し失敗(設定無し)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int LoadRegistory(void)\r
@@ -583,7 +591,7 @@ int LoadRegistory(void)
        void *hKey5;\r
        int i;\r
        int Sets;\r
-       char Str[256];  /* ASCII_EXT_LEN\82æ\82è\91å\82«\82¢\8e\96 */\r
+       char Str[256];  /* ASCII_EXT_LENより大きい事 */\r
        char *Pos;\r
        char *Pos2;\r
        HOSTDATA Host;\r
@@ -594,7 +602,7 @@ int LoadRegistory(void)
        Sts = NO;\r
 \r
        SetRegType(REGTYPE_INI);\r
-       if((i = OpenReg("FFFTP", &hKey3)) != SUCCESS)\r
+       if((i = OpenReg("FFFTP", &hKey3)) != FFFTP_SUCCESS)\r
        {\r
                if(AskForceIni() == NO)\r
                {\r
@@ -603,25 +611,25 @@ int LoadRegistory(void)
                }\r
        }\r
 \r
-       if(i == SUCCESS)\r
+       if(i == FFFTP_SUCCESS)\r
        {\r
-               char checkbuf[48];\r
+//             char checkbuf[48];\r
                int salt = 0;\r
                Sts = YES;\r
 \r
                ReadIntValueFromReg(hKey3, "Version", &Version);\r
 \r
-               if(OpenSubKey(hKey3, "Options", &hKey4) == SUCCESS)\r
+               if(OpenSubKey(hKey3, "Options", &hKey4) == FFFTP_SUCCESS)\r
                {\r
                        ReadIntValueFromReg(hKey4, "WinPosX", &WinPosX);\r
                        ReadIntValueFromReg(hKey4, "WinPosY", &WinPosY);\r
                        ReadIntValueFromReg(hKey4, "WinWidth", &WinWidth);\r
                        ReadIntValueFromReg(hKey4, "WinHeight", &WinHeight);\r
                        ReadIntValueFromReg(hKey4, "LocalWidth", &LocalWidth);\r
-                       /* \81«\8b\8c\83o\81[\83W\83\87\83\93\82Ì\83o\83O\91Î\8dô */\r
+                       /* ↓旧バージョンのバグ対策 */\r
                        LocalWidth = max1(0, LocalWidth);\r
                        ReadIntValueFromReg(hKey4, "TaskHeight", &TaskHeight);\r
-                       /* \81«\8b\8c\83o\81[\83W\83\87\83\93\82Ì\83o\83O\91Î\8dô */\r
+                       /* ↓旧バージョンのバグ対策 */\r
                        TaskHeight = max1(0, TaskHeight);\r
                        ReadBinaryFromReg(hKey4, "LocalColm", &LocalTabWidth, sizeof(LocalTabWidth));\r
                        ReadBinaryFromReg(hKey4, "RemoteColm", &RemoteTabWidth, sizeof(RemoteTabWidth));\r
@@ -670,9 +678,9 @@ int LoadRegistory(void)
                        ReadIntValueFromReg(hKey4, "RegExp", &FindMode);\r
                        ReadIntValueFromReg(hKey4, "Reg", &RegType);\r
 \r
-                       if(ReadMultiStringFromReg(hKey4, "AsciiFile", AsciiExt, ASCII_EXT_LEN+1) == FAIL)\r
+                       if(ReadMultiStringFromReg(hKey4, "AsciiFile", AsciiExt, ASCII_EXT_LEN+1) == FFFTP_FAIL)\r
                        {\r
-                               /* \8b\8cASCII\83\82\81[\83h\82Ì\8ag\92£\8eq\82Ì\90Ý\92è\82ð\90V\82µ\82¢\82à\82Ì\82É\95Ï\8a· */\r
+                               /* 旧ASCIIモードの拡張子の設定を新しいものに変換 */\r
                                ReadStringFromReg(hKey4, "Ascii", Str, ASCII_EXT_LEN+1);\r
                                memset(AsciiExt, NUL, ASCII_EXT_LEN+1);\r
                                Pos = Str;\r
@@ -702,9 +710,9 @@ int LoadRegistory(void)
                        ReadIntValueFromReg(hKey4, "MirUNot", &MirUpDelNotify);\r
                        ReadIntValueFromReg(hKey4, "MirDNot", &MirDownDelNotify);\r
 \r
-                       if(ReadStringFromReg(hKey4, "ListFont", Str, 256) == SUCCESS)\r
+                       if(ReadStringFromReg(hKey4, "ListFont", Str, 256) == FFFTP_SUCCESS)\r
                        {\r
-                               if(RestoreFontData(Str, &ListLogFont) == SUCCESS)\r
+                               if(RestoreFontData(Str, &ListLogFont) == FFFTP_SUCCESS)\r
                                        ListFont = CreateFontIndirect(&ListLogFont);\r
                        }\r
                        ReadIntValueFromReg(hKey4, "ListHide", &DispIgnoreHide);\r
@@ -746,14 +754,14 @@ int LoadRegistory(void)
                        ReadIntValueFromReg(hKey4, "HistNum", &FileHist);\r
 //                     ReadMultiStringFromReg(hKey4, "Hist", Hist, (FMAX_PATH+1)*HISTORY_MAX+1);\r
 \r
-                       /* \83q\83X\83g\83\8a\82Ì\90Ý\92è\82ð\93Ç\82Ý\8d\9e\82Þ */\r
+                       /* ヒストリの設定を読み込む */\r
                        Sets = 0;\r
                        ReadIntValueFromReg(hKey4, "SavedHist", &Sets);\r
 \r
                        for(i = 0; i < Sets; i++)\r
                        {\r
                                sprintf(Str, "History%d", i);\r
-                               if(OpenSubKey(hKey4, Str, &hKey5) == SUCCESS)\r
+                               if(OpenSubKey(hKey4, Str, &hKey5) == FFFTP_SUCCESS)\r
                                {\r
                                        CopyDefaultHistory(&Hist);\r
 \r
@@ -788,32 +796,41 @@ int LoadRegistory(void)
                                        ReadIntValueFromReg(hKey5, "UseIt", &Hist.DialupAlways);\r
                                        ReadIntValueFromReg(hKey5, "Notify", &Hist.DialupNotify);\r
                                        ReadStringFromReg(hKey5, "DialTo", Hist.DialEntry, RAS_NAME_LEN+1);\r
-                                       // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+                                       // 暗号化通信対応\r
                                        ReadIntValueFromReg(hKey5, "FTPES", &Hist.UseFTPES);\r
                                        ReadIntValueFromReg(hKey5, "FTPIS", &Hist.UseFTPIS);\r
                                        ReadIntValueFromReg(hKey5, "SFTP", &Hist.UseSFTP);\r
+                                       // 同時接続対応\r
+                                       ReadIntValueFromReg(hKey5, "ThreadCount", &Hist.MaxThreadCount);\r
+                                       // MLSD対応\r
+                                       ReadIntValueFromReg(hKey5, "MLSD", &Hist.UseMLSD);\r
 \r
                                        CloseSubKey(hKey5);\r
                                        AddHistoryToHistory(&Hist);\r
                                }\r
                        }\r
 \r
-                       /* \83z\83X\83g\82Ì\90Ý\92è\82ð\93Ç\82Ý\8d\9e\82Þ */\r
+                       /* ホストの設定を読み込む */\r
                        Sets = 0;\r
                        ReadIntValueFromReg(hKey4, "SetNum", &Sets);\r
 \r
                        for(i = 0; i < Sets; i++)\r
                        {\r
                                sprintf(Str, "Host%d", i);\r
-                               if(OpenSubKey(hKey4, Str, &hKey5) == SUCCESS)\r
+                               if(OpenSubKey(hKey4, Str, &hKey5) == FFFTP_SUCCESS)\r
                                {\r
                                        CopyDefaultHost(&Host);\r
-                                       /* \89º\88Ê\8cÝ\8a·\90«\82Ì\82½\82ß */\r
-                                       if(Version < VER_NUM)\r
+                                       /* 下位互換性のため */\r
+                                       // SourceForge.JPによるフォーク\r
+//                                     if(Version < VER_NUM)\r
+                                       if(Version < 1921)\r
                                        {\r
                                                Host.Pasv = NO;\r
                                                Host.ListCmdOnly = NO;\r
                                        }\r
+                                       // 1.97b以前はデフォルトでShift_JIS\r
+                                       if(Version < 1980)\r
+                                               Host.NameKanjiCode = KANJI_SJIS;\r
                                        ReadIntValueFromReg(hKey5, "Set", &Host.Level);\r
 \r
                                        ReadStringFromReg(hKey5, "HostName", Host.HostName, HOST_NAME_LEN+1);\r
@@ -857,10 +874,14 @@ int LoadRegistory(void)
                                        ReadIntValueFromReg(hKey5, "UseIt", &Host.DialupAlways);\r
                                        ReadIntValueFromReg(hKey5, "Notify", &Host.DialupNotify);\r
                                        ReadStringFromReg(hKey5, "DialTo", Host.DialEntry, RAS_NAME_LEN+1);\r
-                                       // \88Ã\8d\86\89»\92Ê\90M\91Î\89\9e\r
+                                       // 暗号化通信対応\r
                                        ReadIntValueFromReg(hKey5, "FTPES", &Host.UseFTPES);\r
                                        ReadIntValueFromReg(hKey5, "FTPIS", &Host.UseFTPIS);\r
                                        ReadIntValueFromReg(hKey5, "SFTP", &Host.UseSFTP);\r
+                                       // 同時接続対応\r
+                                       ReadIntValueFromReg(hKey5, "ThreadCount", &Host.MaxThreadCount);\r
+                                       // MLSD対応\r
+                                       ReadIntValueFromReg(hKey5, "MLSD", &Host.UseMLSD);\r
 \r
                                        CloseSubKey(hKey5);\r
 \r
@@ -877,7 +898,7 @@ int LoadRegistory(void)
        }\r
        else\r
        {\r
-               /*===== \8dÅ\8f\89\82Ì\8bN\93®\8e\9e\81i\90Ý\92è\82ª\96³\82¢) =====*/\r
+               /*===== 最初の起動時(設定が無い) =====*/\r
 \r
 #if 0\r
                strcpy(UserMailAdrs, "");\r
@@ -901,14 +922,14 @@ int LoadRegistory(void)
 }\r
 \r
 \r
-/*----- \89B\82µ\83h\83\89\83C\83u\8fî\95ñ\82ð\8eæ\93¾ ------------------------------------------------\r
+/*----- 隠しドライブ情報を取得 ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
 *              DWORD \r
-*                      YES/NO=\90Ý\92è\96³\82µ\r
+*                      YES/NO=設定無し\r
 *----------------------------------------------------------------------------*/\r
 \r
 DWORD LoadHideDriveListRegistory(void)\r
@@ -954,13 +975,13 @@ DWORD LoadHideDriveListRegistory(void)
 }\r
 \r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a\82Ì\90Ý\92è\92l\82ð\83N\83\8a\83A --------------------------------------------\r
+/*----- レジストリの設定値をクリア --------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void ClearRegistory(void)\r
@@ -1002,13 +1023,13 @@ void ClearRegistory(void)
 }\r
 \r
 \r
-/*----- \90Ý\92è\82ð\83t\83@\83C\83\8b\82É\95Û\91 --------------------------------------------------\r
+/*----- 設定をファイルに保存 --------------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 void SaveSettingsToFile(void)\r
@@ -1040,13 +1061,13 @@ void SaveSettingsToFile(void)
 }\r
 \r
 \r
-/*----- \90Ý\92è\82ð\83t\83@\83C\83\8b\82©\82ç\95\9c\8c³ ------------------------------------------------\r
+/*----- 設定をファイルから復元 ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Return Value\r
-*              int     \83\8d\81[\83h\82µ\82½\82©\82Ç\82¤\82© (YES/NO)\r
+*              int     ロードしたかどうか (YES/NO)\r
 *----------------------------------------------------------------------------*/\r
 \r
 int LoadSettingsFromFile(void)\r
@@ -1069,7 +1090,7 @@ int LoadSettingsFromFile(void)
                        else\r
                        {\r
                                Ret = YES;\r
-                               /* \83\8c\83W\83X\83g\83\8a\83G\83f\83B\83^\82ª\8fI\97¹\82·\82é\82Ì\82ð\91Ò\82 */\r
+                               /* レジストリエディタが終了するのを待つ */\r
 //                             WaitForSingleObject(Info.hProcess, INFINITE);\r
                        }\r
                }\r
@@ -1087,19 +1108,19 @@ int LoadSettingsFromFile(void)
 \r
 \r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82É\95\8e\9a\97ñ\82ð\83Z\81[\83u --------------------------------\r
+/*----- レジストリ/INIファイルに文字列をセーブ --------------------------------\r
 *\r
 *      Parameter\r
-*              HKEY hKey : \83\8c\83W\83X\83g\83\8a\83L\81[\r
-*              char *Key : \83L\81[\96¼\r
-*              char *Str : \83Z\81[\83u\82·\82é\95\8e\9a\97ñ\r
-*              char *DefaultStr : \83f\83t\83H\83\8b\83g\82Ì\95\8e\9a\97ñ\r
+*              HKEY hKey : レジストリキー\r
+*              char *Key : キー名\r
+*              char *Str : セーブする文字列\r
+*              char *DefaultStr : デフォルトの文字列\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Note\r
-*              \95\8e\9a\97ñ\82ª\83f\83t\83H\83\8b\83g\82Ì\95\8e\9a\97ñ\82Æ\93¯\82\82È\82ç\83Z\81[\83u\82µ\82È\82¢\r
+*              文字列がデフォルトの文字列と同じならセーブしない\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void SaveStr(HKEY hKey, char *Key, char *Str, char *DefaultStr)\r
@@ -1113,19 +1134,19 @@ static void SaveStr(HKEY hKey, char *Key, char *Str, char *DefaultStr)
 }\r
 \r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82É\90\94\92l(INT)\82ð\83Z\81[\83u -----------------------------\r
+/*----- レジストリ/INIファイルに数値(INT)をセーブ -----------------------------\r
 *\r
 *      Parameter\r
-*              HKEY hKey : \83\8c\83W\83X\83g\83\8a\83L\81[\r
-*              char *Key : \83L\81[\96¼\r
-*              int Num : \83Z\81[\83u\82·\82é\92l\r
-*              int DefaultNum : \83f\83t\83H\83\8b\83g\82Ì\92l\r
+*              HKEY hKey : レジストリキー\r
+*              char *Key : キー名\r
+*              int Num : セーブする値\r
+*              int DefaultNum : デフォルトの値\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *\r
 *      Note\r
-*              \90\94\92l\82ª\83f\83t\83H\83\8b\83g\82Ì\92l\82Æ\93¯\82\82È\82ç\83Z\81[\83u\82µ\82È\82¢\r
+*              数値がデフォルトの値と同じならセーブしない\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void SaveIntNum(HKEY hKey, char *Key, int Num, int DefaultNum)\r
@@ -1139,16 +1160,16 @@ static void SaveIntNum(HKEY hKey, char *Key, int Num, int DefaultNum)
 }\r
 \r
 \r
-/*----- LOGFONT\83f\81[\83^\82ð\95\8e\9a\97ñ\82É\95Ï\8a·\82·\82é ---------------------------------------\r
+/*----- LOGFONTデータを文字列に変換する ---------------------------------------\r
 *\r
 *      Parameter\r
-*              LOGFONT Font : \83t\83H\83\93\83g\83f\81[\83^\r
-*              HFONT hFont : \83t\83H\83\93\83g\82Ì\83n\83\93\83h\83\8b\r
-*                      NULL = \83f\83t\83H\83\8b\83g\82Ì\83t\83H\83\93\83g\r
-*              char *Buf : \83o\83b\83t\83@\r
+*              LOGFONT Font : フォントデータ\r
+*              HFONT hFont : フォントのハンドル\r
+*                      NULL = デフォルトのフォント\r
+*              char *Buf : バッファ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void MakeFontData(LOGFONT Font, HFONT hFont, char *Buf)\r
@@ -1164,15 +1185,15 @@ static void MakeFontData(LOGFONT Font, HFONT hFont, char *Buf)
 }\r
 \r
 \r
-/*----- \95\8e\9a\97ñ\82ðLOGFONT\83f\81[\83^\82É\95Ï\8a·\82·\82é ---------------------------------------\r
+/*----- 文字列をLOGFONTデータに変換する ---------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Str : \95\8e\9a\97ñ\r
-*              LOGFONT *Font : \83t\83H\83\93\83g\83f\81[\83^\r
+*              char *Str : 文字列\r
+*              LOGFONT *Font : フォントデータ\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL=\95Ï\8a·\82Å\82«\82È\82¢\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL=変換できない\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int RestoreFontData(char *Str, LOGFONT *Font)\r
@@ -1180,7 +1201,7 @@ static int RestoreFontData(char *Str, LOGFONT *Font)
        int i;\r
        int Sts;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(sscanf(Str, "%d %d %d %d %d %d %d %d %d %d %d %d %d",\r
                        &(Font->lfHeight), &(Font->lfWidth), &(Font->lfEscapement), &(Font->lfOrientation),\r
                        &(Font->lfWeight), &(Font->lfItalic), &(Font->lfUnderline), &(Font->lfStrikeOut),\r
@@ -1196,38 +1217,38 @@ static int RestoreFontData(char *Str, LOGFONT *Font)
                if(i == 0)\r
                {\r
                        strcpy(Font->lfFaceName, Str);\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
        }\r
 \r
-       if(Sts == FAIL)\r
+       if(Sts == FFFTP_FAIL)\r
                memset(Font, NUL, sizeof(LOGFONT));\r
 \r
        return(Sts);\r
 }\r
 \r
-/*----- \83p\83X\83\8f\81[\83h\82ð\88Ã\8d\86\89»\82·\82é ------------------------------------------------\r
+/*----- パスワードを暗号化する ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Str : \83p\83X\83\8f\81[\83h\r
-*              char *Buf : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
+*              char *Str : パスワード\r
+*              char *Buf : 暗号化したパスワードを格納するバッファ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 static void EncodePassword(char *Str, char *Buf)\r
 {\r
        EncodePassword3( Str, Buf, SecretKey );\r
 }\r
 \r
-/*----- \83p\83X\83\8f\81[\83h\82ð\88Ã\8d\86\89»\82·\82é(\83I\83\8a\83W\83i\83\8b\83A\83\8b\83S\83\8a\83Y\83\80)  ------------------\r
+/*----- パスワードを暗号化する(オリジナルアルゴリズム)  ------------------\r
 *\r
 *      Parameter\r
-*              char *Str : \83p\83X\83\8f\81[\83h\r
-*              char *Buf : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
+*              char *Str : パスワード\r
+*              char *Buf : 暗号化したパスワードを格納するバッファ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void EncodePasswordOriginal(char *Str, char *Buf)\r
@@ -1247,7 +1268,7 @@ static void EncodePasswordOriginal(char *Str, char *Buf)
                return;\r
        }\r
 \r
-       /* \8e¯\95Ê\8eq\82ð\90æ\93ª\82É\92u\82­ */\r
+       /* 識別子を先頭に置く */\r
        Put[0] = '0';\r
        Put[1] = 'A';\r
        Put += 2;\r
@@ -1266,15 +1287,15 @@ static void EncodePasswordOriginal(char *Str, char *Buf)
        return;\r
 }\r
 \r
-/*----- \83p\83X\83\8f\81[\83h\82ð\88Ã\8d\86\89»\82·\82é(\83I\83\8a\83W\83i\83\8b\83A\83\8b\83S\83\8a\83Y\83\80\81OKey)  ----------------\r
+/*----- パスワードを暗号化する(オリジナルアルゴリズム^Key)  ----------------\r
 *\r
 *      Parameter\r
-*              char *Str : \83p\83X\83\8f\81[\83h\r
-*              char *Buf : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
-*              const char *Key : \88Ã\8d\86\89»\83L\81[\r
+*              char *Str : パスワード\r
+*              char *Buf : 暗号化したパスワードを格納するバッファ\r
+*              const char *Key : 暗号化キー\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void EncodePassword2(char *Str, char *Buf, const char* Key)\r
@@ -1299,7 +1320,7 @@ static void EncodePassword2(char *Str, char *Buf, const char* Key)
                return;\r
        }\r
 \r
-       /* \8e¯\95Ê\8eq\82ð\90æ\93ª\82É\92u\82­ */\r
+       /* 識別子を先頭に置く */\r
        Put[0] = '0';\r
        Put[1] = 'B';\r
        Put += 2;\r
@@ -1323,15 +1344,15 @@ static void EncodePassword2(char *Str, char *Buf, const char* Key)
        return;\r
 }\r
 \r
-/*----- \83p\83X\83\8f\81[\83h\82ð\88Ã\8d\86\89»\82·\82é(AES) ------------------------------------------\r
+/*----- パスワードを暗号化する(AES) ------------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Str : \83p\83X\83\8f\81[\83h\r
-*              char *Buf : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
-*              const char *Key : \88Ã\8d\86\89»\83L\81[\r
+*              char *Str : パスワード\r
+*              char *Buf : 暗号化したパスワードを格納するバッファ\r
+*              const char *Key : 暗号化キー\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void EncodePassword3(char *Str, char *Buf, const char *Key)\r
@@ -1356,7 +1377,7 @@ static void EncodePassword3(char *Str, char *Buf, const char *Key)
        StrLen = strlen(Str);\r
        StrPadLen = ((StrLen + AES_BLOCK_SIZE - 1) / AES_BLOCK_SIZE) * AES_BLOCK_SIZE;\r
 \r
-       /* \8dÅ\92á\92·\82ð32\95\8e\9a\82Æ\82·\82é */\r
+       /* 最低長を32文字とする */\r
 //     StrPadLen = min1(StrPadLen, AES_BLOCK_SIZE * 2);\r
        StrPadLen = max1(StrPadLen, AES_BLOCK_SIZE * 2);\r
 \r
@@ -1369,7 +1390,7 @@ static void EncodePassword3(char *Str, char *Buf, const char *Key)
                        PutState = FALSE;\r
                        strncpy(StrPadBuf, Str, StrPadLen);\r
                        \r
-                       /* PAD\95\94\95ª\82ð\97\90\90\94\82Å\96\84\82ß\82é StrPad[StrLen](\82ª\97L\8cø\82È\8fê\8d\87\82Í NUL */\r
+                       /* PAD部分を乱数で埋める StrPad[StrLen](が有効な場合) は NUL */\r
                        for(StrPadIndex = StrLen + 1; StrPadIndex < StrPadLen;)\r
                        {\r
                                RandValue = GetRandamDWRODValue();\r
@@ -1383,7 +1404,7 @@ static void EncodePassword3(char *Str, char *Buf, const char *Key)
                                }\r
                        }\r
                        \r
-                       // IV\82Ì\8f\89\8aú\89»\r
+                       // IVの初期化\r
                        for(IvIndex = 0; IvIndex < AES_BLOCK_SIZE;)\r
                        {\r
                                RandValue = GetRandamDWRODValue();\r
@@ -1406,7 +1427,7 @@ static void EncodePassword3(char *Str, char *Buf, const char *Key)
                        }\r
                        *Put++ = ':';\r
 \r
-                       if(CreateAesKey(AesKey, Key) == SUCCESS)\r
+                       if(CreateAesKey(AesKey, Key) == FFFTP_SUCCESS)\r
                        {\r
                                aes_encrypt_key(AesKey, 32, &Ctx);\r
 \r
@@ -1433,14 +1454,14 @@ static void EncodePassword3(char *Str, char *Buf, const char *Key)
 }\r
 \r
 \r
-/*----- \83p\83X\83\8f\81[\83h\82Ì\88Ã\8d\86\89»\82ð\89ð\82­ ----------------------------------------------\r
+/*----- パスワードの暗号化を解く ----------------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Str : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\r
-*              char *Buf : \83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
+*              char *Str : 暗号化したパスワード\r
+*              char *Buf : パスワードを格納するバッファ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void DecodePassword(char *Str, char *Buf)\r
@@ -1474,14 +1495,14 @@ static void DecodePassword(char *Str, char *Buf)
        }\r
 }\r
 \r
-/*----- \83p\83X\83\8f\81[\83h\82Ì\88Ã\8d\86\89»\82ð\89ð\82­(\83I\83\8a\83W\83i\83\8b\83A\83\8b\83S\83\8a\83Y\83\80) -------------------\r
+/*----- パスワードの暗号化を解く(オリジナルアルゴリズム) -------------------\r
 *\r
 *      Parameter\r
-*              char *Str : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\r
-*              char *Buf : \83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
+*              char *Str : 暗号化したパスワード\r
+*              char *Buf : パスワードを格納するバッファ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 static void DecodePasswordOriginal(char *Str, char *Buf)\r
 {\r
@@ -1509,15 +1530,15 @@ static void DecodePasswordOriginal(char *Str, char *Buf)
        return;\r
 }\r
 \r
-/*----- \83p\83X\83\8f\81[\83h\82Ì\88Ã\8d\86\89»\82ð\89ð\82­(\83I\83\8a\83W\83i\83\8b\83A\83\8b\83S\83\8a\83Y\83\80\81OKey) -------------------\r
+/*----- パスワードの暗号化を解く(オリジナルアルゴリズム^Key) -------------------\r
 *\r
 *      Parameter\r
-*              char *Str : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\r
-*              char *Buf : \83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
-*              const char *Key : \88Ã\8d\86\89»\83L\81[\r
+*              char *Str : 暗号化したパスワード\r
+*              char *Buf : パスワードを格納するバッファ\r
+*              const char *Key : 暗号化キー\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 static void DecodePassword2(char *Str, char *Buf, const char* Key)\r
 {\r
@@ -1552,15 +1573,15 @@ static void DecodePassword2(char *Str, char *Buf, const char* Key)
        return;\r
 }\r
 \r
-/*----- \83p\83X\83\8f\81[\83h\82Ì\88Ã\8d\86\89»\82ð\89ð\82­(AES) ---------------------------------------\r
+/*----- パスワードの暗号化を解く(AES) ---------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Str : \88Ã\8d\86\89»\82µ\82½\83p\83X\83\8f\81[\83h\r
-*              char *Buf : \83p\83X\83\8f\81[\83h\82ð\8ai\94[\82·\82é\83o\83b\83t\83@\r
-*              const char *Key : \88Ã\8d\86\89»\83L\81[\r
+*              char *Str : 暗号化したパスワード\r
+*              char *Buf : パスワードを格納するバッファ\r
+*              const char *Key : 暗号化キー\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void DecodePassword3(char *Str, char *Buf, const char *Key)\r
@@ -1594,7 +1615,7 @@ static void DecodePassword3(char *Str, char *Buf, const char *Key)
 \r
                        if(*Get++ == ':')\r
                        {\r
-                               if(CreateAesKey(AesKey, Key) == SUCCESS)\r
+                               if(CreateAesKey(AesKey, Key) == FFFTP_SUCCESS)\r
                                {\r
                                        aes_decrypt_key(AesKey, 32, &Ctx);\r
 \r
@@ -1615,16 +1636,16 @@ static void DecodePassword3(char *Str, char *Buf, const char *Key)
        return;\r
 }\r
 \r
-/*----- AES\97p\8cÅ\92è\92·\83L\81[\82ð\8dì\90¬ ----------------------------------------------\r
+/*----- AES用固定長キーを作成 ----------------------------------------------\r
 *\r
 *      Parameter\r
-*              unsigned char *AesKey : AES\88Ã\8d\86\8c®\r
-*              const char *Key : \88Ã\8d\86\89»\83L\81[\r
+*              unsigned char *AesKey : AES暗号鍵\r
+*              const char *Key : 暗号化キー\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X (SUCCESS/FAIL)\r
+*              int ステータス (FFFTP_SUCCESS/FFFTP_FAIL)\r
 *      Note\r
-*              SHA-1\82ð\82à\82¿\82¢\82Ä32Byte\8c®\82ð\90\90¬\82·\82é\r
+*              SHA-1をもちいて32Byte鍵を生成する\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int CreateAesKey(unsigned char *AesKey, const char* Key)\r
@@ -1638,7 +1659,7 @@ static int CreateAesKey(unsigned char *AesKey, const char* Key)
 \r
        HashKeyLen = strlen(Key) + 16;\r
        if((HashKey = malloc(HashKeyLen + 1)) == NULL){\r
-               return (FAIL);\r
+               return (FFFTP_FAIL);\r
        }\r
 \r
        strcpy(HashKey, Key);\r
@@ -1659,24 +1680,24 @@ static int CreateAesKey(unsigned char *AesKey, const char* Key)
        }\r
        free(HashKey);\r
 \r
-       return (SUCCESS);\r
+       return (FFFTP_SUCCESS);\r
 }\r
 \r
 \r
-/*===== \83\8c\83W\83X\83g\83\8a\82ÆINI\83t\83@\83C\83\8b\82Ì\83A\83N\83Z\83X\8f\88\97\9d ============*/\r
+/*===== レジストリとINIファイルのアクセス処理 ============*/\r
 \r
 \r
-/*===== INI\83t\83@\83C\83\8b\97p\82Ì\83\8c\83W\83X\83g\83\8a\83f\81[\83^ =====*/\r
+/*===== INIファイル用のレジストリデータ =====*/\r
 \r
 typedef struct regdatatbl {\r
-       char KeyName[80+1];                     /* \83L\81[\96¼ */\r
-       char ValTbl[REG_SECT_MAX];      /* \92l\82Ì\83e\81[\83u\83\8b */\r
-       int ValLen;                                     /* \92l\83f\81[\83^\82Ì\83o\83C\83g\90\94 */\r
-       int Mode;                                       /* \83L\81[\82Ì\83\82\81[\83h */\r
+       char KeyName[80+1];                     /* キー名 */\r
+       char ValTbl[REG_SECT_MAX];      /* 値のテーブル */\r
+       int ValLen;                                     /* 値データのバイト数 */\r
+       int Mode;                                       /* キーのモード */\r
        struct regdatatbl *Next;\r
 } REGDATATBL;\r
 \r
-/*===== \83v\83\8d\83g\83^\83C\83v =====*/\r
+/*===== プロトタイプ =====*/\r
 \r
 static BOOL WriteOutRegToFile(REGDATATBL *Pos);\r
 static int ReadInReg(char *Name, REGDATATBL **Handle);\r
@@ -1685,20 +1706,20 @@ static int StrReadIn(char *Src, int Max, char *Dst);
 static char *ScanValue(void *Handle, char *Name);\r
 \r
 \r
-/*===== \83\8d\81[\83J\83\8b\82È\83\8f\81[\83N =====*/\r
+/*===== ローカルなワーク =====*/\r
 \r
 static int TmpRegType;\r
 \r
 \r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a\82Ì\83^\83C\83v\82ð\90Ý\92è\82·\82é ------------------------------------------\r
+/*----- レジストリのタイプを設定する ------------------------------------------\r
 *\r
 *      Parameter\r
-*              int Type : \83^\83C\83v (REGTYPE_xxx)\r
+*              int Type : タイプ (REGTYPE_xxx)\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static void SetRegType(int Type)\r
@@ -1708,15 +1729,15 @@ static void SetRegType(int Type)
 }\r
 \r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82ð\83I\81[\83v\83\93\82·\82é\81i\93Ç\82Ý\8d\9e\82Ý\81j-----------------------\r
+/*----- レジストリ/INIファイルをオープンする(読み込み)-----------------------\r
 *\r
 *      Parameter\r
-*              char *Name : \83\8c\83W\83X\83g\83\8a\96¼\r
-*              void **Handle : \83n\83\93\83h\83\8b\82ð\95Ô\82·\83\8f\81[\83N\r
+*              char *Name : レジストリ名\r
+*              void **Handle : ハンドルを返すワーク\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int OpenReg(char *Name, void **Handle)\r
@@ -1724,32 +1745,32 @@ static int OpenReg(char *Name, void **Handle)
        int Sts;\r
        char Tmp[FMAX_PATH+1];\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                strcpy(Tmp, "Software\\Sota\\");\r
                strcat(Tmp, Name);\r
                if(RegOpenKeyEx(HKEY_CURRENT_USER, Tmp, 0, KEY_READ, (HKEY *)Handle) == ERROR_SUCCESS)\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
        }\r
        else\r
        {\r
-               if((Sts = ReadInReg(Name, (REGDATATBL **)Handle)) == SUCCESS)\r
+               if((Sts = ReadInReg(Name, (REGDATATBL **)Handle)) == FFFTP_SUCCESS)\r
                        ((REGDATATBL *)(*Handle))->Mode = 0;\r
        }\r
        return(Sts);\r
 }\r
 \r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82ð\8dì\90¬\82·\82é\81i\8f\91\82«\8d\9e\82Ý\81j---------------------------\r
+/*----- レジストリ/INIファイルを作成する(書き込み)---------------------------\r
 *\r
 *      Parameter\r
-*              char *Name : \83\8c\83W\83X\83g\83\8a\96¼\r
-*              void **Handle : \83n\83\93\83h\83\8b\82ð\95Ô\82·\83\8f\81[\83N\r
+*              char *Name : レジストリ名\r
+*              void **Handle : ハンドルを返すワーク\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int CreateReg(char *Name, void **Handle)\r
@@ -1758,13 +1779,13 @@ static int CreateReg(char *Name, void **Handle)
        char Tmp[FMAX_PATH+1];\r
        DWORD Dispos;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                strcpy(Tmp, "Software\\Sota\\");\r
                strcat(Tmp, Name);\r
                if(RegCreateKeyEx(HKEY_CURRENT_USER, Tmp, 0, "", REG_OPTION_NON_VOLATILE, KEY_CREATE_SUB_KEY | KEY_SET_VALUE, NULL, (HKEY *)Handle, &Dispos) == ERROR_SUCCESS)\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
        }\r
        else\r
        {\r
@@ -1774,21 +1795,21 @@ static int CreateReg(char *Name, void **Handle)
                        ((REGDATATBL *)(*Handle))->ValLen = 0;\r
                        ((REGDATATBL *)(*Handle))->Next = NULL;\r
                        ((REGDATATBL *)(*Handle))->Mode = 1;\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
        }\r
        return(Sts);\r
 }\r
 \r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a/INI\83t\83@\83C\83\8b\82ð\83N\83\8d\81[\83Y\82·\82é ----------------------------------\r
+/*----- レジストリ/INIファイルをクローズする ----------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
+*              void *Handle : ハンドル\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int CloseReg(void *Handle)\r
@@ -1801,7 +1822,7 @@ static int CloseReg(void *Handle)
        {\r
                RegCloseKey(Handle);\r
 \r
-               /* INI\83t\83@\83C\83\8b\82ð\8dí\8f\9c */\r
+               /* INIファイルを削除 */\r
                if((Strm = fopen(AskIniFilePath(), "rt")) != NULL)\r
                {\r
                        fclose(Strm);\r
@@ -1814,11 +1835,11 @@ static int CloseReg(void *Handle)
                {\r
                        if(WriteOutRegToFile(Handle) == TRUE)\r
                        {\r
-//                             /* \83\8c\83W\83X\83g\83\8a\82ð\83N\83\8a\83A */\r
+//                             /* レジストリをクリア */\r
 //                             ClearRegistory();\r
                        }\r
                }\r
-               /* \83e\81[\83u\83\8b\82ð\8dí\8f\9c */\r
+               /* テーブルを削除 */\r
                Pos = Handle;\r
                while(Pos != NULL)\r
                {\r
@@ -1827,17 +1848,17 @@ static int CloseReg(void *Handle)
                        Pos = Next;\r
                }\r
        }\r
-       return(SUCCESS);\r
+       return(FFFTP_SUCCESS);\r
 }\r
 \r
 \r
-/*----- \83\8c\83W\83X\83g\83\8a\8fî\95ñ\82ðINI\83t\83@\83C\83\8b\82É\8f\91\82«\8d\9e\82Þ ---------------------------------\r
+/*----- レジストリ情報をINIファイルに書き込む ---------------------------------\r
 *\r
 *      Parameter\r
-*              REGDATATBL *Pos : \83\8c\83W\83X\83g\83\8a\83f\81[\83^\r
+*              REGDATATBL *Pos : レジストリデータ\r
 *\r
 *      Return Value\r
-*              \82È\82µ\r
+*              なし\r
 *----------------------------------------------------------------------------*/\r
 \r
 static BOOL WriteOutRegToFile(REGDATATBL *Pos)\r
@@ -1872,15 +1893,15 @@ static BOOL WriteOutRegToFile(REGDATATBL *Pos)
 }\r
 \r
 \r
-/*----- INI\83t\83@\83C\83\8b\82©\82ç\83\8c\83W\83X\83g\83\8a\8fî\95ñ\82ð\93Ç\82Ý\8d\9e\82Þ -------------------------------\r
+/*----- INIファイルからレジストリ情報を読み込む -------------------------------\r
 *\r
 *      Parameter\r
-*              char *Name : \96¼\91O\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
+*              char *Name : 名前\r
+*              void *Handle : ハンドル\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int ReadInReg(char *Name, REGDATATBL **Handle)\r
@@ -1893,7 +1914,7 @@ static int ReadInReg(char *Name, REGDATATBL **Handle)
        REGDATATBL *Pos;\r
        int Sts;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        *Handle = NULL;\r
 \r
        if((Strm = fopen(AskIniFilePath(), "rt")) != NULL)\r
@@ -1936,7 +1957,7 @@ static int ReadInReg(char *Name, REGDATATBL **Handle)
                                        }\r
                                }\r
                        }\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                        free(Buf);\r
                }\r
                fclose(Strm);\r
@@ -1945,16 +1966,16 @@ static int ReadInReg(char *Name, REGDATATBL **Handle)
 }\r
 \r
 \r
-/*----- \83T\83u\83L\81[\82ð\83I\81[\83v\83\93\82·\82é ------------------------------------------------\r
+/*----- サブキーをオープンする ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Parent : \90e\82Ì\83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              void **Handle : \83n\83\93\83h\83\8b\82ð\95Ô\82·\83\8f\81[\83N\r
+*              void *Parent : 親のハンドル\r
+*              char *Name : 名前\r
+*              void **Handle : ハンドルを返すワーク\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int OpenSubKey(void *Parent, char *Name, void **Handle)\r
@@ -1963,11 +1984,11 @@ static int OpenSubKey(void *Parent, char *Name, void **Handle)
        char Key[80];\r
        REGDATATBL *Pos;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                if(RegOpenKeyEx(Parent, Name, 0, KEY_READ, (HKEY *)Handle) == ERROR_SUCCESS)\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
        }\r
        else\r
        {\r
@@ -1980,7 +2001,7 @@ static int OpenSubKey(void *Parent, char *Name, void **Handle)
                        if(strcmp(Pos->KeyName, Key) == 0)\r
                        {\r
                                *Handle = Pos;\r
-                               Sts = SUCCESS;\r
+                               Sts = FFFTP_SUCCESS;\r
                                break;\r
                        }\r
                        Pos = Pos->Next;\r
@@ -1990,16 +2011,16 @@ static int OpenSubKey(void *Parent, char *Name, void **Handle)
 }\r
 \r
 \r
-/*----- \83T\83u\83L\81[\82ð\8dì\90¬\82·\82é ----------------------------------------------------\r
+/*----- サブキーを作成する ----------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Parent : \90e\82Ì\83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              void **Handle : \83n\83\93\83h\83\8b\82ð\95Ô\82·\83\8f\81[\83N\r
+*              void *Parent : 親のハンドル\r
+*              char *Name : 名前\r
+*              void **Handle : ハンドルを返すワーク\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int CreateSubKey(void *Parent, char *Name, void **Handle)\r
@@ -2008,11 +2029,11 @@ static int CreateSubKey(void *Parent, char *Name, void **Handle)
        DWORD Dispos;\r
        REGDATATBL *Pos;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                if(RegCreateKeyEx(Parent, Name, 0, "", REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, (HKEY *)Handle, &Dispos) == ERROR_SUCCESS)\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
        }\r
        else\r
        {\r
@@ -2029,21 +2050,21 @@ static int CreateSubKey(void *Parent, char *Name, void **Handle)
                        while(Pos->Next != NULL)\r
                                Pos = Pos->Next;\r
                        Pos->Next = *Handle;\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
        }\r
        return(Sts);\r
 }\r
 \r
 \r
-/*----- \83T\83u\83L\81[\82ð\83N\83\8d\81[\83Y\82·\82é ------------------------------------------------\r
+/*----- サブキーをクローズする ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
+*              void *Handle : ハンドル\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int CloseSubKey(void *Handle)\r
@@ -2054,78 +2075,78 @@ static int CloseSubKey(void *Handle)
        {\r
                /* Nothing */\r
        }\r
-       return(SUCCESS);\r
+       return(FFFTP_SUCCESS);\r
 }\r
 \r
 \r
-/*----- \83T\83u\83L\81[\82ð\8dí\8f\9c\82·\82é ----------------------------------------------------\r
+/*----- サブキーを削除する ----------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int DeleteSubKey(void *Handle, char *Name)\r
 {\r
        int Sts;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                if(RegDeleteKey(Handle, Name) == ERROR_SUCCESS)\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
        }\r
        else\r
        {\r
-               Sts = FAIL;\r
+               Sts = FFFTP_FAIL;\r
        }\r
        return(Sts);\r
 }\r
 \r
 \r
-/*----- \92l\82ð\8dí\8f\9c\82·\82é ----------------------------------------------------------\r
+/*----- 値を削除する ----------------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int DeleteValue(void *Handle, char *Name)\r
 {\r
        int Sts;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                if(RegDeleteValue(Handle, Name) == ERROR_SUCCESS)\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
        }\r
        else\r
        {\r
-               Sts = FAIL;\r
+               Sts = FFFTP_FAIL;\r
        }\r
        return(Sts);\r
 }\r
 \r
 \r
-/*----- INT\92l\82ð\93Ç\82Ý\8d\9e\82Þ -------------------------------------------------------\r
+/*----- INT値を読み込む -------------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              int *Value : INT\92l\82ð\95Ô\82·\83\8f\81[\83N\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
+*              int *Value : INT値を返すワーク\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int ReadIntValueFromReg(void *Handle, char *Name, int *Value)\r
@@ -2134,35 +2155,35 @@ static int ReadIntValueFromReg(void *Handle, char *Name, int *Value)
        DWORD Size;\r
        char *Pos;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                Size = sizeof(int);\r
                if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Value, &Size) == ERROR_SUCCESS)\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
        }\r
        else\r
        {\r
                if((Pos = ScanValue(Handle, Name)) != NULL)\r
                {\r
                        *Value = atoi(Pos);\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
        }\r
        return(Sts);\r
 }\r
 \r
 \r
-/*----- INT\92l\82ð\8f\91\82«\8d\9e\82Þ -------------------------------------------------------\r
+/*----- INT値を書き込む -------------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              int Value : INT\92l\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
+*              int Value : INT\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int WriteIntValueToReg(void *Handle, char *Name, int Value)\r
@@ -2183,21 +2204,21 @@ static int WriteIntValueToReg(void *Handle, char *Name, int Value)
                strcat(Data, Tmp);\r
                Pos->ValLen += strlen(Data) + 1;\r
        }\r
-       return(SUCCESS);\r
+       return(FFFTP_SUCCESS);\r
 }\r
 \r
 \r
-/*----- \95\8e\9a\97ñ\82ð\93Ç\82Ý\8d\9e\82Þ ------------------------------------------------------\r
+/*----- 文字列を読み込む ------------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              char *Str : \95\8e\9a\97ñ\82ð\95Ô\82·\83\8f\81[\83N\r
-*              DWORD Size : \8dÅ\91å\83T\83C\83Y\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
+*              char *Str : 文字列を返すワーク\r
+*              DWORD Size : 最大サイズ\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int ReadStringFromReg(void *Handle, char *Name, char *Str, DWORD Size)\r
@@ -2205,14 +2226,14 @@ static int ReadStringFromReg(void *Handle, char *Name, char *Str, DWORD Size)
        int Sts;\r
        char *Pos;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Str, &Size) == ERROR_SUCCESS)\r
                {\r
                        if(*(Str + Size - 1) != NUL)\r
                                *(Str + Size) = NUL;\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
        }\r
        else\r
@@ -2222,23 +2243,23 @@ static int ReadStringFromReg(void *Handle, char *Name, char *Str, DWORD Size)
                        Size = min1(Size-1, strlen(Pos));\r
                        Size = StrReadIn(Pos, Size, Str);\r
                        *(Str + Size) = NUL;\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
        }\r
        return(Sts);\r
 }\r
 \r
 \r
-/*----- \95\8e\9a\97ñ\82ð\8f\91\82«\8d\9e\82Þ ------------------------------------------------------\r
+/*----- 文字列を書き込む ------------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              char *Str :\95\8e\9a\97ñ\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
+*              char *Str :文字列\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int WriteStringToReg(void *Handle, char *Name, char *Str)\r
@@ -2258,21 +2279,21 @@ static int WriteStringToReg(void *Handle, char *Name, char *Str)
                Data = Pos->ValTbl + Pos->ValLen;\r
                Pos->ValLen += StrCatOut(Str, strlen(Str), Data) + 1;\r
        }\r
-       return(SUCCESS);\r
+       return(FFFTP_SUCCESS);\r
 }\r
 \r
 \r
-/*----- \83}\83\8b\83`\95\8e\9a\97ñ\82ð\93Ç\82Ý\8d\9e\82Þ ------------------------------------------------\r
+/*----- マルチ文字列を読み込む ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              char *Str : \95\8e\9a\97ñ\82ð\95Ô\82·\83\8f\81[\83N\r
-*              DWORD Size : \8dÅ\91å\83T\83C\83Y\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
+*              char *Str : 文字列を返すワーク\r
+*              DWORD Size : 最大サイズ\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int ReadMultiStringFromReg(void *Handle, char *Name, char *Str, DWORD Size)\r
@@ -2280,14 +2301,14 @@ static int ReadMultiStringFromReg(void *Handle, char *Name, char *Str, DWORD Siz
        int Sts;\r
        char *Pos;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Str, &Size) == ERROR_SUCCESS)\r
                {\r
                        if(*(Str + Size - 1) != NUL)\r
                                *(Str + Size) = NUL;\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
        }\r
        else\r
@@ -2297,23 +2318,23 @@ static int ReadMultiStringFromReg(void *Handle, char *Name, char *Str, DWORD Siz
                        Size = min1(Size-1, strlen(Pos));\r
                        Size = StrReadIn(Pos, Size, Str);\r
                        *(Str + Size) = NUL;\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
        }\r
        return(Sts);\r
 }\r
 \r
 \r
-/*----- \83}\83\8b\83`\95\8e\9a\97ñ\82ð\8f\91\82«\8d\9e\82Þ ------------------------------------------------\r
+/*----- マルチ文字列を書き込む ------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              char *Str : \95\8e\9a\97ñ\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
+*              char *Str : 文字列\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int WriteMultiStringToReg(void *Handle, char *Name, char *Str)\r
@@ -2333,21 +2354,21 @@ static int WriteMultiStringToReg(void *Handle, char *Name, char *Str)
                Data = Pos->ValTbl + Pos->ValLen;\r
                Pos->ValLen += StrCatOut(Str, StrMultiLen(Str), Data) + 1;\r
        }\r
-       return(SUCCESS);\r
+       return(FFFTP_SUCCESS);\r
 }\r
 \r
 \r
-/*----- \83o\83C\83i\83\8a\82ð\93Ç\82Ý\8d\9e\82Þ-----------------------------------------------------\r
+/*----- バイナリを読み込む-----------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              void *Bin : \83o\83C\83i\83\8a\82ð\95Ô\82·\83\8f\81[\83N\r
-*              DWORD Size : \8dÅ\91å\83T\83C\83Y\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
+*              void *Bin : バイナリを返すワーク\r
+*              DWORD Size : 最大サイズ\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int ReadBinaryFromReg(void *Handle, char *Name, void *Bin, DWORD Size)\r
@@ -2355,11 +2376,11 @@ static int ReadBinaryFromReg(void *Handle, char *Name, void *Bin, DWORD Size)
        int Sts;\r
        char *Pos;\r
 \r
-       Sts = FAIL;\r
+       Sts = FFFTP_FAIL;\r
        if(TmpRegType == REGTYPE_REG)\r
        {\r
                if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Bin, &Size) == ERROR_SUCCESS)\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
        }\r
        else\r
        {\r
@@ -2367,24 +2388,24 @@ static int ReadBinaryFromReg(void *Handle, char *Name, void *Bin, DWORD Size)
                {\r
                        Size = min1(Size, strlen(Pos));\r
                        Size = StrReadIn(Pos, Size, Bin);\r
-                       Sts = SUCCESS;\r
+                       Sts = FFFTP_SUCCESS;\r
                }\r
        }\r
        return(Sts);\r
 }\r
 \r
 \r
-/*----- \83o\83C\83i\83\8a\82ð\8f\91\82«\8d\9e\82Þ ----------------------------------------------------\r
+/*----- バイナリを書き込む ----------------------------------------------------\r
 *\r
 *      Parameter\r
-*              void *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
-*              void *Bin : \83o\83C\83i\83\8a\r
-*              int Len : \92·\82³\r
+*              void *Handle : ハンドル\r
+*              char *Name : 名前\r
+*              void *Bin : バイナリ\r
+*              int Len : 長さ\r
 *\r
 *      Return Value\r
-*              int \83X\83e\81[\83^\83X\r
-*                      SUCCESS/FAIL\r
+*              int ステータス\r
+*                      FFFTP_SUCCESS/FFFTP_FAIL\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int WriteBinaryToReg(void *Handle, char *Name, void *Bin, int Len)\r
@@ -2404,19 +2425,19 @@ static int WriteBinaryToReg(void *Handle, char *Name, void *Bin, int Len)
                Data = Pos->ValTbl + Pos->ValLen;\r
                Pos->ValLen += StrCatOut(Bin, Len, Data) + 1;\r
        }\r
-       return(SUCCESS);\r
+       return(FFFTP_SUCCESS);\r
 }\r
 \r
 \r
-/*----- \95\8e\9a\97ñ\82ð\83o\83b\83t\83@\82É\92Ç\89Á\8f\91\82«\8d\9e\82Ý\82·\82é ------------------------------------\r
+/*----- 文字列をバッファに追加書き込みする ------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Src : \95\8e\9a\97ñ\r
-*              int len : \95\8e\9a\97ñ\82Ì\92·\82³\r
-*              char *Dst : \8f\91\82«\8d\9e\82Ý\82·\82é\83o\83b\83t\83@\r
+*              char *Src : 文字列\r
+*              int len : 文字列の長さ\r
+*              char *Dst : 書き込みするバッファ\r
 *\r
 *      Return Value\r
-*              int \92Ç\89Á\82µ\82½\83o\83C\83g\90\94\r
+*              int 追加したバイト数\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int StrCatOut(char *Src, int Len, char *Dst)\r
@@ -2451,15 +2472,15 @@ static int StrCatOut(char *Src, int Len, char *Dst)
 }\r
 \r
 \r
-/*----- \95\8e\9a\97ñ\82ð\83o\83b\83t\83@\82É\93Ç\82Ý\8d\9e\82Þ --------------------------------------------\r
+/*----- 文字列をバッファに読み込む --------------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Src : \95\8e\9a\97ñ\r
-*              int Max : \8dÅ\91å\83T\83C\83Y\r
-*              char *Dst : \8f\91\82«\8d\9e\82Ý\82·\82é\83o\83b\83t\83@\r
+*              char *Src : 文字列\r
+*              int Max : 最大サイズ\r
+*              char *Dst : 書き込みするバッファ\r
 *\r
 *      Return Value\r
-*              int \93Ç\82Ý\8d\9e\82ñ\82¾\83o\83C\83g\90\94\r
+*              int 読み込んだバイト数\r
 *----------------------------------------------------------------------------*/\r
 \r
 static int StrReadIn(char *Src, int Max, char *Dst)\r
@@ -2496,15 +2517,15 @@ static int StrReadIn(char *Src, int Max, char *Dst)
 }\r
 \r
 \r
-/*----- \92l\82ð\8c\9f\8dõ\82·\82é ----------------------------------------------------------\r
+/*----- 値を検索する ----------------------------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Handle : \83n\83\93\83h\83\8b\r
-*              char *Name : \96¼\91O\r
+*              char *Handle : ハンドル\r
+*              char *Name : 名前\r
 *\r
 *      Return Value\r
-*              char *\92l\83f\81[\83^\82Ì\90æ\93ª\r
-*                      NULL=\8ew\92è\82Ì\96¼\91O\82Ì\92l\82ª\8c©\82Â\82©\82ç\82È\82¢\r
+*              char *値データの先頭\r
+*                      NULL=指定の名前の値が見つからない\r
 *----------------------------------------------------------------------------*/\r
 \r
 static char *ScanValue(void *Handle, char *Name)\r
@@ -2530,16 +2551,16 @@ static char *ScanValue(void *Handle, char *Name)
 }\r
 \r
 \r
-/*----------- \83p\83X\83\8f\81[\83h\82Ì\91Ã\93\96\90«\82ð\8am\94F\82·\82é ------------------------------------\r
+/*----------- パスワードの妥当性を確認する ------------------------------------\r
 *\r
 *      Parameter\r
-*              char *Password: \83p\83X\83\8f\81[\83h\95\8e\9a\97ñ\r
-*              char *HashStr: SHA-1\83n\83b\83V\83\85\95\8e\9a\97ñ\r
+*              char *Password: パスワード文字列\r
+*              char *HashStr: SHA-1ハッシュ文字列\r
 *\r
 *      Return Value\r
-*              int 0 \95s\88ê\92v\r
-*                      1: \88ê\92v\r
-*                      2: \88Ù\8fí\r
+*              int 0 不一致\r
+*                      1: 一致\r
+*                      2: 異常\r
 *----------------------------------------------------------------------------*/\r
 int CheckPasswordValidity( char* Password, int length, const char* HashStr )\r
 {\r
@@ -2550,13 +2571,13 @@ int CheckPasswordValidity( char* Password, int length, const char* HashStr )
        \r
        const char* p = HashStr;\r
        \r
-       /* \8bó\95\8e\9a\97ñ\82Í\88ê\92v\82µ\82½\82±\82Æ\82É\82·\82é */\r
+       /* 空文字列は一致したことにする */\r
        if( HashStr[0] == NUL ) return 1;\r
 \r
-       /* Hash\82ð\83`\83F\83b\83N\82·\82é\82·\82é*/\r
+       /* Hashをチェックするする*/\r
        if( strlen(HashStr) != 40 )     return 2;\r
 \r
-       /* Hash\82ð\83f\83R\81[\83h\82·\82é*/\r
+       /* Hashをデコードする*/\r
        for( i = 0; i < 5; i++ ){\r
                ulong decode = 0;\r
                for( j = 0; j < 8; j++ ){\r
@@ -2569,7 +2590,7 @@ int CheckPasswordValidity( char* Password, int length, const char* HashStr )
                hash1[i] = decode;\r
        }\r
        \r
-       /* Password \82ð\83n\83b\83V\83\85\82·\82é */\r
+       /* Password をハッシュする */\r
        sha_memory( Password, length, hash2 );\r
        \r
        if( memcmp( (char*)hash1, (char*)hash2, sizeof( hash1 )) == 0 ){\r
@@ -2578,11 +2599,11 @@ int CheckPasswordValidity( char* Password, int length, const char* HashStr )
        return 0;\r
 }\r
 \r
-/*----------- \83p\83X\83\8f\81[\83h\82Ì\91Ã\93\96\90«\83`\83F\83b\83N\82Ì\82½\82ß\82Ì\95\8e\9a\97ñ\82ð\8dì\90¬\82·\82é ------------\r
+/*----------- パスワードの妥当性チェックのための文字列を作成する ------------\r
 *\r
 *      Parameter\r
-*              char *Password: \83p\83X\83\8f\81[\83h\95\8e\9a\97ñ\r
-*              char *Str: SHA-1\83n\83b\83V\83\85\95\8e\9a\97ñ\8ai\94[\8fê\8f\8a (41bytes\88È\8fã)\r
+*              char *Password: パスワード文字列\r
+*              char *Str: SHA-1ハッシュ文字列格納場所 (41bytes以上)\r
 *\r
 *      Return Value\r
 *              None\r
@@ -2616,12 +2637,12 @@ void SetHashSalt( DWORD salt )
        SecretKeyLength = strlen( SecretKey ) + 5;\r
 }\r
 \r
-/*----------- \97\90\90\94\90\90¬\82ð\82·\82é -------------------------------------------------\r
+/*----------- 乱数生成をする -------------------------------------------------\r
 *\r
 *      Parameter\r
 *\r
 *      Return Value\r
-*              \83\89\83\93\83_\83\80\82È\92l\81F\83R\83\93\83p\83C\83\89VS2005/\93®\8dì\8aÂ\8b«WinXP\88È\8fã\82Å\82Í rand_s \82©\82ç\8eæ\93¾\82·\82é\r
+*              ランダムな値:コンパイラVS2005/動作環境WinXP以上では rand_s から取得する\r
 *----------------------------------------------------------------------------*/\r
 DWORD GetRandamDWRODValue(void)\r
 {\r
@@ -2638,12 +2659,12 @@ DWORD GetRandamDWRODValue(void)
 #ifdef USE_RANDAM_C_RAND\r
                rndValue = rand() | (rand() << 16);\r
 #else\r
-               /* rand() \82Ì\82©\82í\82è\82É\81ASHA-1\82Æ\83p\83t\83H\81[\83}\83\93\83X\83J\83E\83\93\83^\82ð\97p\82¢\82é */\r
+               /* rand() のかわりに、SHA-1とパフォーマンスカウンタを用いる */\r
                ulong shaValue[5];\r
                LARGE_INTEGER Counter;\r
                \r
                if(0 == IsRndSourceInit){\r
-                       /* \8f\89\89ñ\8eæ\93¾\8e\9e */\r
+                       /* 初回取得時 */\r
                        HANDLE CurProcHandle;\r
                        HANDLE CurThreadHandle;\r
                        \r
@@ -2658,12 +2679,12 @@ DWORD GetRandamDWRODValue(void)
                                CloseHandle(CurThreadHandle);\r
                        }\r
                        \r
-                       /* _WIN64 \82Å\82Í64bit\82¾\82ª\81A\82»\82Ì\8fê\8d\87\82Írand_s\82ª\91å\92ï\97\98\97p\89Â\94\\82È\82Ì\82Å\82±\82±\82Å\82Í32bit\82Ì\82Ý\97p\82¢\82é */\r
+                       /* _WIN64 では64bitだが、その場合はrand_sが大抵利用可能なのでここでは32bitのみ用いる */\r
                        RndSource[0] = (ulong)CurProcHandle;\r
                        RndSource[1] = (ulong)CurThreadHandle;\r
                        RndSource[2] = (ulong)GetTickCount();\r
                        RndSource[3] = (ulong)timeGetTime();\r
-                       RndSource[4] = 0; /* \83J\83E\83\93\83g\83A\83b\83v */\r
+                       RndSource[4] = 0; /* カウントアップ */\r
                        RndSource[5] = RndSource[3] + 1;\r
                        IsRndSourceInit = 1;\r
                }\r