]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/registry.cpp
Applied patch [ 1204548 ] Add Get and SetVolume to wxMediaCtrl and fix bug 1200182
[wxWidgets.git] / src / msw / registry.cpp
index 0191ef8d8231c36cc822e529492faa60c853c651..3cf956f7d26c36d70c8ae4fd0114cf32898f0a67 100644 (file)
@@ -364,7 +364,13 @@ bool wxRegKey::GetKeyInfo(size_t *pnSubKeys,
 bool wxRegKey::Open(AccessMode mode)
 {
     if ( IsOpened() )
-        return true;
+    {
+        if ( mode <= m_mode )
+            return true;
+
+        // we had been opened in read mode but now must be reopened in write
+        Close();
+    }
 
     HKEY tmpKey;
     m_dwLastError = ::RegOpenKeyEx
@@ -384,6 +390,8 @@ bool wxRegKey::Open(AccessMode mode)
     }
 
     m_hKey = (WXHKEY) tmpKey;
+    m_mode = mode;
+
     return true;
 }
 
@@ -1231,7 +1239,7 @@ wxString wxRegKey::FormatValue(const wxString& name) const
                 if ( !QueryValue(name, &value) )
                     break;
 
-                rhs.Printf(_T("dword:%08x"), value);
+                rhs.Printf(_T("dword:%08x"), (unsigned int)value);
             }
             break;