[Bug 43490] New: Broken native support for comctl32.dll.
wine-bugs at winehq.org
wine-bugs at winehq.org
Sat Aug 5 09:54:23 CDT 2017
https://bugs.winehq.org/show_bug.cgi?id=43490
Bug ID: 43490
Summary: Broken native support for comctl32.dll.
Product: Wine
Version: 2.14
Hardware: x86
OS: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: comctl32
Assignee: wine-bugs at winehq.org
Reporter: s3141p at gmail.com
Distribution: ---
# Summary
Broken native support for comctl32.dll.
This results in a number of popular Windows applications partially, or sometime
totally, not working anymore, such as IrfanView, Faststone Image Viewer, and
XPDF-Xchange viewer.
I confirmed that both wine 2.10 2.13, and 2.14 exhibit the same problem. I
hypothesize that this issue was introduced in wine 2.8 following the changes
for fake dll generation that were announced in
https://www.wine-staging.com/news/2017-05-16-release-2.8.html.
# Reproducing this issue
1. Install 32-bit wine 2.14.
2. Install 32-bit IrfanView 4.44 - latest version as of this writing.
3. Install `winetricks comctl32` - Microsoft COM control DLL 5.8 for Windows
XP, year 2001.
Note: #2 and #3 have worked together for me for all wine versions up to 2.6 (I
skipped 2.8-9, and 2.11-12).
4. Run IrfanView, select menu entry File > Open; IrfanView crashes. Terminal
output shows this message:
```
err:wineboot:ProcessRunKeys Error running cmd
L"C:\\windows\\system32\\winemenubuilder.exe -a -r" (2)
err:module:DelayLoadFailureHook failed to delay load
comctl32.dll.HIMAGELIST_QueryInterface
wine: Call from 0x7b4367c6 to unimplemented function
comctl32.dll.HIMAGELIST_QueryInterface, aborting
wine: Unimplemented function comctl32.dll.HIMAGELIST_QueryInterface called at
address 0x2e0023:0x7b4367c6 (thread 0031), starting debugger...
fixme:service:QueryServiceConfig2W Level 6 not implemented
fixme:service:QueryServiceConfig2W Level 6 not implemented
fixme:service:QueryServiceConfig2W Level 6 not implemented
fixme:service:QueryServiceConfig2W Level 6 not implemented
fixme:service:QueryServiceConfig2W Level 6 not implemented
fixme:ntdll:EtwEventUnregister (deadbeef) stub.
```
Of course, the Microsoft Windows XP comctl32.dll doesn't implement
HIMAGELIST_QueryInterface, which, according to
https://msdn.microsoft.com/en-us/library/windows/desktop/bb761510(v=vs.85).aspx
requires at least Windows Vista. The corresponding wine API is documented in
https://source.winehq.org/WineAPI/HIMAGELIST_QueryInterface.html.
Other examples of Windows applications that fail with the same message include:
* PDF-Xchange Viewer version 2.5 - it doesn't start at all.
* FastStone Image Viewer 6.2 - it hangs with an hourglass mouse pointer.
The obvious work-around is not to load the native comctl32.dll and rely
entirely on the built-in dll. While this works, as it has always worked in the
past, the native implementation lacks enough functionality that at least
IrfanView and Faststone image capture do not work well. That is why several
forum threads recommend using Microsoft's comctr32.dll for such applications.
For IrfanView, the impairment is mainly cosmetic, so it can be tolerated.
Faststone Image Capture, however, can't display thumbnails past the first
screenful (about 20-30 pictures) if the native comctl32 DLL isn't loaded.
# Conclusion
IrfanView and other important Windows applications fail to work partially or
entirely when the native comctl32.dll is loaded. Before version wine 2.10
(possibly 2.8) they all worked without a glitch. The native comctl32.dll is
still needed for full application compatibility because the built-in
replacement DLL lacks some functionality (tested with wine 2.14).
--
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.
More information about the wine-bugs
mailing list