]> git.saurik.com Git - wxWidgets.git/commitdiff
added AccessMode parameter to wxRegKey
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 3 Mar 2004 23:01:05 +0000 (23:01 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 3 Mar 2004 23:01:05 +0000 (23:01 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@26072 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/registry.h
src/msw/registry.cpp

index 5f4c818aa6be21650c69b0a53b475b0e8e05fa8b..4a8c26ac6f5b53b496f2b7cd1d9dd95000bbb481 100644 (file)
@@ -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
index 26657e9c5d149d9c6f49f87ecf5ae072bc80b5d9..72515030b03c476f2f708a74b1183a5aa8a6c992 100644 (file)
@@ -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 )
     {