correct comctl32 implementation

Andrew Green greeniekin at
Sat Mar 12 00:54:55 CST 2011

Thank you for the quick reply.
so is it the case is that multiple dll's versions will be generated to
be used by SxS(as WinSxS contains multiple comctl32.dll)?

I know uxtheme draws primitives. What I meant to ask was will any work
have to be done in uxtheme(apart from maybe the occasional bug fix,
not a new implementation of it or anything like that)?

The last point about window class redirection I'm a bit confused
about. I really don't know anything about it. This patch exists so it
sounds like it is supported.
So would it just be that case that comctl32(version 6) re-registers
the controls that are normally in user32?

If anyone could provide me with any information or reading material. I
would be very thankful.

On Fri, Mar 11, 2011 at 7:28 PM, Nikolay Sivov <bunglehead at> wrote:
> On 3/11/2011 06:22, Andrew Green wrote:
>> I have been researching how i could implement the gsoc Theming -
>> Implement Wine theming support.
>> Though I'm a bit confused what is wanted.
>> So is the case that completely separate dll's should be written for
>> different versions and be loaded by side-by-side assembly.
>> So you would end up with
>> "comctl32v5.dll","comctl32v6.dll","comctl32v7.dll"?
>> Would these be 3 different code basses or should they be made to share
>> most of there code?
> Multiple comctl32 should be the last thing to think about, only if there's
> absolutely no way to
> implement everything needed in one comctl32.
>> > From what I understand uxtheme already loads XP theme files. So would
>> all the work be isolated to creating different versions of comdlg32
>> and comctl32?
> No sure what you mean. uxtheme purpose is to load theme data, draw theme
> primitives and
> retrieve theme components data.
> Client dll such as comctl32 should only use that public api when drawing
> controls, that's all.
> Also comdlg32 was never a question, cause it doesn't provide new controls.
>> Also does wine support side by side assembly? I did a very quick
>> google search and i didn't see anything.
> Yes wine does support installation and loading of SxS assemblies, and by
> assembly I mean native dlls installed in SxS
> directory and referenced with embedded or external manifest file. Loader
> supports manifest files, not fully but simple things should work.
>> I hope I'm not asking too much at once and/or too silly questions.
> No, it's not silly to ask at all. But one of the most important things to be
> done for that is to implement support of window class redirection. In
> version 6 all user32 controls are reimplemented with theme support in
> comctl32, while user32 classes are kept of course. This is done with
> specific entries in comctl32 manifest, on load comctl32 all builtin classes
> are re-registered to the ones from comctl32. I definitely want to see some
> solution for that, having themed comctl32 controls while scrollbars and
> buttons are drawn with default appearance makes theme support kind of
> useless.

More information about the wine-devel mailing list