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);
return str;
}
+#ifdef __GNUWIN32__
+bool wxRegKey::GetKeyInfo(uint* pnSubKeys,
+ uint* pnMaxKeyLen,
+ uint* pnValues,
+ uint* pnMaxValueLen) const
+#else
+bool wxRegKey::GetKeyInfo(ulong *pnSubKeys,
+ ulong *pnMaxKeyLen,
+ ulong *pnValues,
+ ulong *pnMaxValueLen) const
+#endif
+{
+#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
// ----------------------------------------------------------------------------
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;
}
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;
}
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;
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;
}
#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;
}
// 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;
}
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;
}
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;
}
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;
}
RegString pBuf = (RegString)strValue.GetWriteBuf(dwSize);
m_dwLastError = RegQueryValueEx(m_hKey, szValue, RESERVED,
&dwType, pBuf, &dwSize);
+ strValue.UngetWriteBuf();
if ( m_dwLastError == ERROR_SUCCESS ) {
// check that it was the right type
wxASSERT_MSG( dwType == REG_SZ,
wxASSERT( IsEmpty(szValue) );
m_dwLastError = RegQueryValue(m_hKey, 0, strValue.GetWriteBuf(256), &l);
+ strValue.UngetWriteBuf();
if ( m_dwLastError == ERROR_SUCCESS )
return TRUE;
#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;
}
#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;
}
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());
}
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());
}