comctl32: initial theming tests

Nikolay Sivov bunglehead at gmail.com
Wed Sep 23 13:50:47 CDT 2009


André Hentschel wrote:
> tests class redirection and "load"-order atm
> ---
>  dlls/comctl32/tests/Makefile.in |    1 +
>  dlls/comctl32/tests/theming.c   |  301 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 302 insertions(+), 0 deletions(-)
>  create mode 100644 dlls/comctl32/tests/theming.c
>   
Why not reuse this

+static const CHAR manifest[] =

from v6util.h.

Also it's better to introduce new create/delete manifest helpers in this 
header and use them.

It's better to use already defined classnames here:
---
+ struct classlist {WCHAR class[24]; BOOL todo;} listW[] = {like
---
STATUSCLASSNAMEW for example.

If the purpose of that
---
static void test_redirection(HINSTANCE hInstance, LPCWSTR clsname, BOOL 
todo)
---

is to show that message procedure moves to comctl32 after enabling themes than
testing for comctl32 classes is useless - winproc is already in this module.

I don't think it's a good choice:
---
+        pIsThemeActive = (void*)GetProcAddress(hUxtheme, "IsThemeActive");
+        if (!pIsThemeActive || !pIsThemeActive())
---
I mean what if I don't use theming on XP but classic decorations will it return TRUE?
Not sure but maybe this class reregistration occurs anyway when v6 module is loaded (manifest specified).
Skipping like that will drop tests on native boxes that have theming disable what isn't good.

BTW. Do you plan to reregister all user32 classes on comctl32 load? How could this be done at user32 side - testing for something like IsThemeActive() while loading user32? 




More information about the wine-devel mailing list