msi: Import mspatcha instead of loading it dynamically.

This commit is contained in:
Hans Leidekker 2015-04-01 12:24:57 +02:00 committed by Alexandre Julliard
parent 9e0045e167
commit 2acc11c215
5 changed files with 6 additions and 41 deletions

2
configure vendored
View File

@ -17372,7 +17372,7 @@ wine_fn_config_dll msisip enable_msisip
wine_fn_config_dll msisys.ocx enable_msisys_ocx wine_fn_config_dll msisys.ocx enable_msisys_ocx
wine_fn_config_dll msls31 enable_msls31 wine_fn_config_dll msls31 enable_msls31
wine_fn_config_dll msnet32 enable_msnet32 wine_fn_config_dll msnet32 enable_msnet32
wine_fn_config_dll mspatcha enable_mspatcha wine_fn_config_dll mspatcha enable_mspatcha implib
wine_fn_config_dll msrle32 enable_msrle32 po wine_fn_config_dll msrle32 enable_msrle32 po
wine_fn_config_test dlls/msrle32/tests msrle32_test wine_fn_config_test dlls/msrle32/tests msrle32_test
wine_fn_config_dll mssign32 enable_mssign32 wine_fn_config_dll mssign32 enable_mssign32

View File

@ -3074,7 +3074,7 @@ WINE_CONFIG_DLL(msisip)
WINE_CONFIG_DLL(msisys.ocx) WINE_CONFIG_DLL(msisys.ocx)
WINE_CONFIG_DLL(msls31) WINE_CONFIG_DLL(msls31)
WINE_CONFIG_DLL(msnet32) WINE_CONFIG_DLL(msnet32)
WINE_CONFIG_DLL(mspatcha) WINE_CONFIG_DLL(mspatcha,,[implib])
WINE_CONFIG_DLL(msrle32,,[po]) WINE_CONFIG_DLL(msrle32,,[po])
WINE_CONFIG_TEST(dlls/msrle32/tests) WINE_CONFIG_TEST(dlls/msrle32/tests)
WINE_CONFIG_DLL(mssign32) WINE_CONFIG_DLL(mssign32)

View File

@ -1,7 +1,7 @@
MODULE = msi.dll MODULE = msi.dll
IMPORTLIB = msi IMPORTLIB = msi
IMPORTS = uuid urlmon wininet comctl32 shell32 shlwapi cabinet oleaut32 ole32 version user32 gdi32 advapi32 IMPORTS = uuid urlmon wininet comctl32 shell32 shlwapi cabinet oleaut32 ole32 version user32 gdi32 advapi32
DELAYIMPORTS = odbccp32 wintrust crypt32 imagehlp DELAYIMPORTS = odbccp32 wintrust crypt32 imagehlp mspatcha
C_SRCS = \ C_SRCS = \
action.c \ action.c \

View File

@ -43,13 +43,11 @@
#include "winuser.h" #include "winuser.h"
#include "winreg.h" #include "winreg.h"
#include "shlwapi.h" #include "shlwapi.h"
#include "patchapi.h"
#include "wine/unicode.h" #include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(msi); WINE_DEFAULT_DEBUG_CHANNEL(msi);
static HMODULE hmspatcha;
static BOOL (WINAPI *ApplyPatchToFileW)(LPCWSTR, LPCWSTR, LPCWSTR, ULONG);
static void msi_file_update_ui( MSIPACKAGE *package, MSIFILE *f, const WCHAR *action ) static void msi_file_update_ui( MSIPACKAGE *package, MSIFILE *f, const WCHAR *action )
{ {
MSIRECORD *uirow; MSIRECORD *uirow;
@ -438,30 +436,6 @@ done:
return rc; return rc;
} }
static BOOL load_mspatcha(void)
{
hmspatcha = LoadLibraryA("mspatcha.dll");
if (!hmspatcha)
{
ERR("Failed to load mspatcha.dll: %d\n", GetLastError());
return FALSE;
}
ApplyPatchToFileW = (void*)GetProcAddress(hmspatcha, "ApplyPatchToFileW");
if(!ApplyPatchToFileW)
{
ERR("GetProcAddress(ApplyPatchToFileW) failed: %d.\n", GetLastError());
return FALSE;
}
return TRUE;
}
static void unload_mspatch(void)
{
FreeLibrary(hmspatcha);
}
static MSIFILEPATCH *get_next_filepatch( MSIPACKAGE *package, const WCHAR *key ) static MSIFILEPATCH *get_next_filepatch( MSIPACKAGE *package, const WCHAR *key )
{ {
MSIFILEPATCH *patch; MSIFILEPATCH *patch;
@ -525,7 +499,6 @@ UINT ACTION_PatchFiles( MSIPACKAGE *package )
MSIFILEPATCH *patch; MSIFILEPATCH *patch;
MSIMEDIAINFO *mi; MSIMEDIAINFO *mi;
UINT rc = ERROR_SUCCESS; UINT rc = ERROR_SUCCESS;
BOOL mspatcha_loaded = FALSE;
TRACE("%p\n", package); TRACE("%p\n", package);
@ -557,13 +530,6 @@ UINT ACTION_PatchFiles( MSIPACKAGE *package )
goto done; goto done;
} }
if (!mspatcha_loaded && !load_mspatcha())
{
rc = ERROR_FUNCTION_FAILED;
goto done;
}
mspatcha_loaded = TRUE;
data.mi = mi; data.mi = mi;
data.package = package; data.package = package;
data.cb = patchfiles_cb; data.cb = patchfiles_cb;
@ -587,8 +553,6 @@ UINT ACTION_PatchFiles( MSIPACKAGE *package )
done: done:
msi_free_media_info(mi); msi_free_media_info(mi);
if (mspatcha_loaded)
unload_mspatch();
return rc; return rc;
} }

View File

@ -1,4 +1,5 @@
MODULE = mspatcha.dll MODULE = mspatcha.dll
IMPORTLIB = mspatcha
C_SRCS = \ C_SRCS = \
mspatcha_main.c mspatcha_main.c