#endif
#ifndef WX_PRECOMP
+ #include "wx/msw/wrapwin.h"
#include "wx/string.h"
- #include "wx/intl.h"
+ #include "wx/intl.h"
+ #include "wx/log.h"
#endif
-#include "wx/log.h"
-#include "wx/file.h"
-#include "wx/wfstream.h"
+#include "wx/file.h"
+#include "wx/wfstream.h"
// Windows headers
-#include "wx/msw/wrapwin.h"
-
#ifdef __WXWINCE__
#include "wx/msw/private.h"
#include <winbase.h>
typedef unsigned char *RegString;
typedef BYTE* RegBinary;
+#ifndef HKEY_PERFORMANCE_DATA
+ #define HKEY_PERFORMANCE_DATA ((HKEY)0x80000004)
+#endif
+
+#ifndef HKEY_CURRENT_CONFIG
+ #define HKEY_CURRENT_CONFIG ((HKEY)0x80000005)
+#endif
+
+#ifndef HKEY_DYN_DATA
+ #define HKEY_DYN_DATA ((HKEY)0x80000006)
+#endif
+
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
{ HKEY_CURRENT_USER, wxT("HKEY_CURRENT_USER"), wxT("HKCU") },
{ HKEY_LOCAL_MACHINE, wxT("HKEY_LOCAL_MACHINE"), wxT("HKLM") },
{ HKEY_USERS, wxT("HKEY_USERS"), wxT("HKU") }, // short name?
-#ifndef __WXWINCE__
{ HKEY_PERFORMANCE_DATA, wxT("HKEY_PERFORMANCE_DATA"), wxT("HKPD") },
-#endif
-#ifdef HKEY_CURRENT_CONFIG
{ HKEY_CURRENT_CONFIG, wxT("HKEY_CURRENT_CONFIG"), wxT("HKCC") },
-#endif
-#ifdef HKEY_DYN_DATA
{ HKEY_DYN_DATA, wxT("HKEY_DYN_DATA"), wxT("HKDD") }, // short name?
-#endif
};
// the registry name separator (perhaps one day MS will change it to '/' ;-)
{
wxString strRoot = strKey.BeforeFirst(REG_SEPARATOR);
- HKEY hRootKey = 0;
size_t ui;
for ( ui = 0; ui < nStdKeys; ui++ ) {
if ( strRoot.CmpNoCase(aStdKeys[ui].szName) == 0 ||
strRoot.CmpNoCase(aStdKeys[ui].szShortName) == 0 ) {
- hRootKey = aStdKeys[ui].hkey;
break;
}
}
if ( ui == nStdKeys ) {
wxFAIL_MSG(wxT("invalid key prefix in wxRegKey::ExtractKeyName."));
- hRootKey = HKEY_CLASSES_ROOT;
+ ui = HKCR;
}
else {
strKey = strKey.After(REG_SEPARATOR);
strKey.Truncate(strKey.Len() - 1);
}
- return (wxRegKey::StdKey)(int)hRootKey;
+ return (StdKey)ui;
}
wxRegKey::StdKey wxRegKey::GetStdKeyFromHkey(WXHKEY hkey)
{
for ( size_t ui = 0; ui < nStdKeys; ui++ ) {
- if ( (int) aStdKeys[ui].hkey == (int) hkey )
+ if ( aStdKeys[ui].hkey == (HKEY)hkey )
return (StdKey)ui;
}
{
if ( CONST_CAST Open() ) {
m_dwLastError = RegSetValueEx((HKEY) m_hKey, szValue, (DWORD) RESERVED, REG_SZ,
- (RegString)strValue.c_str(),
+ (RegString)strValue.wx_str(),
(strValue.Len() + 1)*sizeof(wxChar));
if ( m_dwLastError == ERROR_SUCCESS )
return true;
wxCharBuffer name(s.mb_str());
ostr.Write(name, strlen(name));
#else
- ostr.Write(s, s.length());
+ ostr.Write(s.mb_str(), s.length());
#endif
return ostr.IsOk();
return s_str.c_str();
}
-void RemoveTrailingSeparator(wxString& str)
+inline void RemoveTrailingSeparator(wxString& str)
{
if ( !str.empty() && str.Last() == REG_SEPARATOR )
str.Truncate(str.Len() - 1);