http://bugs.winehq.org/show_bug.cgi?id=14879
Summary: InDesign CS: Crashes on File->Open or File->Place Product: Wine Version: CVS/GIT Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: polesapart@gmail.com
Created an attachment (id=15440) --> (http://bugs.winehq.org/attachment.cgi?id=15440) WM_CTLCOLORSTATIC windows vs. wine demonstration program
InDesign CS crashes while creating the File Open or File Place dialogs.
See http://wiki.winehq.org/AdobeIndesign for a download link and instructions to get InDesign CS running.
The InDesign open and place dialogs are customised open file dialogs, created using dialog templates. The crash is due to a null pointer dereference by the application during the CDN_INITDONE WM_NOTIFY callback from the FileOpenDlgProc95 function comdlg32/filedlg.c.
The root cause can be traced further back to the WM_INITDIALOG callback. This passes a pointer to a data structure via the lCustData field of the OPENFILENAME structure which I assume is being stored in memory for later callbacks (e.g. WM_NOTIFY) to use.
Looking further into into the WM_INITDIALOG callback, during this a WM_SETTEXT message is sent to a group-box control on the dialog box. On wine this results in a WM_CTLCOLORSTATIC callback to the dialog, however this callback does not occur on windows. I believe this spurios WM_CTLCOLORSTATIC callback is the cause of the crash.
I have reproduced this problem with a small demo program (see attached). This basically creates a new dialog box and when it receives it WM_INITDIALOG notification it calls SendDlgItemMessage to send a WM_SETTEXT message to set the text of a 'group box' control on the dialog, basically mimicking the InDesign behaviour. The programs prints the notifications that it receives to stdout. Comparing the output under windows vs. wine shows that wine generates a WM_CTLCOLORSTATIC notification whereas windows doesn't.