]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/registry.cpp
Use the wx version of the wxDECLARE_EVENT_TABLE_ENTRY macro
[wxWidgets.git] / src / msw / registry.cpp
index 1def8c5dfed9ebee1c617be1471c71ff73048bdb..57eea64341e2381f4d5b7d9737bbe82568d086c6 100644 (file)
@@ -294,6 +294,18 @@ void wxRegKey::SetHkey(WXHKEY hKey)
   Close();
 
   m_hKey = hKey;
+
+  // we don't know the parent of this key, assume HKLM by default
+  m_hRootKey = HKEY_LOCAL_MACHINE;
+
+  // we don't know in which mode was this key opened but we can't reopen it
+  // anyhow because we don't know its name, so the only thing we can is to hope
+  // that it allows all the operations which we're going to perform on it
+  m_mode = Write;
+
+  // reset old data
+  m_strKey.empty();
+  m_dwLastError = 0;
 }
 
 // ----------------------------------------------------------------------------
@@ -314,7 +326,7 @@ wxString wxRegKey::GetName(bool bShortPrefix) const
   wxString str = bShortPrefix ? aStdKeys[key].szShortName
                               : aStdKeys[key].szName;
   if ( !m_strKey.empty() )
-    str << _T("\\") << m_strKey;
+    str << wxT("\\") << m_strKey;
 
   return str;
 }
@@ -332,7 +344,7 @@ bool wxRegKey::GetKeyInfo(size_t *pnSubKeys,
 #endif
 
   // it might be unexpected to some that this function doesn't open the key
-  wxASSERT_MSG( IsOpened(), _T("key should be opened in GetKeyInfo") );
+  wxASSERT_MSG( IsOpened(), wxT("key should be opened in GetKeyInfo") );
 
   m_dwLastError = ::RegQueryInfoKey
                   (
@@ -534,7 +546,7 @@ bool wxRegKey::CopyValue(const wxString& szValue,
 
 bool wxRegKey::Rename(const wxString& szNewName)
 {
-    wxCHECK_MSG( !m_strKey.empty(), false, _T("registry hives can't be renamed") );
+    wxCHECK_MSG( !m_strKey.empty(), false, wxT("registry hives can't be renamed") );
 
     if ( !Exists() ) {
         wxLogError(_("Registry key '%s' does not exist, cannot rename it."),
@@ -956,7 +968,7 @@ bool wxRegKey::QueryValue(const wxString& szValue,
 
                     if ( !ok )
                     {
-                        wxLogLastError(_T("ExpandEnvironmentStrings"));
+                        wxLogLastError(wxT("ExpandEnvironmentStrings"));
                     }
                 }
 #endif
@@ -1161,7 +1173,7 @@ bool wxRegKey::Export(const wxString& filename) const
         return false;
     }
 
-    wxFFileOutputStream ostr(filename, _T("w"));
+    wxFFileOutputStream ostr(filename, wxT("w"));
 
     return ostr.Ok() && Export(ostr);
 #else
@@ -1187,26 +1199,26 @@ FormatAsHex(const void *data,
             size_t size,
             wxRegKey::ValueType type = wxRegKey::Type_Binary)
 {
-    wxString value(_T("hex"));
+    wxString value(wxT("hex"));
 
     // binary values use just "hex:" prefix while the other ones must indicate
     // the real type
     if ( type != wxRegKey::Type_Binary )
-        value << _T('(') << type << _T(')');
-    value << _T(':');
+        value << wxT('(') << type << wxT(')');
+    value << wxT(':');
 
     // write all the rest as comma-separated bytes
     value.reserve(3*size + 10);
-    const char * const p = wx_static_cast(const char *, data);
+    const char * const p = static_cast<const char *>(data);
     for ( size_t n = 0; n < size; n++ )
     {
         // TODO: line wrapping: although not required by regedit, this makes
         //       the generated files easier to read and compare with the files
         //       produced by regedit
         if ( n )
-            value << _T(',');
+            value << wxT(',');
 
-        value << wxString::Format(_T("%02x"), (unsigned char)p[n]);
+        value << wxString::Format(wxT("%02x"), (unsigned char)p[n]);
     }
 
     return value;
@@ -1233,7 +1245,7 @@ wxString wxRegKey::FormatValue(const wxString& name) const
                 // quotes and backslashes must be quoted, linefeeds are not
                 // allowed in string values
                 rhs.reserve(value.length() + 2);
-                rhs = _T('"');
+                rhs = wxT('"');
 
                 // there can be no NULs here
                 bool useHex = false;
@@ -1242,15 +1254,15 @@ wxString wxRegKey::FormatValue(const wxString& name) const
                 {
                     switch ( (*p).GetValue() )
                     {
-                        case _T('\n'):
+                        case wxT('\n'):
                             // we can only represent this string in hex
                             useHex = true;
                             break;
 
-                        case _T('"'):
-                        case _T('\\'):
+                        case wxT('"'):
+                        case wxT('\\'):
                             // escape special symbol
-                            rhs += _T('\\');
+                            rhs += wxT('\\');
                             // fall through
 
                         default:
@@ -1261,7 +1273,7 @@ wxString wxRegKey::FormatValue(const wxString& name) const
                 if ( useHex )
                     rhs = FormatAsHex(value, Type_String);
                 else
-                    rhs += _T('"');
+                    rhs += wxT('"');
             }
             break;
 
@@ -1272,7 +1284,7 @@ wxString wxRegKey::FormatValue(const wxString& name) const
                 if ( !QueryValue(name, &value) )
                     break;
 
-                rhs.Printf(_T("dword:%08x"), (unsigned int)value);
+                rhs.Printf(wxT("dword:%08x"), (unsigned int)value);
             }
             break;
 
@@ -1364,7 +1376,7 @@ bool wxRegKey::DoExport(wxOutputStream& ostr) const
     // dump all our values
     long dummy;
     wxString name;
-    wxRegKey& self = wx_const_cast(wxRegKey&, *this);
+    wxRegKey& self = const_cast<wxRegKey&>(*this);
     bool cont = self.GetFirstValue(name, dummy);
     while ( cont )
     {