This fixes the putty and the winamp dialog problems, except for the inital load. I'll have to look at that. interestingly, when WM_SELCHANGEDW is set to TVN_SELCHANGEDA in the treeview call, those work perfectly, so I suppose this patch may not be complete.
What the problem is is that the W gets sent to DefDlgProc32, because it is a W call, but the programs treeview hanlder isn't always W. So, you have to check that here and then adjust the code.
-Dante
Index: windows/defdlg.c =================================================================== RCS file: /home/wine/wine/windows/defdlg.c,v retrieving revision 1.29 diff -u -r1.29 defdlg.c --- windows/defdlg.c 14 Jan 2003 19:29:15 -0000 1.29 +++ windows/defdlg.c 12 Feb 2003 14:00:56 -0000 @@ -395,12 +395,17 @@ LRESULT WINAPI DefDlgProcW( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam ) { BOOL result = FALSE; + BOOL forWide = FALSE; WNDPROC dlgproc; + if( msg == WM_NOTIFY && lParam && ((LPNMHDR)lParam)->code & 0x30 ) + forWide = TRUE;
SetWindowLongW( hwnd, DWL_MSGRESULT, 0 );
if ((dlgproc = DEFDLG_GetDlgProc( hwnd ))) { + if( forWide && (WINPROC_GetProcType( dlgproc) == WIN_RPOC_32A )) + ((LPNMHDR)lParam)->code += 0x30; /* Call dialog procedure */ result = CallWindowProcW( dlgproc, hwnd, msg, wParam, lParam ); /* 16 bit dlg procs only return BOOL16 */