http://bugs.winehq.org/show_bug.cgi?id=11411
Summary: GetFileVersionInfoSizeW returns wrong error code if file has no version (affects WiX) Product: Wine Version: 0.9.54. Platform: Other OS/Version: other Status: UNCONFIRMED Keywords: patch Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: dank@kegel.com
http://blog.rvburke.com/2008/01/30/gtk-and-pygtk-on-win32/ complained about WiX not running. http://www.winehq.org/pipermail/wine-patches/2007-November/046456.html talks about two changes needed to get it closer to running. It seems to have been dropped, so here's one of the two bugs it reports:
Running light.exe from wix on a wixobj file with a non-versioned file as a component prints a diagnostic error indicating ERROR_FILE_NOT_FOUND using wine's builtin of version.dll and msi.dll, but ERROR_RESOURCE_DATA_NOT_FOUND using wine's builtin of msi.dll and native version.dll.
... version.dll's GetFileVersionInfoSizeW does return ERROR_FILE_NOT_FOUND when trying to get the version of a file that does not contain a version (for example, a text file). This is because it relies on VERSION_GetFileVersionInfo_16 to do the file existance check, which returns 0 (meaning file does not exist) if LoadLibrary16 fails.
The patch addresses this by making VERSION_GetFileVersionInfo_16 return 0xFFFFFFFF (meaning file exists but does not have version) if LoadLibrary16 returns an error beside ERROR_FILE_NOT_FOUND.