X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dc874fb4cebf75d39cc97210e0f4b6a35403e4a6..69d31e313035d5e22d9400ec946f6007f710910c:/src/msw/registry.cpp diff --git a/src/msw/registry.cpp b/src/msw/registry.cpp index 1def8c5dfe..57eea64341 100644 --- a/src/msw/registry.cpp +++ b/src/msw/registry.cpp @@ -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(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(*this); bool cont = self.GetFirstValue(name, dummy); while ( cont ) {