https://bugs.winehq.org/show_bug.cgi?id=51864
Bug ID: 51864 Summary: VeraCrypt Installer for 1.24-Update7 (Win8+) fails with HRESULT 0x800288BD Product: Wine Version: 6.18 Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: oleaut32 Assignee: wine-bugs@winehq.org Reporter: besentv@gmail.com Distribution: ---
Created attachment 70779 --> https://bugs.winehq.org/attachment.cgi?id=70779 Veracrypt installer Winedump
Seems like the installer, a 32bit App, tries to register a 64bit TypeLib, but it fails:
... 0100:Call oleaut32.RegisterTypeLib(00f2d118,051dd278 L"C:\Program Files\VeraCrypt\VeraCrypt.exe",00000000) ret=00403782 0100:Ret oleaut32.RegisterTypeLib() retval=800288bd ret=00403782 ... 0100:Call oleaut32.RegisterTypeLib(00f2d118,051dd278 L"C:\Program Files\VeraCrypt\VeraCrypt.exe",00000000) ret=00403782 0100:Ret oleaut32.RegisterTypeLib() retval=800288bd ret=00403782 ...
A quick check of the source code shows us, that wine does this on purpose:
oleaut32.typelib.c:
HRESULT WINAPI RegisterTypeLib(ITypeLib *ptlib, const WCHAR *szFullPath, const WCHAR *szHelpDir) { ... #ifndef _WIN64 if (attr->syskind == SYS_WIN64) return TYPE_E_BADMODULEKIND; #endif ... }
Windows allows this behavior, as the installer works perfectly fine there.