aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared/registryaccess/registryaccess.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/registryaccess/registryaccess.cpp')
-rw-r--r--src/shared/registryaccess/registryaccess.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/shared/registryaccess/registryaccess.cpp b/src/shared/registryaccess/registryaccess.cpp
index 8acf5eeb90a..e37185e507a 100644
--- a/src/shared/registryaccess/registryaccess.cpp
+++ b/src/shared/registryaccess/registryaccess.cpp
@@ -98,6 +98,7 @@ bool openRegistryKey(HKEY category, // HKEY_LOCAL_MACHINE, etc.
const WCHAR *key,
bool readWrite,
HKEY *keyHandle,
+ AccessMode mode,
QString *errorMessage)
{
Q_UNUSED(debuggerRegistryKeyC); // avoid warning from MinGW
@@ -105,6 +106,16 @@ bool openRegistryKey(HKEY category, // HKEY_LOCAL_MACHINE, etc.
REGSAM accessRights = KEY_READ;
if (readWrite)
accessRights |= KEY_SET_VALUE;
+ switch (mode) {
+ case RegistryAccess::DefaultAccessMode:
+ break;
+ case RegistryAccess::Registry32Mode:
+ accessRights |= KEY_WOW64_32KEY;
+ break;
+ case RegistryAccess::Registry64Mode:
+ accessRights |= KEY_WOW64_64KEY;
+ break;
+ }
const LONG rc = RegOpenKeyEx(category, key, 0, accessRights, keyHandle);
if (rc != ERROR_SUCCESS) {
*errorMessage = msgFunctionFailed("RegOpenKeyEx", rc);