Attempt to make buttons themed

Robert Shearman rob at codeweavers.com
Tue Mar 22 12:53:04 CST 2005


Alexandre Julliard wrote:

>Frank Richter <resqu at gmx.ch> 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



More information about the wine-devel mailing list