https://bugs.winehq.org/show_bug.cgi?id=50488
Bug ID: 50488 Summary: SHMessageBoxCheck returns impossible values Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: shlwapi Assignee: wine-bugs@winehq.org Reporter: meandyouftw@gmail.com Distribution: ---
The implementation of shlwapi.dll!SHMessageBoxCheck is returning incorrect values.
My Windows app's implementation was simply: == int nUserAnswer = SHMessageBoxCheck(hWnd, strQuestion.GetString(), GetAppName(), MB_YESNO, IDNO, L"guid")); ==
On the latest WINE builds from both Stable and Development, SHMessageBoxCheck is returning IDOK (0x1) and IDCANCEL (0x7) for YES and NO, respectively. Understandably, chaos ensued.
This should be a clear code bug, but the repro I used was: * download PalMod from https://zachd.com/palmod/releases/obsolete/PalMod-1.68.rar * extract all files and open PalMod * open any file with File :: Load ROM By Game :: Developer Mode :: Unknown Game Mode * change the palette in the palette view, then attempt to switch to a different palette using the combo boxes * PalMod now calls SHMessageBoxCheck, and the bogus returns from WINE's implementation results in aberrant behavior
"wine --version" returns wine-3.6 (Ubuntu 3.6-1).
I'll be adding a work-around for this to current builds of PalMod (1.70beta15 and newer), but that's of course not the best way to fix this concern.
Thanks!