+2  A: 

You have to write a shell extension that implements IExtractImage2 and extracts the thumbnail for Explorer. Oh, and it's COM, so better expect to feel dirty afterwards.

OregonGhost
I use raw C++ so I expect to feel filthy after a day or two rolling in COM.
Jimmy J
Or you can use EZShellExtensionsMFC and feel clean and tidy :-)
logicnp
I don't feel clean and tidy after using something that has the name MFC in it :X
OregonGhost
+3  A: 

You have to implement a preview handler.

Stefan
If I understand the preview handler docs right, it is for the view panel in Explorer, not for thumbnails.
OregonGhost
They're also used for thumbnails (at least on Vista). But of course, implementing IExtractImage works too (and may be better for pre-Vista OS). The advantage of preview handlers is that they're 'out-of-process' and can't crash the shell, are called in a background thread with low priority, ...
Stefan
Isn't that the case for IExtractImage as well on Vista?
OregonGhost