[crypt32] Set last error on registry errors
Paul Vriens
Paul.Vriens at xs4all.nl
Wed Sep 6 08:48:00 CDT 2006
Hi,
testing on w2k3 (when setting permissions on several registry keys) shows that
registry errors are reported.
Changelog
Set last error on registry errors
Cheers,
Paul.
---
dlls/crypt32/oid.c | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/dlls/crypt32/oid.c b/dlls/crypt32/oid.c
index 6736e36..46dbe28 100644
--- a/dlls/crypt32/oid.c
+++ b/dlls/crypt32/oid.c
@@ -453,15 +453,24 @@ BOOL WINAPI CryptRegisterOIDFunction(DWO
r = RegCreateKeyA(HKEY_LOCAL_MACHINE, szKey, &hKey);
CryptMemFree(szKey);
+
+ /* Testing on native shows that registry errors are reported */
if(r != ERROR_SUCCESS)
+ {
+ SetLastError(r);
return FALSE;
+ }
/* write the values */
if (pszOverrideFuncName)
- RegSetValueExA(hKey, "FuncName", 0, REG_SZ,
- (const BYTE*)pszOverrideFuncName, lstrlenA(pszOverrideFuncName) + 1);
- RegSetValueExW(hKey, DllW, 0, REG_SZ, (const BYTE*) pwszDll,
- (lstrlenW(pwszDll) + 1) * sizeof (WCHAR));
+ {
+ r = RegSetValueExA(hKey, "FuncName", 0, REG_SZ,
+ (const BYTE*)pszOverrideFuncName, lstrlenA(pszOverrideFuncName) + 1);
+ if (r != ERROR_SUCCESS) SetLastError(r);
+ }
+ r = RegSetValueExW(hKey, DllW, 0, REG_SZ, (const BYTE*) pwszDll,
+ (lstrlenW(pwszDll) + 1) * sizeof (WCHAR));
+ if (r != ERROR_SUCCESS) SetLastError(r);
RegCloseKey(hKey);
return TRUE;
--
1.4.2
More information about the wine-patches
mailing list