fixed incorrect RegOpenKeyEx() usage
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21920 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -376,31 +376,36 @@ bool wxRegKey::GetKeyInfo(size_t *pnSubKeys,
|
||||
// opens key (it's not an error to call Open() on an already opened key)
|
||||
bool wxRegKey::Open()
|
||||
{
|
||||
if ( IsOpened() )
|
||||
return TRUE;
|
||||
if ( IsOpened() )
|
||||
return TRUE;
|
||||
|
||||
HKEY tmpKey;
|
||||
m_dwLastError = ::RegOpenKeyEx
|
||||
(
|
||||
(HKEY) m_hRootKey,
|
||||
m_strKey,
|
||||
RESERVED,
|
||||
KEY_ALL_ACCESS,
|
||||
&tmpKey
|
||||
);
|
||||
|
||||
if ( m_dwLastError != ERROR_SUCCESS )
|
||||
{
|
||||
wxLogSysError(m_dwLastError, _("Can't open registry key '%s'"),
|
||||
GetName().c_str());
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
HKEY tmpKey;
|
||||
m_dwLastError = RegOpenKeyEx((HKEY) m_hRootKey, m_strKey,
|
||||
0, 0, &tmpKey);
|
||||
if ( m_dwLastError != ERROR_SUCCESS ) {
|
||||
wxLogSysError(m_dwLastError, _("Can't open registry key '%s'"),
|
||||
GetName().c_str());
|
||||
return FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_hKey = (WXHKEY) tmpKey;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// creates key, failing if it exists and !bOkIfExists
|
||||
bool wxRegKey::Create(bool bOkIfExists)
|
||||
{
|
||||
// check for existence only if asked (i.e. order is important!)
|
||||
if ( !bOkIfExists && Exists() ) {
|
||||
if ( !bOkIfExists && Exists() )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if ( IsOpened() )
|
||||
return TRUE;
|
||||
@@ -1083,16 +1088,25 @@ bool wxRegKey::IsNumericValue(const wxChar *szValue) const
|
||||
|
||||
bool KeyExists(WXHKEY hRootKey, const wxChar *szKey)
|
||||
{
|
||||
// don't close this key itself for the case of empty szKey!
|
||||
if ( wxIsEmpty(szKey) )
|
||||
return TRUE;
|
||||
// don't close this key itself for the case of empty szKey!
|
||||
if ( wxIsEmpty(szKey) )
|
||||
return TRUE;
|
||||
|
||||
HKEY hkeyDummy;
|
||||
if ( ::RegOpenKeyEx
|
||||
(
|
||||
(HKEY)hRootKey,
|
||||
szKey,
|
||||
RESERVED,
|
||||
KEY_ALL_ACCESS,
|
||||
&hkeyDummy
|
||||
) == ERROR_SUCCESS )
|
||||
{
|
||||
::RegCloseKey(hkeyDummy);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
HKEY hkeyDummy;
|
||||
if ( RegOpenKeyEx( (HKEY) hRootKey, szKey, 0, 0, &hkeyDummy) == ERROR_SUCCESS ) {
|
||||
RegCloseKey(hkeyDummy);
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user