wxIniConfig added (pre-alpha quality, many functions not implemented), some

bug fixes in wxRegConfig/wxRegKey


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@416 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
1998-08-02 23:12:37 +00:00
parent 5fe256deb7
commit 02569ba8eb
3 changed files with 494 additions and 30 deletions

View File

@@ -256,9 +256,10 @@ void wxRegKey::SetName(const wxRegKey& keyParent, const wxString& strKey)
Close();
// combine our name with parent's to get the full name
m_strKey = strKey;
m_strKey = keyParent.m_strKey;
if ( !strKey.IsEmpty() && strKey[0] != REG_SEPARATOR )
m_strKey += REG_SEPARATOR;
m_strKey += strKey;
RemoveTrailingSeparator(m_strKey);
@@ -296,6 +297,42 @@ wxString wxRegKey::GetName(bool bShortPrefix) const
return str;
}
bool wxRegKey::GetKeyInfo(ulong *pnSubKeys,
ulong *pnMaxKeyLen,
ulong *pnValues,
ulong *pnMaxValueLen) const
{
#ifdef __WIN32__
m_dwLastError = ::RegQueryInfoKey
(
m_hKey,
NULL, // class name
NULL, // (ptr to) size of class name buffer
RESERVED,
pnSubKeys, // [out] number of subkeys
pnMaxKeyLen, // [out] max length of a subkey name
NULL, // longest subkey class name
pnValues, // [out] number of values
pnMaxValueLen, // [out] max length of a value name
NULL, // longest value data
NULL, // security descriptor
NULL // time of last modification
);
if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, _("can't get info about registry key '%s'"),
GetName().c_str());
return FALSE;
}
else
return TRUE;
#else // Win16
wxFAIL_MSG("GetKeyInfo() not implemented");
return FALSE;
#endif
}
// ----------------------------------------------------------------------------
// operations
// ----------------------------------------------------------------------------
@@ -308,7 +345,7 @@ bool wxRegKey::Open()
m_dwLastError = RegOpenKey(m_hRootKey, m_strKey, &m_hKey);
if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, "can't open registry key '%s'",
wxLogSysError(m_dwLastError, _("can't open registry key '%s'"),
GetName().c_str());
return FALSE;
}
@@ -329,7 +366,7 @@ bool wxRegKey::Create(bool bOkIfExists)
m_dwLastError = RegCreateKey(m_hRootKey, m_strKey, &m_hKey);
if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, "can't create registry key '%s'",
wxLogSysError(m_dwLastError, _("can't create registry key '%s'"),
GetName().c_str());
return FALSE;
}
@@ -343,7 +380,7 @@ bool wxRegKey::Close()
if ( IsOpened() ) {
m_dwLastError = RegCloseKey(m_hKey);
if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, "can't close registry key '%s'",
wxLogSysError(m_dwLastError, _("can't close registry key '%s'"),
GetName().c_str());
m_hKey = 0;
@@ -395,7 +432,8 @@ bool wxRegKey::DeleteSelf()
m_dwLastError = RegDeleteKey(m_hRootKey, m_strKey);
if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, "can't delete key '%s'", GetName().c_str());
wxLogSysError(m_dwLastError, _("can't delete key '%s'"),
GetName().c_str());
return FALSE;
}
@@ -419,7 +457,7 @@ bool wxRegKey::DeleteValue(const char *szValue)
#ifdef __WIN32__
m_dwLastError = RegDeleteValue(m_hKey, szValue);
if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, "can't delete value '%s' from key '%s'",
wxLogSysError(m_dwLastError, _("can't delete value '%s' from key '%s'"),
szValue, GetName().c_str());
return FALSE;
}
@@ -430,7 +468,7 @@ bool wxRegKey::DeleteValue(const char *szValue)
// just set the (default and unique) value of the key to ""
m_dwLastError = RegSetValue(m_hKey, NULL, REG_SZ, "", RESERVED);
if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, "can't delete value of key '%s'",
wxLogSysError(m_dwLastError, _("can't delete value of key '%s'"),
GetName().c_str());
return FALSE;
}
@@ -487,7 +525,7 @@ wxRegKey::ValueType wxRegKey::GetValueType(const char *szValue)
m_dwLastError = RegQueryValueEx(m_hKey, szValue, RESERVED,
&dwType, NULL, NULL);
if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, "can't read value of key '%s'",
wxLogSysError(m_dwLastError, _("can't read value of key '%s'"),
GetName().c_str());
return Type_None;
}
@@ -508,7 +546,7 @@ bool wxRegKey::SetValue(const char *szValue, long lValue)
return TRUE;
}
wxLogSysError(m_dwLastError, "can't set value of '%s'",
wxLogSysError(m_dwLastError, _("can't set value of '%s'"),
GetFullName(this, szValue));
return FALSE;
}
@@ -521,7 +559,7 @@ bool wxRegKey::QueryValue(const char *szValue, long *plValue) const
m_dwLastError = RegQueryValueEx(m_hKey, szValue, RESERVED,
&dwType, pBuf, &dwSize);
if ( m_dwLastError != ERROR_SUCCESS ) {
wxLogSysError(m_dwLastError, "can't read value of key '%s'",
wxLogSysError(m_dwLastError, _("can't read value of key '%s'"),
GetName().c_str());
return FALSE;
}
@@ -569,7 +607,7 @@ bool wxRegKey::QueryValue(const char *szValue, wxString& strValue) const
#endif //WIN16/32
}
wxLogSysError(m_dwLastError, "can't read value of '%s'",
wxLogSysError(m_dwLastError, _("can't read value of '%s'"),
GetFullName(this, szValue));
return FALSE;
}
@@ -593,7 +631,7 @@ bool wxRegKey::SetValue(const char *szValue, const wxString& strValue)
#endif //WIN16/32
}
wxLogSysError(m_dwLastError, "can't set value of '%s'",
wxLogSysError(m_dwLastError, _("can't set value of '%s'"),
GetFullName(this, szValue));
return FALSE;
}
@@ -646,7 +684,7 @@ bool wxRegKey::GetNextValue(wxString& strValueName, long& lIndex) const
lIndex = -1;
}
else {
wxLogSysError(m_dwLastError, "can't enumerate values of key '%s'",
wxLogSysError(m_dwLastError, _("can't enumerate values of key '%s'"),
GetName().c_str());
}
@@ -691,7 +729,7 @@ bool wxRegKey::GetNextKey(wxString& strKeyName, long& lIndex) const
lIndex = -1;
}
else {
wxLogSysError(m_dwLastError, "can't enumerate subkeys of key '%s'",
wxLogSysError(m_dwLastError, _("can't enumerate subkeys of key '%s'"),
GetName().c_str());
}