Alexandre Julliard wrote:

Frank Richter <[EMAIL PROTECTED]> writes:



How Windows is doing theming I don't know completely. You enable
theming by adding a manifest to the executable which instructs Windows
to load comctl32.dll version 6.0 instead of version 5.x from
system32/. That makes me believe that actually comctl32.dll is
responsible for applying themes to controls (and not uxtheme); how it
does it exactly, I don't know. Subclassing is a good guess I'd think,
or maybe something like re-registering the standard control classes
(if that is possible).

However, Windows also themes the non-client area of (almost) all apps
even if they don't use comctl32 6.0. That must happen somewhere, too.



Then the first thing to do is to figure out exactly how Windows does it, and do it the same way.


typedef DWORD (CALLBACK * USERAPIHOOKPROC)(HINSTANCE hInstance, FARPROC *fnUserApis);


DWORD WINAPI RegisterUserApiHook(HINSTANCE hInstance, USERAPIHOOKPROC fnUserApiHook);

fnUserApis is an array of User functions that can be overridden.

RegisterUserApiHook is a function that is called once for the entire system and then user32 loads the specified module for each process and calls the specified fnUserApiHook function for that process. It is a cumbersome interface that may not be worth duplicating.

Rob



Reply via email to