diff options
Diffstat (limited to 'src/shared/registryaccess/registryaccess.cpp')
-rw-r--r-- | src/shared/registryaccess/registryaccess.cpp | 11 |
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); |