From bee96abfbcf1acd8e0a1d4b7a975f58034b846d5 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Wed, 3 Mar 2004 23:01:05 +0000 Subject: [PATCH] added AccessMode parameter to wxRegKey git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26072 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/msw/registry.h | 11 +++++++++-- src/msw/registry.cpp | 6 +++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/include/wx/msw/registry.h b/include/wx/msw/registry.h index 5f4c818aa6..4a8c26ac6f 100644 --- a/include/wx/msw/registry.h +++ b/include/wx/msw/registry.h @@ -76,6 +76,13 @@ public: #endif // Win32/16 }; + // access mode for the key + enum AccessMode + { + Read, // read-only + Write // read and write + }; + // information about standard (predefined) registry keys // number of standard keys static const size_t nStdKeys; @@ -99,7 +106,7 @@ public: wxRegKey(StdKey keyParent, const wxString& strKey); // strKey is the name of key under (previously created) keyParent wxRegKey(const wxRegKey& keyParent, const wxString& strKey); - // + // dtor closes the key ~wxRegKey(); // change key (closes the previously opened key if any) @@ -130,7 +137,7 @@ public: // operations on the key itself // explicitly open the key (will be automatically done by all functions // which need the key to be opened if the key is not opened yet) - bool Open(); + bool Open(AccessMode mode = Write); // create the key: will fail if the key already exists and !bOkIfExists bool Create(bool bOkIfExists = TRUE); // rename a value from old name to new one diff --git a/src/msw/registry.cpp b/src/msw/registry.cpp index 26657e9c5d..72515030b0 100644 --- a/src/msw/registry.cpp +++ b/src/msw/registry.cpp @@ -374,7 +374,7 @@ bool wxRegKey::GetKeyInfo(size_t *pnSubKeys, // ---------------------------------------------------------------------------- // opens key (it's not an error to call Open() on an already opened key) -bool wxRegKey::Open() +bool wxRegKey::Open(AccessMode mode) { if ( IsOpened() ) return TRUE; @@ -385,7 +385,7 @@ bool wxRegKey::Open() (HKEY) m_hRootKey, m_strKey, RESERVED, - KEY_ALL_ACCESS, + mode == Read ? KEY_READ : KEY_ALL_ACCESS, &tmpKey ); @@ -1097,7 +1097,7 @@ bool KeyExists(WXHKEY hRootKey, const wxChar *szKey) (HKEY)hRootKey, szKey, RESERVED, - KEY_ALL_ACCESS, + KEY_READ, // we might not have enough rights for rw access &hkeyDummy ) == ERROR_SUCCESS ) { -- 2.47.2