diff options
-rw-r--r-- | ACE/ace/Configuration.cpp | 12 | ||||
-rw-r--r-- | ACE/ace/Configuration.h | 8 |
2 files changed, 13 insertions, 7 deletions
diff --git a/ACE/ace/Configuration.cpp b/ACE/ace/Configuration.cpp index 19628107866..e192028dfcd 100644 --- a/ACE/ace/Configuration.cpp +++ b/ACE/ace/Configuration.cpp @@ -458,7 +458,8 @@ ACE_Configuration_Win32Registry::operator!= (const ACE_Configuration_Win32Regist return true; } -ACE_Configuration_Win32Registry::ACE_Configuration_Win32Registry (HKEY hKey) +ACE_Configuration_Win32Registry::ACE_Configuration_Win32Registry (HKEY hKey, u_long security_access) + : security_access_ (security_access) { ACE_Section_Key_Win32 *temp = 0; @@ -490,7 +491,7 @@ ACE_Configuration_Win32Registry::open_section (const ACE_Configuration_Section_K if ((errnum = ACE_TEXT_RegOpenKeyEx (base_key, sub_section, 0, - KEY_ALL_ACCESS, + security_access_, &result_key)) != ERROR_SUCCESS) { if (!create) @@ -504,7 +505,7 @@ ACE_Configuration_Win32Registry::open_section (const ACE_Configuration_Section_K 0, 0, REG_OPTION_NON_VOLATILE, - KEY_ALL_ACCESS, + security_access_, 0, &result_key, (PDWORD) 0 @@ -979,7 +980,8 @@ ACE_Configuration_Win32Registry::load_key (const ACE_Configuration_Section_Key& HKEY ACE_Configuration_Win32Registry::resolve_key (HKEY hKey, const ACE_TCHAR* path, - int create) + int create, + u_long security_access) { HKEY result = 0; // Make a copy of hKey @@ -1030,7 +1032,7 @@ ACE_Configuration_Win32Registry::resolve_key (HKEY hKey, 0, 0, 0, - KEY_ALL_ACCESS, + security_access, 0, &subkey, (PDWORD) 0 diff --git a/ACE/ace/Configuration.h b/ACE/ace/Configuration.h index aa69ea49e65..0f1f1b896e5 100644 --- a/ACE/ace/Configuration.h +++ b/ACE/ace/Configuration.h @@ -453,7 +453,8 @@ public: * base registry key to attach to. This class takes ownership of * hKey, it will invoke <RegCloseKey> on it upon destruction. */ - explicit ACE_Configuration_Win32Registry (HKEY hKey); + explicit ACE_Configuration_Win32Registry (HKEY hKey, + u_long security_access = KEY_ALL_ACCESS); /// Destructor virtual ~ACE_Configuration_Win32Registry (void); @@ -520,7 +521,8 @@ public: */ static HKEY resolve_key (HKEY hKey, const ACE_TCHAR* path, - int create = 1); + int create = 1, + u_long security_access = KEY_ALL_ACCESS); virtual bool operator== (const ACE_Configuration_Win32Registry &rhs) const; virtual bool operator!= (const ACE_Configuration_Win32Registry &rhs) const; @@ -533,6 +535,8 @@ protected: ACE_Configuration_Win32Registry (void); ACE_Configuration_Win32Registry (const ACE_Configuration_Win32Registry& rhs); ACE_Configuration_Win32Registry& operator= (const ACE_Configuration_Win32Registry& rhs); + + const u_long security_access_; }; #endif /* ACE_WIN32 && !ACE_LACKS_WIN32_REGISTRY */ |