2008/7/10 Hongbo Ni hongbo_ni@hotmail.com:
I have write a patch for the problem, please comment.
if( unicode && class->winproc == EDIT_winproc_handle )
Is it just the EDIT window procedure that is affected? I suspect that this will apply to all classes that have A and W variants.
I also suspect that this is wrong. AFAICS, the class name Windows uses is "EDIT", not "EDITA"/"EDITW"; the problem lies in SetWindowProc, so it is likely you need to track both the A and W procs, selecting the appropriate one depending on the variant of SetWindowProc is called. CreateWindow would also need to select the correct one and RegisterWindowClass would need to set the A and W variants initially. However, I am not sure on this, so you need tests.
Also, this patch (when sent to the wine-patches list) will stand a better chance of getting in if there are some tests to verify the behaviour on Windows and deficiency in Wine.
You need to check what procs are returned when. Use your original email as the basis for the test.
Thanks for improving Wine, - Reece