\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
+// バグ修正\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
+static void SaveStr(void *Handle, char *Key, char *Str, char *DefaultStr);\r
+static void SaveIntNum(void *Handle, char *Key, int Num, int DefaultNum);\r
static void MakeFontData(LOGFONT Font, HFONT hFont, char *Buf);\r
static int RestoreFontData(char *Str, LOGFONT *Font);\r
\r
WriteBinaryToReg(hKey3, "EncryptAllChecksum", &EncryptSettingsChecksum, 20);\r
if(EncryptAllSettings == YES)\r
{\r
- if(RegType == REGTYPE_REG)\r
+ if(OpenSubKey(hKey3, "Options", &hKey4) == FFFTP_SUCCESS)\r
{\r
- if(RegCreateKeyEx(hKey3, "Options", 0, "", REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, (HKEY*)&hKey4, NULL) == ERROR_SUCCESS)\r
+ for(i = 0; ; i++)\r
{\r
- for(i = 0; ; i++)\r
- {\r
- sprintf(Str, "Host%d", i);\r
- if(RegDeleteKey(hKey4, Str) != ERROR_SUCCESS)\r
- break;\r
- }\r
- for(i = 0; ; i++)\r
- {\r
- sprintf(Str, "History%d", i);\r
- if(RegDeleteKey(hKey4, Str) != ERROR_SUCCESS)\r
- break;\r
- }\r
- RegCloseKey(hKey4);\r
+ sprintf(Str, "Host%d", i);\r
+ if(DeleteSubKey(hKey4, Str) != FFFTP_SUCCESS)\r
+ break;\r
}\r
- RegDeleteKey(hKey3, "Options");\r
+ for(i = 0; ; i++)\r
+ {\r
+ sprintf(Str, "History%d", i);\r
+ if(DeleteSubKey(hKey4, Str) != FFFTP_SUCCESS)\r
+ break;\r
+ }\r
+ CloseSubKey(hKey4);\r
}\r
+ DeleteSubKey(hKey3, "Options");\r
}\r
CloseReg(hKey3);\r
}\r
// 全設定暗号化対応\r
if(Version >= 1990)\r
{\r
- ReadIntValueFromReg(hKey3, "EncryptAll", &EncryptAllSettings);\r
- sprintf(Buf, "%d", EncryptAllSettings);\r
- ReadStringFromReg(hKey3, "EncryptAllDetector", Str, 255);\r
- DecodePassword(Str, Buf2);\r
- EncryptSettings = EncryptAllSettings;\r
- memset(&EncryptSettingsChecksum, 0, 20);\r
- if(strcmp(Buf, Buf2) != 0)\r
+ if(GetMasterPasswordStatus() == PASSWORD_OK)\r
{\r
- switch(MessageBox(GetMainHwnd(), MSGJPN343, "FFFTP", MB_ABORTRETRYIGNORE | MB_DEFBUTTON2))\r
+ ReadIntValueFromReg(hKey3, "EncryptAll", &EncryptAllSettings);\r
+ sprintf(Buf, "%d", EncryptAllSettings);\r
+ ReadStringFromReg(hKey3, "EncryptAllDetector", Str, 255);\r
+ DecodePassword(Str, Buf2);\r
+ EncryptSettings = EncryptAllSettings;\r
+ memset(&EncryptSettingsChecksum, 0, 20);\r
+ if(strcmp(Buf, Buf2) != 0)\r
{\r
- case IDABORT:\r
- CloseReg(hKey3);\r
- ClearRegistry();\r
- ClearIni();\r
- RestartAndTerminate();\r
- break;\r
- case IDRETRY:\r
- EncryptSettingsError = YES;\r
- break;\r
- case IDIGNORE:\r
- break;\r
+ switch(MessageBox(GetMainHwnd(), MSGJPN343, "FFFTP", MB_ABORTRETRYIGNORE | MB_DEFBUTTON2))\r
+ {\r
+ case IDABORT:\r
+ CloseReg(hKey3);\r
+ ClearRegistry();\r
+ ClearIni();\r
+ RestartAndTerminate();\r
+ break;\r
+ case IDRETRY:\r
+ EncryptSettingsError = YES;\r
+ break;\r
+ case IDIGNORE:\r
+ break;\r
+ }\r
}\r
}\r
}\r
EncryptSettings = NO;\r
if(Version >= 1990)\r
{\r
- memset(&Checksum, 0, 20);\r
- ReadBinaryFromReg(hKey3, "EncryptAllChecksum", &Checksum, 20);\r
- if(memcmp(&Checksum, &EncryptSettingsChecksum, 20) != 0)\r
+ if(GetMasterPasswordStatus() == PASSWORD_OK)\r
{\r
- switch(MessageBox(GetMainHwnd(), MSGJPN343, "FFFTP", MB_ABORTRETRYIGNORE | MB_DEFBUTTON2))\r
+ memset(&Checksum, 0, 20);\r
+ ReadBinaryFromReg(hKey3, "EncryptAllChecksum", &Checksum, 20);\r
+ if(memcmp(&Checksum, &EncryptSettingsChecksum, 20) != 0)\r
{\r
- case IDABORT:\r
- CloseReg(hKey3);\r
- ClearRegistry();\r
- ClearIni();\r
- RestartAndTerminate();\r
- break;\r
- case IDRETRY:\r
- EncryptSettingsError = YES;\r
- break;\r
- case IDIGNORE:\r
- break;\r
+ switch(MessageBox(GetMainHwnd(), MSGJPN343, "FFFTP", MB_ABORTRETRYIGNORE | MB_DEFBUTTON2))\r
+ {\r
+ case IDABORT:\r
+ CloseReg(hKey3);\r
+ ClearRegistry();\r
+ ClearIni();\r
+ RestartAndTerminate();\r
+ break;\r
+ case IDRETRY:\r
+ EncryptSettingsError = YES;\r
+ break;\r
+ case IDIGNORE:\r
+ break;\r
+ }\r
}\r
}\r
}\r
* 文字列がデフォルトの文字列と同じならセーブしない\r
*----------------------------------------------------------------------------*/\r
\r
-static void SaveStr(HKEY hKey, char *Key, char *Str, char *DefaultStr)\r
+// バグ修正\r
+//static void SaveStr(HKEY hKey, char *Key, char *Str, char *DefaultStr)\r
+static void SaveStr(void *Handle, char *Key, char *Str, char *DefaultStr)\r
{\r
if((DefaultStr != NULL) && (strcmp(Str, DefaultStr) == 0))\r
- DeleteValue(hKey, Key);\r
+// DeleteValue(hKey, Key);\r
+ DeleteValue(Handle, Key);\r
else\r
- WriteStringToReg(hKey, Key, Str);\r
+// WriteStringToReg(hKey, Key, Str);\r
+ WriteStringToReg(Handle, Key, Str);\r
\r
return;\r
}\r
* 数値がデフォルトの値と同じならセーブしない\r
*----------------------------------------------------------------------------*/\r
\r
-static void SaveIntNum(HKEY hKey, char *Key, int Num, int DefaultNum)\r
+// バグ修正\r
+//static void SaveIntNum(HKEY hKey, char *Key, int Num, int DefaultNum)\r
+static void SaveIntNum(void *Handle, char *Key, int Num, int DefaultNum)\r
{\r
if(Num == DefaultNum)\r
- DeleteValue(hKey, Key);\r
+// DeleteValue(hKey, Key);\r
+ DeleteValue(Handle, Key);\r
else\r
- WriteIntValueToReg(hKey, Key, Num);\r
+// WriteIntValueToReg(hKey, Key, Num);\r
+ WriteIntValueToReg(Handle, Key, Num);\r
\r
return;\r
}\r
struct regdatatbl *Next;\r
} REGDATATBL;\r
\r
+// 全設定暗号化対応\r
+typedef struct regdatatbl_reg {\r
+ char KeyName[80+1]; /* キー名 */\r
+ HKEY hKey;\r
+} REGDATATBL_REG;\r
+\r
/*===== プロトタイプ =====*/\r
\r
static BOOL WriteOutRegToFile(REGDATATBL *Pos);\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 = FFFTP_SUCCESS;\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 = FFFTP_SUCCESS;\r
+ if((*Handle = malloc(sizeof(REGDATATBL_REG))) != NULL)\r
+ {\r
+ strcpy(((REGDATATBL_REG *)(*Handle))->KeyName, Name);\r
+ strcpy(Tmp, "Software\\Sota\\");\r
+ strcat(Tmp, Name);\r
+ if(RegOpenKeyEx(HKEY_CURRENT_USER, Tmp, 0, KEY_READ, &(((REGDATATBL_REG *)(*Handle))->hKey)) == ERROR_SUCCESS)\r
+ Sts = FFFTP_SUCCESS;\r
+ if(Sts != FFFTP_SUCCESS)\r
+ free(*Handle);\r
+ }\r
}\r
else\r
{\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 = FFFTP_SUCCESS;\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 = FFFTP_SUCCESS;\r
+ if((*Handle = malloc(sizeof(REGDATATBL_REG))) != NULL)\r
+ {\r
+ strcpy(((REGDATATBL_REG *)(*Handle))->KeyName, Name);\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, &(((REGDATATBL_REG *)(*Handle))->hKey), &Dispos) == ERROR_SUCCESS)\r
+ Sts = FFFTP_SUCCESS;\r
+ if(Sts != FFFTP_SUCCESS)\r
+ free(*Handle);\r
+ }\r
}\r
else\r
{\r
\r
if(TmpRegType == REGTYPE_REG)\r
{\r
- RegCloseKey(Handle);\r
+ // 全設定暗号化対応\r
+// RegCloseKey(Handle);\r
+ RegCloseKey(((REGDATATBL_REG *)Handle)->hKey);\r
+ free(Handle);\r
\r
/* INIファイルを削除 */\r
// ポータブル版判定\r
Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
- if(RegOpenKeyEx(Parent, Name, 0, KEY_READ, (HKEY *)Handle) == ERROR_SUCCESS)\r
- Sts = FFFTP_SUCCESS;\r
+ // 全設定暗号化対応\r
+// if(RegOpenKeyEx(Parent, Name, 0, KEY_READ, (HKEY *)Handle) == ERROR_SUCCESS)\r
+// Sts = FFFTP_SUCCESS;\r
+ if((*Handle = malloc(sizeof(REGDATATBL_REG))) != NULL)\r
+ {\r
+ strcpy(((REGDATATBL_REG *)(*Handle))->KeyName, ((REGDATATBL_REG *)Parent)->KeyName);\r
+ strcat(((REGDATATBL_REG *)(*Handle))->KeyName, "\\");\r
+ strcat(((REGDATATBL_REG *)(*Handle))->KeyName, Name);\r
+ if(RegOpenKeyEx(((REGDATATBL_REG *)Parent)->hKey, Name, 0, KEY_READ, &(((REGDATATBL_REG *)(*Handle))->hKey)) == ERROR_SUCCESS)\r
+ Sts = FFFTP_SUCCESS;\r
+ if(Sts != FFFTP_SUCCESS)\r
+ free(*Handle);\r
+ }\r
}\r
else\r
{\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 = FFFTP_SUCCESS;\r
+ // 全設定暗号化対応\r
+// if(RegCreateKeyEx(Parent, Name, 0, "", REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, (HKEY *)Handle, &Dispos) == ERROR_SUCCESS)\r
+// Sts = FFFTP_SUCCESS;\r
+ if((*Handle = malloc(sizeof(REGDATATBL_REG))) != NULL)\r
+ {\r
+ strcpy(((REGDATATBL_REG *)(*Handle))->KeyName, ((REGDATATBL_REG *)Parent)->KeyName);\r
+ strcat(((REGDATATBL_REG *)(*Handle))->KeyName, "\\");\r
+ strcat(((REGDATATBL_REG *)(*Handle))->KeyName, Name);\r
+ if(RegCreateKeyEx(((REGDATATBL_REG *)Parent)->hKey, Name, 0, "", REG_OPTION_NON_VOLATILE, KEY_SET_VALUE, NULL, &(((REGDATATBL_REG *)(*Handle))->hKey), &Dispos) == ERROR_SUCCESS)\r
+ Sts = FFFTP_SUCCESS;\r
+ if(Sts != FFFTP_SUCCESS)\r
+ free(*Handle);\r
+ }\r
}\r
else\r
{\r
static int CloseSubKey(void *Handle)\r
{\r
if(TmpRegType == REGTYPE_REG)\r
- RegCloseKey(Handle);\r
+ // 全設定暗号化対応\r
+// RegCloseKey(Handle);\r
+ {\r
+ RegCloseKey(((REGDATATBL_REG *)Handle)->hKey);\r
+ free(Handle);\r
+ }\r
else\r
{\r
/* Nothing */\r
Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
- if(RegDeleteKey(Handle, Name) == ERROR_SUCCESS)\r
+ // 全設定暗号化対応\r
+// if(RegDeleteKey(Handle, Name) == ERROR_SUCCESS)\r
+ if(RegDeleteKey(((REGDATATBL_REG *)Handle)->hKey, Name) == ERROR_SUCCESS)\r
Sts = FFFTP_SUCCESS;\r
}\r
else\r
Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
- if(RegDeleteValue(Handle, Name) == ERROR_SUCCESS)\r
+ // 全設定暗号化対応\r
+// if(RegDeleteValue(Handle, Name) == ERROR_SUCCESS)\r
+ if(RegDeleteValue(((REGDATATBL_REG *)Handle)->hKey, Name) == ERROR_SUCCESS)\r
Sts = FFFTP_SUCCESS;\r
}\r
else\r
int Sts;\r
DWORD Size;\r
char *Pos;\r
+ // 全設定暗号化対応\r
+ char Path[80];\r
\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
+ // 全設定暗号化対応\r
+// if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Value, &Size) == ERROR_SUCCESS)\r
+ if(RegQueryValueEx(((REGDATATBL_REG *)Handle)->hKey, Name, NULL, NULL, (BYTE *)Value, &Size) == ERROR_SUCCESS)\r
Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
if(EncryptSettings == YES)\r
{\r
- UnmaskSettingsData(Name, strlen(Name), Value, sizeof(int), NO);\r
+ if(TmpRegType == REGTYPE_REG)\r
+ strcpy(Path, ((REGDATATBL_REG *)Handle)->KeyName);\r
+ else\r
+ strcpy(Path, ((REGDATATBL *)Handle)->KeyName);\r
+ strcat(Path, "\\");\r
+ strcat(Path, Name);\r
+ UnmaskSettingsData(Path, strlen(Path), Value, sizeof(int), NO);\r
CalculateSettingsDataChecksum(Value, sizeof(int));\r
}\r
}\r
REGDATATBL *Pos;\r
char *Data;\r
char Tmp[20];\r
+ // 全設定暗号化対応\r
+ char Path[80];\r
\r
// 全設定暗号化対応\r
if(EncryptSettings == YES)\r
- MaskSettingsData(Name, strlen(Name), &Value, sizeof(int), NO);\r
+ {\r
+ if(TmpRegType == REGTYPE_REG)\r
+ strcpy(Path, ((REGDATATBL_REG *)Handle)->KeyName);\r
+ else\r
+ strcpy(Path, ((REGDATATBL *)Handle)->KeyName);\r
+ strcat(Path, "\\");\r
+ strcat(Path, Name);\r
+ MaskSettingsData(Path, strlen(Path), &Value, sizeof(int), NO);\r
+ }\r
if(TmpRegType == REGTYPE_REG)\r
- RegSetValueEx(Handle, Name, 0, REG_DWORD, (CONST BYTE *)&Value, sizeof(int));\r
+ // 全設定暗号化対応\r
+// RegSetValueEx(Handle, Name, 0, REG_DWORD, (CONST BYTE *)&Value, sizeof(int));\r
+ RegSetValueEx(((REGDATATBL_REG *)Handle)->hKey, Name, 0, REG_DWORD, (CONST BYTE *)&Value, sizeof(int));\r
else\r
{\r
Pos = (REGDATATBL *)Handle;\r
// 全設定暗号化対応\r
if(EncryptSettings == YES)\r
{\r
- UnmaskSettingsData(Name, strlen(Name), &Value, sizeof(int), NO);\r
+ UnmaskSettingsData(Path, strlen(Path), &Value, sizeof(int), NO);\r
CalculateSettingsDataChecksum(&Value, sizeof(int));\r
}\r
return(FFFTP_SUCCESS);\r
DWORD TempSize;\r
char* pa0;\r
wchar_t* pw0;\r
+ // 全設定暗号化対応\r
+ char Path[80];\r
\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(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Str, &Size) == ERROR_SUCCESS)\r
+ if(RegQueryValueEx(((REGDATATBL_REG *)Handle)->hKey, Name, NULL, NULL, (BYTE *)Str, &Size) == ERROR_SUCCESS)\r
{\r
if(*(Str + Size - 1) != NUL)\r
*(Str + Size) = NUL;\r
{\r
if(EncryptSettings == YES)\r
{\r
- UnmaskSettingsData(Name, strlen(Name), Str, strlen(Str) + 1, YES);\r
+ if(TmpRegType == REGTYPE_REG)\r
+ strcpy(Path, ((REGDATATBL_REG *)Handle)->KeyName);\r
+ else\r
+ strcpy(Path, ((REGDATATBL *)Handle)->KeyName);\r
+ strcat(Path, "\\");\r
+ strcat(Path, Name);\r
+ UnmaskSettingsData(Path, strlen(Path), Str, strlen(Str) + 1, YES);\r
CalculateSettingsDataChecksum(Str, strlen(Str) + 1);\r
}\r
}\r
{\r
REGDATATBL *Pos;\r
char *Data;\r
+ // 全設定暗号化対応\r
+ char Path[80];\r
\r
// 全設定暗号化対応\r
if(EncryptSettings == YES)\r
- MaskSettingsData(Name, strlen(Name), Str, strlen(Str) + 1, YES);\r
+ {\r
+ if(TmpRegType == REGTYPE_REG)\r
+ strcpy(Path, ((REGDATATBL_REG *)Handle)->KeyName);\r
+ else\r
+ strcpy(Path, ((REGDATATBL *)Handle)->KeyName);\r
+ strcat(Path, "\\");\r
+ strcat(Path, Name);\r
+ MaskSettingsData(Path, strlen(Path), Str, strlen(Str) + 1, YES);\r
+ }\r
if(TmpRegType == REGTYPE_REG)\r
// 全設定暗号化対応\r
// RegSetValueEx(Handle, Name, 0, REG_SZ, (CONST BYTE *)Str, strlen(Str)+1);\r
- RegSetValueEx(Handle, Name, 0, EncryptSettings == YES ? REG_BINARY : REG_SZ, (CONST BYTE *)Str, strlen(Str)+1);\r
+ RegSetValueEx(((REGDATATBL_REG *)Handle)->hKey, Name, 0, EncryptSettings == YES ? REG_BINARY : REG_SZ, (CONST BYTE *)Str, strlen(Str)+1);\r
else\r
{\r
Pos = (REGDATATBL *)Handle;\r
// 全設定暗号化対応\r
if(EncryptSettings == YES)\r
{\r
- UnmaskSettingsData(Name, strlen(Name), Str, strlen(Str) + 1, YES);\r
+ UnmaskSettingsData(Path, strlen(Path), Str, strlen(Str) + 1, YES);\r
CalculateSettingsDataChecksum(Str, strlen(Str) + 1);\r
}\r
return(FFFTP_SUCCESS);\r
DWORD TempSize;\r
char* pa0;\r
wchar_t* pw0;\r
+ // 全設定暗号化対応\r
+ char Path[80];\r
\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(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Str, &Size) == ERROR_SUCCESS)\r
+ if(RegQueryValueEx(((REGDATATBL_REG *)Handle)->hKey, Name, NULL, NULL, (BYTE *)Str, &Size) == ERROR_SUCCESS)\r
{\r
if(*(Str + Size - 1) != NUL)\r
*(Str + Size) = NUL;\r
{\r
if(EncryptSettings == YES)\r
{\r
- UnmaskSettingsData(Name, strlen(Name), Str, StrMultiLen(Str) + 1, YES);\r
+ if(TmpRegType == REGTYPE_REG)\r
+ strcpy(Path, ((REGDATATBL_REG *)Handle)->KeyName);\r
+ else\r
+ strcpy(Path, ((REGDATATBL *)Handle)->KeyName);\r
+ strcat(Path, "\\");\r
+ strcat(Path, Name);\r
+ UnmaskSettingsData(Path, strlen(Path), Str, StrMultiLen(Str) + 1, YES);\r
CalculateSettingsDataChecksum(Str, StrMultiLen(Str) + 1);\r
}\r
}\r
{\r
REGDATATBL *Pos;\r
char *Data;\r
+ // 全設定暗号化対応\r
+ char Path[80];\r
\r
// 全設定暗号化対応\r
if(EncryptSettings == YES)\r
- MaskSettingsData(Name, strlen(Name), Str, StrMultiLen(Str) + 1, YES);\r
+ {\r
+ if(TmpRegType == REGTYPE_REG)\r
+ strcpy(Path, ((REGDATATBL_REG *)Handle)->KeyName);\r
+ else\r
+ strcpy(Path, ((REGDATATBL *)Handle)->KeyName);\r
+ strcat(Path, "\\");\r
+ strcat(Path, Name);\r
+ MaskSettingsData(Path, strlen(Path), Str, StrMultiLen(Str) + 1, YES);\r
+ }\r
if(TmpRegType == REGTYPE_REG)\r
// 全設定暗号化対応\r
// RegSetValueEx(Handle, Name, 0, REG_MULTI_SZ, (CONST BYTE *)Str, StrMultiLen(Str)+1);\r
- RegSetValueEx(Handle, Name, 0, EncryptSettings == YES ? REG_BINARY : REG_MULTI_SZ, (CONST BYTE *)Str, StrMultiLen(Str)+1);\r
+ RegSetValueEx(((REGDATATBL_REG *)Handle)->hKey, Name, 0, EncryptSettings == YES ? REG_BINARY : REG_MULTI_SZ, (CONST BYTE *)Str, StrMultiLen(Str)+1);\r
else\r
{\r
Pos = (REGDATATBL *)Handle;\r
// 全設定暗号化対応\r
if(EncryptSettings == YES)\r
{\r
- UnmaskSettingsData(Name, strlen(Name), Str, StrMultiLen(Str) + 1, YES);\r
+ UnmaskSettingsData(Path, strlen(Path), Str, StrMultiLen(Str) + 1, YES);\r
CalculateSettingsDataChecksum(Str, StrMultiLen(Str) + 1);\r
}\r
return(FFFTP_SUCCESS);\r
{\r
int Sts;\r
char *Pos;\r
+ // 全設定暗号化対応\r
+ char Path[80];\r
\r
Sts = FFFTP_FAIL;\r
if(TmpRegType == REGTYPE_REG)\r
{\r
- if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Bin, &Size) == ERROR_SUCCESS)\r
+ // 全設定暗号化対応\r
+// if(RegQueryValueEx(Handle, Name, NULL, NULL, (BYTE *)Bin, &Size) == ERROR_SUCCESS)\r
+ if(RegQueryValueEx(((REGDATATBL_REG *)Handle)->hKey, Name, NULL, NULL, (BYTE *)Bin, &Size) == ERROR_SUCCESS)\r
Sts = FFFTP_SUCCESS;\r
}\r
else\r
{\r
if(EncryptSettings == YES)\r
{\r
- UnmaskSettingsData(Name, strlen(Name), Bin, Size, NO);\r
+ if(TmpRegType == REGTYPE_REG)\r
+ strcpy(Path, ((REGDATATBL_REG *)Handle)->KeyName);\r
+ else\r
+ strcpy(Path, ((REGDATATBL *)Handle)->KeyName);\r
+ strcat(Path, "\\");\r
+ strcat(Path, Name);\r
+ UnmaskSettingsData(Path, strlen(Path), Bin, Size, NO);\r
CalculateSettingsDataChecksum(Bin, Size);\r
}\r
}\r
{\r
REGDATATBL *Pos;\r
char *Data;\r
+ // 全設定暗号化対応\r
+ char Path[80];\r
\r
// 全設定暗号化対応\r
if(EncryptSettings == YES)\r
- MaskSettingsData(Name, strlen(Name), Bin, Len, NO);\r
+ {\r
+ if(TmpRegType == REGTYPE_REG)\r
+ strcpy(Path, ((REGDATATBL_REG *)Handle)->KeyName);\r
+ else\r
+ strcpy(Path, ((REGDATATBL *)Handle)->KeyName);\r
+ strcat(Path, "\\");\r
+ strcat(Path, Name);\r
+ MaskSettingsData(Path, strlen(Path), Bin, Len, NO);\r
+ }\r
if(TmpRegType == REGTYPE_REG)\r
- RegSetValueEx(Handle, Name, 0, REG_BINARY, (CONST BYTE *)Bin, Len);\r
+ // 全設定暗号化対応\r
+// RegSetValueEx(Handle, Name, 0, REG_BINARY, (CONST BYTE *)Bin, Len);\r
+ RegSetValueEx(((REGDATATBL_REG *)Handle)->hKey, Name, 0, REG_BINARY, (CONST BYTE *)Bin, Len);\r
else\r
{\r
Pos = (REGDATATBL *)Handle;\r
// 全設定暗号化対応\r
if(EncryptSettings == YES)\r
{\r
- UnmaskSettingsData(Name, strlen(Name), Bin, Len, NO);\r
+ UnmaskSettingsData(Path, strlen(Path), Bin, Len, NO);\r
CalculateSettingsDataChecksum(Bin, Len);\r
}\r
return(FFFTP_SUCCESS);\r