]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/registry.cpp
return immediately from WalkFrom() if dbghelp dll initialization fails (part of patch...
[wxWidgets.git] / src / msw / registry.cpp
index 7d2a574f6cc655df3e23fbff3d5b5b101b599601..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;
 }
 
@@ -1166,7 +1174,7 @@ FormatAsHex(const void *data,
         if ( n )
             value << _T(',');
 
-        value << wxString::Format(_T("%02x"), p[n]);
+        value << wxString::Format(_T("%02x"), (unsigned char)p[n]);
     }
 
     return value;
@@ -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;