X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6f94aa869d07fd18ed16f8bb237f13fed2da6185..f60b1d829dd8a6d5e47a2adcd3690acb3bd10150:/src/msw/registry.cpp?ds=inline diff --git a/src/msw/registry.cpp b/src/msw/registry.cpp index 2607a3f2c7..a8e077e8c8 100644 --- a/src/msw/registry.cpp +++ b/src/msw/registry.cpp @@ -163,7 +163,7 @@ wxRegKey::StdKey wxRegKey::ExtractKeyName(wxString& strKey) } else { strKey = strKey.After(REG_SEPARATOR); - if ( !strKey.IsEmpty() && strKey.Last() == REG_SEPARATOR ) + if ( !strKey.empty() && strKey.Last() == REG_SEPARATOR ) strKey.Truncate(strKey.Len() - 1); } @@ -214,8 +214,8 @@ wxRegKey::wxRegKey(const wxRegKey& keyParent, const wxString& strKey) : m_strKey(keyParent.m_strKey) { // combine our name with parent's to get the full name - if ( !m_strKey.IsEmpty() && - (strKey.IsEmpty() || strKey[0] != REG_SEPARATOR) ) { + if ( !m_strKey.empty() && + (strKey.empty() || strKey[0] != REG_SEPARATOR) ) { m_strKey += REG_SEPARATOR; } @@ -270,7 +270,7 @@ void wxRegKey::SetName(const wxRegKey& keyParent, const wxString& strKey) // next line! m_strKey.clear(); m_strKey += keyParent.m_strKey; - if ( !strKey.IsEmpty() && strKey[0] != REG_SEPARATOR ) + if ( !strKey.empty() && strKey[0] != REG_SEPARATOR ) m_strKey += REG_SEPARATOR; m_strKey += strKey; @@ -304,7 +304,7 @@ wxString wxRegKey::GetName(bool bShortPrefix) const StdKey key = GetStdKeyFromHkey((WXHKEY) m_hRootKey); wxString str = bShortPrefix ? aStdKeys[key].szShortName : aStdKeys[key].szName; - if ( !m_strKey.IsEmpty() ) + if ( !m_strKey.empty() ) str << _T("\\") << m_strKey; return str; @@ -523,7 +523,7 @@ bool wxRegKey::CopyValue(const wxChar *szValue, bool wxRegKey::Rename(const wxChar *szNewName) { - wxCHECK_MSG( !m_strKey.IsEmpty(), false, _T("registry hives can't be renamed") ); + wxCHECK_MSG( !m_strKey.empty(), false, _T("registry hives can't be renamed") ); if ( !Exists() ) { wxLogError(_("Registry key '%s' does not exist, cannot rename it."), @@ -541,7 +541,7 @@ bool wxRegKey::Rename(const wxChar *szNewName) if ( inSameHive ) { // rename the key to the new name under the same parent wxString strKey = m_strKey.BeforeLast(REG_SEPARATOR); - if ( !strKey.IsEmpty() ) { + if ( !strKey.empty() ) { // don't add '\\' in the start if strFullNewName is empty strKey += REG_SEPARATOR; } @@ -655,7 +655,7 @@ bool wxRegKey::DeleteSelf() // prevent a buggy program from erasing one of the root registry keys or an // immediate subkey (i.e. one which doesn't have '\\' inside) of any other // key except HKCR (HKCR has some "deleteable" subkeys) - if ( m_strKey.IsEmpty() || + if ( m_strKey.empty() || ((m_hRootKey != (WXHKEY) aStdKeys[HKCR].hkey) && (m_strKey.Find(REG_SEPARATOR) == wxNOT_FOUND)) ) { wxLogError(_("Registry key '%s' is needed for normal system operation,\ndeleting it will leave your system in unusable state:\noperation aborted."), @@ -710,20 +710,21 @@ bool wxRegKey::DeleteKey(const wxChar *szKey) bool wxRegKey::DeleteValue(const wxChar *szValue) { - if ( !Open() ) - return false; + if ( !Open() ) + return false; m_dwLastError = RegDeleteValue((HKEY) m_hKey, WXSTRINGCAST szValue); // deleting a value which doesn't exist is not considered an error if ( (m_dwLastError != ERROR_SUCCESS) && - (m_dwLastError != ERROR_FILE_NOT_FOUND) ) { - wxLogSysError(m_dwLastError, _("Can't delete value '%s' from key '%s'"), - szValue, GetName().c_str()); - return false; + (m_dwLastError != ERROR_FILE_NOT_FOUND) ) + { + wxLogSysError(m_dwLastError, _("Can't delete value '%s' from key '%s'"), + szValue, GetName().c_str()); + return false; } - return true; + return true; } // ---------------------------------------------------------------------------- @@ -733,8 +734,8 @@ bool wxRegKey::DeleteValue(const wxChar *szValue) // return true if value exists bool wxRegKey::HasValue(const wxChar *szValue) const { - // this function should be silent, so suppress possible messages from Open() - wxLogNull nolog; + // this function should be silent, so suppress possible messages from Open() + wxLogNull nolog; if ( !CONST_CAST Open(Read) ) return false; @@ -858,7 +859,7 @@ bool wxRegKey::SetValue(const wxChar *szValue,const wxMemoryBuffer& buffer) bool wxRegKey::QueryValue(const wxChar *szValue, wxMemoryBuffer& buffer) const { - if ( CONST_CAST Open() ) { + if ( CONST_CAST Open(Read) ) { // first get the type and size of the data DWORD dwType, dwSize; m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST szValue, RESERVED, @@ -894,70 +895,71 @@ bool wxRegKey::QueryValue(const wxChar *szValue, wxMemoryBuffer& buffer) const bool wxRegKey::QueryValue(const wxChar *szValue, wxString& strValue, - bool raw) const + bool WXUNUSED_IN_WINCE(raw)) const { - if ( CONST_CAST Open(Read) ) { - - // first get the type and size of the data - DWORD dwType, dwSize; - m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST szValue, RESERVED, - &dwType, NULL, &dwSize); - if ( m_dwLastError == ERROR_SUCCESS ) { - if ( !dwSize ) { - // must treat this case specially as GetWriteBuf() doesn't like - // being called with 0 size - strValue.Empty(); - } - else { - m_dwLastError = RegQueryValueEx((HKEY) m_hKey, - WXSTRINGCAST szValue, - RESERVED, - &dwType, - (RegString)(wxChar*)wxStringBuffer(strValue, dwSize), - &dwSize); + if ( CONST_CAST Open(Read) ) + { - // expand the var expansions in the string unless disabled -#ifndef __WXWINCE__ - if ( (dwType == REG_EXPAND_SZ) && !raw ) + // first get the type and size of the data + DWORD dwType, dwSize; + m_dwLastError = RegQueryValueEx((HKEY) m_hKey, WXSTRINGCAST szValue, RESERVED, + &dwType, NULL, &dwSize); + if ( m_dwLastError == ERROR_SUCCESS ) + { + if ( !dwSize ) + { + // must treat this case specially as GetWriteBuf() doesn't like + // being called with 0 size + strValue.Empty(); + } + else { - DWORD dwExpSize = ::ExpandEnvironmentStrings(strValue, NULL, 0); - bool ok = dwExpSize != 0; - if ( ok ) + m_dwLastError = RegQueryValueEx((HKEY) m_hKey, + WXSTRINGCAST szValue, + RESERVED, + &dwType, + (RegString)(wxChar*)wxStringBuffer(strValue, dwSize), + &dwSize); + + // expand the var expansions in the string unless disabled +#ifndef __WXWINCE__ + if ( (dwType == REG_EXPAND_SZ) && !raw ) { - wxString strExpValue; - ok = ::ExpandEnvironmentStrings - ( - strValue, - wxStringBuffer(strExpValue, dwExpSize), - dwExpSize - ) != 0; - strValue = strExpValue; - } + DWORD dwExpSize = ::ExpandEnvironmentStrings(strValue, NULL, 0); + bool ok = dwExpSize != 0; + if ( ok ) + { + wxString strExpValue; + ok = ::ExpandEnvironmentStrings(strValue, + wxStringBuffer(strExpValue, dwExpSize), + dwExpSize + ) != 0; + strValue = strExpValue; + } - if ( !ok ) - { - wxLogLastError(_T("ExpandEnvironmentStrings")); + if ( !ok ) + { + wxLogLastError(_T("ExpandEnvironmentStrings")); + } } - } -#else - wxUnusedVar(raw); #endif - // __WXWINCE__ - } + // __WXWINCE__ + } - if ( m_dwLastError == ERROR_SUCCESS ) { - // check that it was the right type - wxASSERT_MSG( !IsNumericValue(szValue), - wxT("Type mismatch in wxRegKey::QueryValue().") ); + if ( m_dwLastError == ERROR_SUCCESS ) + { + // check that it was the right type + wxASSERT_MSG( !IsNumericValue(szValue), + wxT("Type mismatch in wxRegKey::QueryValue().") ); - return true; + return true; + } } - } - } + } - wxLogSysError(m_dwLastError, _("Can't read value of '%s'"), - GetFullName(this, szValue)); - return false; + wxLogSysError(m_dwLastError, _("Can't read value of '%s'"), + GetFullName(this, szValue)); + return false; } bool wxRegKey::SetValue(const wxChar *szValue, const wxString& strValue) @@ -1096,6 +1098,8 @@ bool wxRegKey::IsNumericValue(const wxChar *szValue) const // exporting registry keys to file // ---------------------------------------------------------------------------- +#if wxUSE_STREAMS + // helper functions for writing ASCII strings (even in Unicode build) static inline bool WriteAsciiChar(wxOutputStream& ostr, char ch) { @@ -1126,8 +1130,11 @@ static inline bool WriteAsciiString(wxOutputStream& ostr, const wxString& s) return ostr.IsOk(); } +#endif // wxUSE_STREAMS + bool wxRegKey::Export(const wxString& filename) const { +#if wxUSE_FFILE && wxUSE_STREAMS if ( wxFile::Exists(filename) ) { wxLogError(_("Exporting registry key: file \"%s\" already exists and won't be overwritten."), @@ -1138,8 +1145,13 @@ bool wxRegKey::Export(const wxString& filename) const wxFFileOutputStream ostr(filename, _T("w")); return ostr.Ok() && Export(ostr); +#else + wxUnusedVar(filename); + return false; +#endif } +#if wxUSE_STREAMS bool wxRegKey::Export(wxOutputStream& ostr) const { // write out the header @@ -1148,6 +1160,7 @@ bool wxRegKey::Export(wxOutputStream& ostr) const return DoExport(ostr); } +#endif // wxUSE_STREAMS static wxString @@ -1278,6 +1291,8 @@ wxString wxRegKey::FormatValue(const wxString& name) const return rhs; } +#if wxUSE_STREAMS + bool wxRegKey::DoExportValue(wxOutputStream& ostr, const wxString& name) const { // first examine the value type: if it's unsupported, simply skip it @@ -1357,6 +1372,8 @@ bool wxRegKey::DoExport(wxOutputStream& ostr) const return true; } +#endif // wxUSE_STREAMS + // ============================================================================ // implementation of global private functions // ============================================================================ @@ -1397,7 +1414,7 @@ const wxChar *GetFullName(const wxRegKey *pKey, const wxChar *szValue) void RemoveTrailingSeparator(wxString& str) { - if ( !str.IsEmpty() && str.Last() == REG_SEPARATOR ) + if ( !str.empty() && str.Last() == REG_SEPARATOR ) str.Truncate(str.Len() - 1); }