[2/3] msi: Reimplement MsiEnumComponents on top of MsiEnumComponentsEx.
Hans Leidekker
hans at codeweavers.com
Fri Mar 30 10:54:30 CDT 2012
---
dlls/msi/registry.c | 22 ++++++----------------
1 files changed, 6 insertions(+), 16 deletions(-)
diff --git a/dlls/msi/registry.c b/dlls/msi/registry.c
index bc67ab2..31e7b4f 100644
--- a/dlls/msi/registry.c
+++ b/dlls/msi/registry.c
@@ -1205,7 +1205,9 @@ UINT WINAPI MsiEnumComponentsA(DWORD index, LPSTR lpguid)
DWORD r;
WCHAR szwGuid[GUID_SIZE];
- TRACE("%d %p\n", index, lpguid);
+ TRACE("%u, %p\n", index, lpguid);
+
+ if (!lpguid) return ERROR_INVALID_PARAMETER;
r = MsiEnumComponentsW(index, szwGuid);
if( r == ERROR_SUCCESS )
@@ -1216,23 +1218,11 @@ UINT WINAPI MsiEnumComponentsA(DWORD index, LPSTR lpguid)
UINT WINAPI MsiEnumComponentsW(DWORD index, LPWSTR lpguid)
{
- HKEY hkey;
- REGSAM access = KEY_WOW64_64KEY | KEY_ALL_ACCESS;
- WCHAR szKeyName[SQUISH_GUID_SIZE];
- DWORD r;
-
- TRACE("%d %p\n", index, lpguid);
+ TRACE("%u, %p\n", index, lpguid);
- r = RegCreateKeyExW(HKEY_LOCAL_MACHINE, szInstaller_Components, 0, NULL, 0, access, NULL, &hkey, NULL);
- if( r != ERROR_SUCCESS )
- return ERROR_NO_MORE_ITEMS;
+ if (!lpguid) return ERROR_INVALID_PARAMETER;
- r = RegEnumKeyW(hkey, index, szKeyName, SQUISH_GUID_SIZE);
- if( r == ERROR_SUCCESS )
- unsquash_guid(szKeyName, lpguid);
-
- RegCloseKey(hkey);
- return r;
+ return MsiEnumComponentsExW( szAllSid, MSIINSTALLCONTEXT_ALL, index, lpguid, NULL, NULL, NULL );
}
UINT WINAPI MsiEnumComponentsExA( LPCSTR user_sid, DWORD ctx, DWORD index, CHAR guid[39],
--
1.7.5.4
More information about the wine-patches
mailing list