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