http://bugs.winehq.org/show_bug.cgi?id=34977
Bug #: 34977 Summary: WinDjView: missing checkbox in the set as default viewer dialog Product: Wine Version: 1.7.6 Platform: x86 URL: http://downloads.sourceforge.net/windjview/WinDjView-2 .0.2-Setup.exe OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: gohabsgo60@yahoo.ca Classification: Unclassified
Created attachment 46610 --> http://bugs.winehq.org/attachment.cgi?id=46610 WINEDEBUG=hook,msgbox log
to reproduce:
run installer in a clean prefix * uncheck 'Associate with Djvu files' * make sure 'Run WinDjView' is checked
the installer completes, the program starts and a dialog appears warning about WinDjView not being the default viewer. this dialog has a checkbox missing and some other stuff is wrong too.
The program's source can be downloaded here: http://sourceforge.net/projects/windjview/files/WinDjView/2.0.2/WinDjView-2....
it requires vc++ pro to compile due to usage of MFC.
the relevant code is in WinDjView.cpp inside the functions int CDjViewApp::DoMessageBox(LPCTSTR lpszPrompt, UINT nType, UINT nIDHelp, const MessageBoxOptions& mbo) and LRESULT CALLBACK CDjViewApp::MBHookProc(int nCode, WPARAM wParam, LPARAM lParam)
the first function sets a CBT hook and creates the dialog and the second one is the CBT hook itself which performs the dialog's custom initialization.
i have included a winedebug log. please note that CBT hook 0x4776d0 is the one that matters here. the other one (0x4e79f6) is used internally by MFC.
http://bugs.winehq.org/show_bug.cgi?id=34977
--- Comment #1 from zippy gohabsgo60@yahoo.ca 2013-11-22 14:50:11 CST --- Created attachment 46611 --> http://bugs.winehq.org/attachment.cgi?id=46611 dialog in xp
http://bugs.winehq.org/show_bug.cgi?id=34977
--- Comment #2 from zippy gohabsgo60@yahoo.ca 2013-11-22 14:50:46 CST --- Created attachment 46612 --> http://bugs.winehq.org/attachment.cgi?id=46612 dialog in wine
http://bugs.winehq.org/show_bug.cgi?id=34977
zippy gohabsgo60@yahoo.ca changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #46611|dialog in xp |dialog on xp description| |
http://bugs.winehq.org/show_bug.cgi?id=34977
zippy gohabsgo60@yahoo.ca changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #46612|dialog in wine |dialog on wine description| |
http://bugs.winehq.org/show_bug.cgi?id=34977
--- Comment #3 from zippy gohabsgo60@yahoo.ca 2013-11-22 15:33:42 CST --- i think i've isolated the problem. after the CBT hook is called 5 times with nCode == HCBT_CREATEWND (once for the dialog + 4 times for its child controls), windows xp calls it with
nCode == HCBT_SETFOCUS (for the "yes" button) and nCode == HCBT_ACTIVATE (for the dialog)
the last 2 calls don't happen on wine. WinDjView doesn't care about HCBT_SETFOCUS, but it does rely on the HCBT_ACTIVATE call in order to perform the dialog's custom initialization.
another difference between wine and windows xp is that after creating the dialog and its children, the winedebug log says that wine creates 8 extra windows and then promptly destroys them. i don't know if this is by design or a bug.
http://bugs.winehq.org/show_bug.cgi?id=34977
--- Comment #4 from zippy gohabsgo60@yahoo.ca 2013-11-22 21:49:43 CST --- please ignore my previous comment, the CBT hook calls with nCode == HCBT_SETFOCUS and nCode == HCBT_ACTIVATE are indeed made on wine.
the real source of the problem is this line inside the hook:
HWND hwndMessage = GetDlgItem(hwndMessageBox, 0xFFFF);
WinDjView expects the message box's static text control to have ID 0xFFFF, which seems to be one of those "undocumented standards". the call fails because wine gives the control a different id (0x64 last time i checked).
fwiw, the message box's icon also has a different id on wine (0x440) and windows xp (0x14). the yes and no buttons have the correct ids, obviously :)
http://bugs.winehq.org/show_bug.cgi?id=34977
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, source
http://bugs.winehq.org/show_bug.cgi?id=34977
zippy gohabsgo60@yahoo.ca changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |gohabsgo60@yahoo.ca
https://bugs.winehq.org/show_bug.cgi?id=34977
winetest@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |winetest@luukku.com
--- Comment #5 from winetest@luukku.com --- Still valid wine 2.0rc4.
https://bugs.winehq.org/show_bug.cgi?id=34977
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |user32 Ever confirmed|0 |1 Assignee|wine-bugs@winehq.org |bunglehead@gmail.com Status|UNCONFIRMED |NEW
--- Comment #6 from Nikolay Sivov bunglehead@gmail.com --- Confirming.
https://bugs.winehq.org/show_bug.cgi?id=34977
Nikolay Sivov bunglehead@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Assignee|bunglehead@gmail.com |wine-bugs@winehq.org Fixed by SHA1| |9ee82b9465c33ecf28ca61c4f6c | |d8434d242fb1c Status|NEW |RESOLVED Resolution|--- |FIXED
--- Comment #7 from Nikolay Sivov bunglehead@gmail.com --- Fixed, 9ee82b9465c33ecf28ca61c4f6cd8434d242fb1c.
https://bugs.winehq.org/show_bug.cgi?id=34977
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.8.