Windows Shell Hack to Show Thumbnails for THMs

Tonight I got the precious free time that I've been looking for to resume working on my Canon CRW decoder utilities (I can already decode files including most metadata). However, tonight, I decided to work on making it so that CRW files could have thumbnails in the Windows shell. While I was at trying to figure out how to register my Shell Extension, I came across an article which gave me an instant idea. The THM files are JPEGs (rename a .thm to a .jpg and you get a preview thanks to IE). Why can't I just use the image extractor used by JPEGs? Why not indeed? It turns out that the IE thumbnail extractor will read THM files, and correctly parse the JPG image out of it.

Yes, it is a registry hack. Basically, we tell the Windows Explorer/Shell to use the TridentImageExtractor class ({7376D660-C583-11D0-A3A5-00C04FD706EC}) to handle the ImageExtractor interface ({BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}) on the .thm extension.

This registry hack won't rotate the files for you... I guess that IE doesn't understand whatever rotation information Canon embeds into the file. I'm still working on my CRW Image Extractor, which when it is done will be able to rotate the THM files (fast), or failing them existing, extract the JPG from the CRW file (slower), or failing that, process the CRW image data (really slow). I'll pass it around when I finish it. I'm also thinking about some of the other shell extension functions as described in .../extensionhandlers/shell_ext.asp

Remember, you tweak your own registry at your own risk. I'm not responsible if you mess things up. This is supposed to work with Windows 98 and above, but I only tried it on Windows XP.
Anyway, here's the contents of the .REG file:
Windows Registry Editor Version 5.00



--End of THMPreview.reg--

If launching notepad and typing all that in (all of the things in the []s should be on the same line) is scary, I'll make it easy for you. Just download

To give fair credit where credit is due, the article which inspired me to try this in this way was:

Niciun comentariu: