[ros-dev] [ros-diffs] [gadamopoulos] 53751: [comctl32]

Giannis Adamopoulos giannis.adamopoulos at reactos.org
Thu Oct 6 11:06:58 UTC 2011


I forgot to mention tha comctl32 does not use window classes in a classic way but uses a briefly documented feature called side by side classes explained here: http://msdn.microsoft.com/en-us/library/windows/desktop/aa375136%28v=vs.85%29.aspx

ReactOS Development List <ros-dev at reactos.org> wrote on Thu, October 6th, 2011, 11:10 AM:
> Hi, this is correct. To undesrtand how this should be I just attached windbg to a program and watched the parameters comctl32 passes to RegisterClassEx
> 
> ReactOS Development List <ros-dev at reactos.org> wrote on Thu, October 6th, 2011, 10:56 AM:
> > Hi!!
> > This is wrong, 8^(
> > 
> > +        class.style |= CS_GLOBALCLASS;
> > +        class.hInstance = COMCTL32_hModule;
> > 
> > The point in THEMING_Initialize was to get the current global classes
> > and make locals for each process. So that process could have it. Not
> > the whole system!
> > 
> > Note from a msdn blog, "If you pass the CS_GLOBALCLASS flag when
> > registering the class, then the window manager will ignore the
> > instance handle when looking for your class. All of the USER32 classes
> > are registered as global."
> > 
> > I spent a week now looking through it all, ReactOS is handling the
> > class registration correctly. My best guess, if themes is active do as
> > the original code had it before and use IsThemeActive like it is
> > setup. Keep class.hInstance = COMCTL32_hModule; and don't use
> > CS_GLOBALCLAS so you can find it again.
> > 
> > Thanks,
> > James
> > 
> > _______________________________________________
> > Ros-dev mailing list
> > Ros-dev at reactos.org
> > http://www.reactos.org/mailman/listinfo/ros-dev
> 
> _______________________________________________
> Ros-dev mailing list
> Ros-dev at reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev



More information about the Ros-dev mailing list