Alexandre Julliard : setupapi: Create fakedlls before copying files.

Alexandre Julliard julliard at winehq.org
Thu Mar 18 16:43:53 CDT 2021


Module: wine
Branch: master
Commit: 1244b501455b4dac8f4ec9c65067e06f87729b72
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=1244b501455b4dac8f4ec9c65067e06f87729b72

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Thu Mar 18 11:40:13 2021 +0100

setupapi: Create fakedlls before copying files.

Some files may come from dll resources.

Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/setupapi/install.c | 26 +++++++++-----------------
 1 file changed, 9 insertions(+), 17 deletions(-)

diff --git a/dlls/setupapi/install.c b/dlls/setupapi/install.c
index 56a9d4f36c3..23f0fbdd4f1 100644
--- a/dlls/setupapi/install.c
+++ b/dlls/setupapi/install.c
@@ -1085,6 +1085,13 @@ BOOL WINAPI SetupInstallFromInfSectionW( HWND owner, HINF hinf, PCWSTR section,
         if (!iterate_section_fields( hinf, section, L"WinePreInstall", registry_callback, &info ))
             return FALSE;
     }
+    if (flags & SPINST_REGSVR)
+    {
+        if (iterate_section_fields( hinf, section, L"WineFakeDlls", fake_dlls_callback, NULL ))
+            cleanup_fake_dlls();
+        else
+            return FALSE;
+    }
     if (flags & SPINST_FILES)
     {
         struct files_callback_info info;
@@ -1121,24 +1128,14 @@ BOOL WINAPI SetupInstallFromInfSectionW( HWND owner, HINF hinf, PCWSTR section,
     }
     if (flags & SPINST_REGSVR)
     {
-        struct register_dll_info info;
+        struct register_dll_info info = { .unregister = FALSE };
         HRESULT hr;
 
-        info.unregister    = FALSE;
-        info.modules_size  = 0;
-        info.modules_count = 0;
-        info.modules       = NULL;
         if (flags & SPINST_REGISTERCALLBACKAWARE)
         {
             info.callback         = callback;
             info.callback_context = context;
         }
-        else info.callback = NULL;
-
-        if (iterate_section_fields( hinf, section, L"WineFakeDlls", fake_dlls_callback, NULL ))
-            cleanup_fake_dlls();
-        else
-            return FALSE;
 
         hr = CoInitialize(NULL);
 
@@ -1153,19 +1150,14 @@ BOOL WINAPI SetupInstallFromInfSectionW( HWND owner, HINF hinf, PCWSTR section,
     }
     if (flags & SPINST_UNREGSVR)
     {
-        struct register_dll_info info;
+        struct register_dll_info info = { .unregister = TRUE };
         HRESULT hr;
 
-        info.unregister    = TRUE;
-        info.modules_size  = 0;
-        info.modules_count = 0;
-        info.modules       = NULL;
         if (flags & SPINST_REGISTERCALLBACKAWARE)
         {
             info.callback         = callback;
             info.callback_context = context;
         }
-        else info.callback = NULL;
 
         hr = CoInitialize(NULL);
 




More information about the wine-cvs mailing list