No subject
Fri Sep 18 15:31:18 CDT 2009
001c:Call
user32.DialogBoxIndirectParamW(00000000,0050096c,00020022,00442a06,00500638)
ret=00442ccf
...
001c:Call window proc 0x7a50ac7c
(hwnd=0x10066,msg=WM_INITDIALOG,wp=00000000,lp=00500638)
001c:Call dialog proc 0x442a06
(hwnd=0x10066,msg=WM_INITDIALOG,wp=00000000,lp=00500638)
...
001c:Call KERNEL32.RaiseException(e06d7363,00000001,00000003,0032f0c0)
ret=0044ccd1
001c:trace:seh:raise_exception code=e06d7363 flags=1 addr=0x7b835e12
ip=7b835e12 tid=001c
...
For the WM_INITDIALOG message, MSDN states that the wParam value is:
"Handle to the control to receive the default keyboard focus. The system
assigns the default keyboard focus only if the dialog box procedure returns
TRUE."
In DIALOG_CreateIndirect in dlls/user32/dialog.c however:
/* moved this from the top of the method to here as DIALOGINFO structure
will be valid only after WM_CREATE message has been handled in DefDlgProc
All the members of the structure get filled here using temp variables */
dlgInfo = DIALOG_get_info( hwnd, TRUE );
dlgInfo->hwndFocus = 0;
...
if (DIALOG_CreateControls32( hwnd, dlgTemplate, &template, hInst, unicode
))
{
/* Send initialisation messages and set focus */
if (dlgProc)
{
if (SendMessageW( hwnd, WM_INITDIALOG, (WPARAM)dlgInfo->hwndFocus,
param ) &&
((~template.style & DS_CONTROL) || (template.style &
WS_VISIBLE)))
...
it seems that dlgInfo->hwndFocus is never initialized to an appropriate handle
value, causing the application to assert. Initializing dlgInfo->hwndFocus makes
the assertion failure go away, although the application simply terminates
silently after doing this.
--
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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