setupapi: Set last error on failure in SetupDiOpenClassRegKeyExW.

This commit is contained in:
Juan Lang 2007-09-21 11:33:05 -07:00 committed by Alexandre Julliard
parent a9d74cf994
commit 9b1e1b2aad
1 changed files with 24 additions and 20 deletions

View File

@ -2338,8 +2338,9 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
PVOID Reserved) PVOID Reserved)
{ {
HKEY hClassesKey; HKEY hClassesKey;
HKEY hClassKey; HKEY key;
LPCWSTR lpKeyName; LPCWSTR lpKeyName;
LONG l;
if (MachineName != NULL) if (MachineName != NULL)
{ {
@ -2364,15 +2365,16 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
if (!ClassGuid) if (!ClassGuid)
{ {
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, if ((l = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
lpKeyName, lpKeyName,
0, 0,
samDesired, samDesired,
&hClassesKey)) &hClassesKey)))
{ {
return INVALID_HANDLE_VALUE; SetLastError(l);
hClassesKey = INVALID_HANDLE_VALUE;
} }
return hClassesKey; key = hClassesKey;
} }
else else
{ {
@ -2380,28 +2382,30 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
SETUPDI_GuidToString(ClassGuid, bracedGuidString); SETUPDI_GuidToString(ClassGuid, bracedGuidString);
if (RegOpenKeyExW(HKEY_LOCAL_MACHINE, if (!(l = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
lpKeyName, lpKeyName,
0, 0,
samDesired, samDesired,
&hClassesKey)) &hClassesKey)))
{ {
return INVALID_HANDLE_VALUE; if ((l = RegOpenKeyExW(hClassesKey,
}
if (RegOpenKeyExW(hClassesKey,
bracedGuidString, bracedGuidString,
0, 0,
samDesired, samDesired,
&hClassKey)) &key)))
{ {
RegCloseKey(hClassesKey); SetLastError(l);
return INVALID_HANDLE_VALUE; key = INVALID_HANDLE_VALUE;
} }
RegCloseKey(hClassesKey); RegCloseKey(hClassesKey);
return hClassKey;
} }
else
{
SetLastError(l);
key = INVALID_HANDLE_VALUE;
}
}
return key;
} }
/*********************************************************************** /***********************************************************************