Juan Lang : setupapi: Set last error on failure in SetupDiOpenClassRegKeyExW.
Alexandre Julliard
julliard at winehq.org
Mon Sep 24 08:07:59 CDT 2007
Module: wine
Branch: master
Commit: 9b1e1b2aadcdebf09ef306677844701d6177cf82
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9b1e1b2aadcdebf09ef306677844701d6177cf82
Author: Juan Lang <juan.lang at gmail.com>
Date: Fri Sep 21 11:33:05 2007 -0700
setupapi: Set last error on failure in SetupDiOpenClassRegKeyExW.
---
dlls/setupapi/devinst.c | 42 +++++++++++++++++++++++-------------------
1 files changed, 23 insertions(+), 19 deletions(-)
diff --git a/dlls/setupapi/devinst.c b/dlls/setupapi/devinst.c
index a91b120..c2644e2 100644
--- a/dlls/setupapi/devinst.c
+++ b/dlls/setupapi/devinst.c
@@ -2338,8 +2338,9 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
PVOID Reserved)
{
HKEY hClassesKey;
- HKEY hClassKey;
+ HKEY key;
LPCWSTR lpKeyName;
+ LONG l;
if (MachineName != NULL)
{
@@ -2364,15 +2365,16 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
if (!ClassGuid)
{
- if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ if ((l = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
lpKeyName,
0,
samDesired,
- &hClassesKey))
+ &hClassesKey)))
{
- return INVALID_HANDLE_VALUE;
+ SetLastError(l);
+ hClassesKey = INVALID_HANDLE_VALUE;
}
- return hClassesKey;
+ key = hClassesKey;
}
else
{
@@ -2380,28 +2382,30 @@ HKEY WINAPI SetupDiOpenClassRegKeyExW(
SETUPDI_GuidToString(ClassGuid, bracedGuidString);
- if (RegOpenKeyExW(HKEY_LOCAL_MACHINE,
+ if (!(l = RegOpenKeyExW(HKEY_LOCAL_MACHINE,
lpKeyName,
0,
samDesired,
- &hClassesKey))
+ &hClassesKey)))
{
- return INVALID_HANDLE_VALUE;
+ if ((l = RegOpenKeyExW(hClassesKey,
+ bracedGuidString,
+ 0,
+ samDesired,
+ &key)))
+ {
+ SetLastError(l);
+ key = INVALID_HANDLE_VALUE;
+ }
+ RegCloseKey(hClassesKey);
}
- if (RegOpenKeyExW(hClassesKey,
- bracedGuidString,
- 0,
- samDesired,
- &hClassKey))
+ else
{
- RegCloseKey(hClassesKey);
- return INVALID_HANDLE_VALUE;
+ SetLastError(l);
+ key = INVALID_HANDLE_VALUE;
}
-
- RegCloseKey(hClassesKey);
-
- return hClassKey;
}
+ return key;
}
/***********************************************************************
More information about the wine-cvs
mailing list