Check for success of registry operations in wxJoystick code

Avoid reading wrong registry keys of REGSTR_VAL_JOYOEMNAME is not
available.

Closes https://github.com/wxWidgets/wxWidgets/pull/938
This commit is contained in:
Mick Phillips
2018-09-20 11:45:16 +01:00
committed by Vadim Zeitlin
parent 81ef669c6d
commit 8a2dd7f18e

View File

@@ -332,13 +332,22 @@ wxString wxJoystick::GetProductName() const
wxRegKey key1(wxString::Format(wxT("HKEY_LOCAL_MACHINE\\%s\\%s\\%s"),
REGSTR_PATH_JOYCONFIG, joyCaps.szRegKey, REGSTR_KEY_JOYCURR));
key1.QueryValue(wxString::Format(wxT("Joystick%d%s"),
m_joystick + 1, REGSTR_VAL_JOYOEMNAME),
str);
if ( key1.Exists() )
{
key1.QueryValue(wxString::Format(wxT("Joystick%d%s"),
m_joystick + 1, REGSTR_VAL_JOYOEMNAME),
str);
}
wxRegKey key2(wxString::Format(wxT("HKEY_LOCAL_MACHINE\\%s\\%s"),
REGSTR_PATH_JOYOEM, str.c_str()));
key2.QueryValue(REGSTR_VAL_JOYOEMNAME, str);
if ( !str.empty() )
{
wxRegKey key2(wxString::Format(wxT("HKEY_LOCAL_MACHINE\\%s\\%s"),
REGSTR_PATH_JOYOEM, str.c_str()));
if ( key2.Exists() )
{
key2.QueryValue(REGSTR_VAL_JOYOEMNAME, str);
}
}
#endif
return str;
}