I'm creating icons for a module of our software that can be accessed from
the system tray, and I'm finding that it's impossible to create a system
tray icon in a form that Windows doesn't change in some way from my original
design when it's displayed in the system tray area. In each case my display
has been set to true color, and I've also test 256 color mode.

My first attempt was a single 16x16 pixel, 256 color resource. It didn't
use the standard Windows palette. When I analyzed the display I found that
Windows had re-assigned it to the 16-color palette and remapped the pixels.

Then I went back and re-drew the icon using the standard 16-color palette.
Still, when installed into our executable, the colors got all shifted around
and the icon looked bad. Notable, however, was the fact that the very same
icon looked fine in the Windows explorer view and in the Task bar.

Finally, I created a full suite of Windows icon resources: 16x16, 32x32,
and 48x48, each in three pixel depths: 16 colors (standard), 256 colors (standard)
and true color. The problem persisted.

I then started to experiment with icon resources from other executables on
my machine that successfully install icons in the system tray. I found that
I could copy and paste their icons into our executable, but when I do so,
the system tray icon becomes completely invisible! (While still showing up
in the Windows Explorer).

Our programming group is stumped, we've all scoured MSDN for information
about the proper voodoo to make this icon in a way that the system tray won't
mutilate, to no avail. I'm convinced that there's some sort of flag to set
elsewhere, or maybe a little-known palette trick or some kind of obscure
rule or, maybe just a magical incantation, (although that would be a real
let down).

Any help you might be able to provide would be greatly appreciated. Thanks
in advance.


-Joe Lachoff