James Liggett wrote:
- if (!list_head(&tray.icons))
- {
INITCOMMONCONTROLSEX init_tooltip;
init_tooltip.dwSize = sizeof(INITCOMMONCONTROLSEX);
init_tooltip.dwICC = ICC_TAB_CLASSES;
InitCommonControlsEx(&init_tooltip);
Shouldn't you only initialize comctl32 once, rather than every time there's no icons and we add one?
Mike
On Wed, 2006-08-30 at 15:37 +0900, Mike McCormack wrote:
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.
James
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
Hi Kuba,
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; } . . . }
Indeed, that's what I ended up doing. Mike committed it to his temporary git tree.