https://bugs.winehq.org/show_bug.cgi?id=51706
Bug ID: 51706 Summary: Msi HANDLE_CustomType1 fails to load dll [patch] Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: msi Assignee: wine-bugs@winehq.org Reporter: ake.rehnman@gmail.com Distribution: ---
Created attachment 70581 --> https://bugs.winehq.org/attachment.cgi?id=70581 Patch for correctly determine the bitness for CustomAction dll
do_msidbCustomActionTypeDll incorrectly assume dlls have the same "bitness" as the calling application. The Windows GetBinaryTypeW function used actually always fails for dll-types. From the documentation:
"If the file is a DLL, the last error code is ERROR_BAD_EXE_FORMAT."
If GetBinaryTypeW fails the fall back is incorrectly using the same bitness as the application it self.
As far as I know there is no windows api to determine the bitness of DLLs. In my attached patch I have written a new function to determine the DLL type.