I had a bit of free time so I managed to do a quick update of the Windows Shell Extensions, specifically to add support for version 7.5 VTF files.

There aren’t many big changes but as part of an update/clean-up of the code I’ve re-written the Windows Vista/7 thumbnail extension to use the new API that came with those versions. Several people told me that they also run on Windows 2008R2 so I’ve now officially added support for Windows 7 and 2008R2 to the installer. I’ve also changed the version number to 1.7.5 to reflect the version of VTF that it supports.

There are still a few 7.5 version files that it can’t create thumbnails for but it seems that is down to a problem with VTFLib more than with the shell extensions themselves.

IMPORTANT: Please un-install any older version of the extensions you have installed first before installing these. There have been some changes to filenames and trying to install this on top of an older version will cause conflicts. The installer should detect and warn you about an older version but for your own sake, un-install the old version first. You can do this from the control panel under “Add/Remove Programs” or “UnInstall a Program”.

One final note. For Vista/7 you also need to install the Visual Studio 2008 SP1 runtime pack. Links for this are given with the extensions download link. I could of included these in the installer but it would of been a 11Mb download instead of 0.5Mb. :/

Seems a small bug slipped through the net with the VTF Shell Extensions which was causing problems with VTF textures generated without MIP maps. I’ve made and update so you can download and update to the latest version to fix it.

In short, images without MIP maps were showing strange, interlaced looking thumbnails. There was also an issue with really big non-MIP images crashing explorer. This was due to the large ammounts of memory needed to generate thumbnails from the fullsize image rather than a MIP level. As a get-around for now the extension won’t attempt to generate thumbnails for non-MIPmapped images greater than 512×512 pixels.

Sorry it took so long, but I finally updated my VTF Shell extensions to support the 7.4 VTF format as found in Team Fortress 2/The Orangebox.

The delay was due to both Nem being busy with real-life stuff and unfortunately losing the code to the Photoshop plug-in which meant a re-write. This lead to the new version of VTFLib being delayed and as so many of our tools rely on it, we couldn’t update without it.

Anyway, everything is updated now – Nem has released the new VTFLib, VTFEdt and his Photoshop VTF plug-in with 7.4 support and I’ve updated my XP/Vista Shell extensions. I’ll update the 3DS Max plug-ins hopefully in the next couple of days. I’ve also updated the documentation for VTFLib.

One new feature though that’s worth mentioning. Since VTF 7.3, the VTF format has added support for “resources” embedded inside the actual VTF file. This was originally added, I believe, to better support features on the XBox360. What’s nice is that developers can add any custom resource and data they might need.

This gave me a brainwave.

Often you find VTF textures all over the place and if you’re creating a Mod it can be a right pain-in-the-arse to keep track of texture assets. Wouldn’t it be great if there was some sort of metadata inside the actual file containing useful information about who made the texture, how to contact them and what game/mod it came from? Basically EXIF for VTF files.

Well that’s what we implemented. Using a custom “Information” resource you can now embed useful information into VTF files for TF2/Orangebox using VTFEdit. You have the basic author and contact info, your texture version number, what game/mod it’s for and include a short note. My VTF Shell extensions can show this info as part of the detail columns in XP or in the properties view in Vista.

So you know the drill – un-install any previous versions of the shell extensions you have installed and make sure you have the Visual C++ 2005 SP1 runtimes installed if you don’t already.

Sep. 2, 2007 @ 14:29

Well I knew I was taking a bit of a risk with my first Vista compatible shell extension and yes, some bugs did creep in. I do test my stuff as thoroughly as I can but sometimes things slip through the net. :o(

Thanks to those who did take the time to contact me and report their bugs. The two most common problems seems to be missing C++ Runtime files (Microsoft requires specific versions for applications compiled with VS2005 SP1) and the extensions crashing when you right-click on a thumbnail.

The runtime issue is solved by installing them as necessary – I’ve provided links to them above the shell extension download page.

The thumbnail crash problem I’ve tracked down and have released an update to the extensions. As normal, you’ll need to uninstall the old version before installing the new but hopefully this will solve it.

For those of you still having problems, especially with Vista, please let me know if you’re getting any wierd error messages or so on. The easiest way to track and solve a bug is if I can get reproduceable proof of the bug and enough info to diagnose it.

Been a bit quite of late due to a huge ammount of work to get through… Sorry ’bout that.

Anyway, allied to my previous blog post, I’ve now finished re-writing my VTF Shell Extensions and posted them up for download.

What’s new this version?

Short version: Re-written, added support for Vista and with a much improved installer.

Long version: Updates to VTFLib so that it would compile under Visual Studio 2005 as a 32-bit and 64-bit DLL. ‘ve also added basic support for version 7.3 of the VTF format but that’s only of any interest to you if you work at Valve or are from the future and creating content for TF2. Re-written the actual shell extension code to combine both extensions into one DLL for XP/W2k and inplement some speed enhancements and better error handling. For Vista, I’ve implemented the new Property Handler system. Installer auto-detects what OS you’re running and installs the correct DLLs (32bit or 64bit) to match, handles registration better and adds a proper un-install option in the Add/Remove Programs dialog. (*phew*)

If you’re using a previous version I would recommend you un-install it and update to this new version. Please do use the un-installer as it helps remove the risk of something being left behind and screwing up. The installer for this version will attempt to remove any previous versions but it’s brute force and a last ditch method if it finds any offending files floating around.

UPDATE: Turns out that people installing the extensions on Vista 64bit were having issues. I tracked it down to needing the VS2005 SP1 Runtimes installed first. I’ve added links to where you can download the installer for these files on the download page.

So I took my first tentative steps at programming the Vista shell today. Oh sweet lord what have I gotten myself into…

First up was the problem of actually getting Vista set-up so I could work with it. As I’m going to need 32-bit and 64-bit versions for development I ended up using VMWare Workstation 6 and installing a virtual machine for each version. I must admit I’m impressed with VMWare, especially the fact it lets me run a 64-bit virtual machine on a 32-bit host OS. How it does it I do not know but anything that saves me having to re-partition my hard disk to run a new OS for development is just fine by me!

So my first task was to look at updating my VTF Shell Extensions for Vista. The old versions did work but need to be installed under compatibility mode. If I’m going to port them to 64-bit versions I also need to move them from Visual Studio 2003 to 2005. The Visual Studio upgrade was pretty flawless and I only had to change a couple of small things codewise to get it to compile.

VTF Thumbnails in Vista

Holy crap! It works in Vista!

I’d been considering looking at the new IThumbnailProvider interface that Microsoft provides specifically for Vista but I decided to stick with IExtractImage. Vista still supports this interface and testing the plug-in, it still works as expected and the thumbnails are drawn to my liking. I do have to say, I love the way you can scale up the size of the thumbnails – very handy when you’re trying to find a texture.

Since the last version of my VTF shell extensions, I’ve been added a few more functions to it to try and make it as useful as possible. Things like more informative tool-tips, better column info support and possible a properties sheet with all the data on the texture. Some of these functions came about for a “special” version (1.0.4) which I wrote for Valve to use in-house.

What has thrown a spanner in the works for me is that Vista no longer supports some of the interfaces I was using for these extras. IColumnProvider which I was using for the extra info columns in detail view has gone and been replaced by Property Handlers. I’m still chewing through the documentation for these and trying to get the SDK sample to work but it seems I’m not the only one having issues.

So at this point it time it seems that the next release, 1.0.5, will be the updated extensions for W2k/XP, Thumbnail view only for Vista and hopefully 32-bit and 64-bit versions. Oh and maybe an installer which doesn’t make Vista light up like a christmas tree.

In the meantime, if anyones had any luck with property handlers with Vista, let me know.