Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/kornelski/7z.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '7zip/FileManager/RegistryUtils.cpp')
-rwxr-xr-x7zip/FileManager/RegistryUtils.cpp111
1 files changed, 79 insertions, 32 deletions
diff --git a/7zip/FileManager/RegistryUtils.cpp b/7zip/FileManager/RegistryUtils.cpp
index 99937bec..ea92aa73 100755
--- a/7zip/FileManager/RegistryUtils.cpp
+++ b/7zip/FileManager/RegistryUtils.cpp
@@ -10,9 +10,10 @@ using namespace NRegistry;
static const TCHAR *kCUBasePath = TEXT("Software\\7-ZIP");
static const TCHAR *kCU_FMPath = TEXT("Software\\7-ZIP\\FM");
+static const TCHAR *kLM_Path = TEXT("Software\\7-ZIP\\FM");
-static const TCHAR *kLangValueName = TEXT("Lang");
-static const TCHAR *kEditor = TEXT("Editor");
+static const WCHAR *kLangValueName = L"Lang";
+static const WCHAR *kEditor = L"Editor";
static const TCHAR *kShowDots = TEXT("ShowDots");
static const TCHAR *kShowRealFileIcons = TEXT("ShowRealFileIcons");
static const TCHAR *kShowSystemMenu = TEXT("ShowSystemMenu");
@@ -20,58 +21,96 @@ static const TCHAR *kShowSystemMenu = TEXT("ShowSystemMenu");
static const TCHAR *kFullRow = TEXT("FullRow");
static const TCHAR *kShowGrid = TEXT("ShowGrid");
static const TCHAR *kAlternativeSelection = TEXT("AlternativeSelection");
+static const TCHAR *kLockMemoryAdd = TEXT("LockMemoryAdd");
+static const TCHAR *kLargePagesEnable = TEXT("LargePages");
// static const TCHAR *kSingleClick = TEXT("SingleClick");
// static const TCHAR *kUnderline = TEXT("Underline");
-void SaveRegLang(const CSysString &langFile)
+void SaveRegLang(const UString &langFile)
{
- CKey cuKey;
- cuKey.Create(HKEY_CURRENT_USER, kCUBasePath);
- cuKey.SetValue(kLangValueName, langFile);
+ CKey key;
+ key.Create(HKEY_CURRENT_USER, kCUBasePath);
+ key.SetValue(kLangValueName, langFile);
}
-void ReadRegLang(CSysString &langFile)
+void ReadRegLang(UString &langFile)
{
langFile.Empty();
- CKey cuKey;
- cuKey.Create(HKEY_CURRENT_USER, kCUBasePath);
- cuKey.QueryValue(kLangValueName, langFile);
+ CKey key;
+ if (key.Open(HKEY_CURRENT_USER, kCUBasePath, KEY_READ) == ERROR_SUCCESS)
+ key.QueryValue(kLangValueName, langFile);
}
-void SaveRegEditor(const CSysString &editorPath)
+void SaveRegEditor(const UString &editorPath)
{
- CKey cuKey;
- cuKey.Create(HKEY_CURRENT_USER, kCU_FMPath);
- cuKey.SetValue(kEditor, editorPath);
+ CKey key;
+ key.Create(HKEY_CURRENT_USER, kCU_FMPath);
+ key.SetValue(kEditor, editorPath);
}
-void ReadRegEditor(CSysString &editorPath)
+void ReadRegEditor(UString &editorPath)
{
editorPath.Empty();
- CKey cuKey;
- cuKey.Create(HKEY_CURRENT_USER, kCU_FMPath);
- cuKey.QueryValue(kEditor, editorPath);
- /*
- if (editorPath.IsEmpty())
- editorPath = TEXT("notepad.exe");
- */
+ CKey key;
+ if (key.Open(HKEY_CURRENT_USER, kCU_FMPath, KEY_READ) == ERROR_SUCCESS)
+ key.QueryValue(kEditor, editorPath);
+}
+
+static void Save7ZipOption(const TCHAR *value, bool enabled)
+{
+ CKey key;
+ key.Create(HKEY_CURRENT_USER, kCUBasePath);
+ key.SetValue(value, enabled);
}
static void SaveOption(const TCHAR *value, bool enabled)
{
- CKey cuKey;
- cuKey.Create(HKEY_CURRENT_USER, kCU_FMPath);
- cuKey.SetValue(value, enabled);
+ CKey key;
+ key.Create(HKEY_CURRENT_USER, kCU_FMPath);
+ key.SetValue(value, enabled);
+}
+
+static bool Read7ZipOption(const TCHAR *value, bool defaultValue)
+{
+ CKey key;
+ if (key.Open(HKEY_CURRENT_USER, kCUBasePath, KEY_READ) == ERROR_SUCCESS)
+ {
+ bool enabled;
+ if (key.QueryValue(value, enabled) == ERROR_SUCCESS)
+ return enabled;
+ }
+ return defaultValue;
}
static bool ReadOption(const TCHAR *value, bool defaultValue)
{
- CKey cuKey;
- cuKey.Create(HKEY_CURRENT_USER, kCU_FMPath);
- bool enabled;
- if (cuKey.QueryValue(value, enabled) != ERROR_SUCCESS)
- return defaultValue;
- return enabled;
+ CKey key;
+ if (key.Open(HKEY_CURRENT_USER, kCU_FMPath, KEY_READ) == ERROR_SUCCESS)
+ {
+ bool enabled;
+ if (key.QueryValue(value, enabled) == ERROR_SUCCESS)
+ return enabled;
+ }
+ return defaultValue;
+}
+
+static void SaveLmOption(const TCHAR *value, bool enabled)
+{
+ CKey key;
+ key.Create(HKEY_LOCAL_MACHINE, kLM_Path);
+ key.SetValue(value, enabled);
+}
+
+static bool ReadLmOption(const TCHAR *value, bool defaultValue)
+{
+ CKey key;
+ if (key.Open(HKEY_LOCAL_MACHINE, kLM_Path, KEY_READ) == ERROR_SUCCESS)
+ {
+ bool enabled;
+ if (key.QueryValue(value, enabled) == ERROR_SUCCESS)
+ return enabled;
+ }
+ return defaultValue;
}
void SaveShowDots(bool showDots) { SaveOption(kShowDots, showDots); }
@@ -98,4 +137,12 @@ bool ReadSingleClick(){ return ReadOption(kSingleClick, false); }
void SaveUnderline(bool enable) { SaveOption(kUnderline, enable); }
bool ReadUnderline(){ return ReadOption(kUnderline, false); }
-*/ \ No newline at end of file
+*/
+
+// void SaveLockMemoryAdd(bool enable) { SaveLmOption(kLockMemoryAdd, enable); }
+// bool ReadLockMemoryAdd() { return ReadLmOption(kLockMemoryAdd, true); }
+
+void SaveLockMemoryEnable(bool enable) { Save7ZipOption(kLargePagesEnable, enable); }
+bool ReadLockMemoryEnable() { return Read7ZipOption(kLargePagesEnable, false); }
+
+