> > Shouldn't you only initialize comctl32 once, rather than every time
> > there's no icons and we add one?
>
> Sure. I did it like this because Alexandre only wanted to have common
> controls initialized when we added an icon so we didn't have to do so
> much work at explorer startup. Taking a second look I see how we could
> end up initializing common controls more than once. My first thought on
> this is to add a boolean variable somewhere that would tell us if we've
> already initialized comctl32 so we don't do it more than once.

What about a static variable right in the function where you call the 
initialization function? That'd work fine if you don't call 
InitCommonControlsEx from anywhere else:

if (!list_head(&tray.icons))
{
        static BOOL controls_initialized = FALSE;
        INITCOMMONCONTROLSEX init_tooltip;

        init_tooltip.dwSize = sizeof(INITCOMMONCONTROLSEX);
        init_tooltip.dwICC = ICC_TAB_CLASSES;

        if (! controls_initialized) {
                InitCommonControlsEx(&init_tooltip);
                controls_initialized = TRUE;
        }
        . . .
}

Cheers, Kuba


Reply via email to