correct comctl32 implementation
bunglehead at gmail.com
Fri Mar 11 03:28:10 CST 2011
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
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