Hans Leidekker : msi: Reimplement MsiEnumComponents on top of MsiEnumComponentsEx.

Alexandre Julliard julliard at winehq.org
Mon Apr 2 13:14:49 CDT 2012


Module: wine
Branch: master
Commit: 25b7228274902fef682df818f70a5f675952d0ea
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=25b7228274902fef682df818f70a5f675952d0ea

Author: Hans Leidekker <hans at codeweavers.com>
Date:   Fri Mar 30 17:54:30 2012 +0200

msi: Reimplement MsiEnumComponents on top of MsiEnumComponentsEx.

---

 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],




More information about the wine-cvs mailing list