[ros-kernel] Re: Status of Explorer under ReactOS - Bug #42 (I know the fix)

Martin Fuchs martin-fuchs at gmx.net
Sat Nov 8 15:56:49 CET 2003


Hi,

> ok, I have the solution here.
> Basicly, what we need is this:
> 1.Both an Ansi window procedure and a Unicode window procedure for the 
> standard controls (buttons, statics etc). These should ideally be 
> implemented as stubs that call a shared procedure to do all the work (like 
> how MS does it), that way they are sharing all the data thats needed.

I have implemented this and will check it in in a few minutes if you don't mind.

> 2.A new version of NtUserRegisterClassExWOW (and therefore IntCreateClass) 
> such that it takes both ansi and unicode window procedures and sets the 
> fields of the internal class structure as appropriate.
> 3.changes to how controls are registered to pass both window procedures.
> 4.changes to CreateWindowEx so that if one is creating a "standard" window 
> class (i.e. those defined in user32.dll and having both an ansi and a 
> unicode window procedure defined in the user32.dll symbol table), it will 
> ignore the class Unicode field and instead set the window unicode field to 
> either Ansi or Unicode based on which version of CreateWindowEx was called. 
> This test should ONLY be done for standard controls, all other calls to 
> CreateWindowEx should rely on the class unicode field.
> Not sure how things like common controls work but based on my analysis of 
> user32, doing this for the controls that are inside user32.dll will make 
> things work like they do on windows (even with respect to subclassing, 
> sending messages and so on).

Have you already implemented this?
I extended struct builtin_class_descr by "WNDPROC procA;"
By the way - the original version of the Wine code already contained this member.

Martin



More information about the Ros-kernel mailing list