This is to keep track of how the program is made and what the different modules do as well as which are dependent on who.

All code is open source, released under the GPL license. Feel free to comment the code or ask questions.

ThumbView is separated in 4 parts. ExtractorManager, Registry, ShellExtension and Thumbnail Extractors. ThumbView Lite is all this rolled into one.


module diagram

ExtractorManager (executable)

The actual UI (user interface) for controlling what Thumbnail Extractors are active. It also allows for uninstalling Thumbnail Extractors and auto installing extractors (called .tvx files). There are now two of them, the graphical is written in C#.NET. The simple command version is in plain C++ and using a little Win32 API.

Dependent on:

Thumbnail Extractors (dll)

These are more like 3rd party plug-ins. All they need to do is extract a thumbnail and/or provide image information. The user only installs/enables the Thumbnail Extractors they want. I.e. some users already have TGA support. These can be written with custom loaders, or wrap around existing libraries such as BEER and DeViL. They are written in either C or C++ and provide 2 functions necessary for windows extension and 3 functions for Thumbnail Extractor management.

Free, doesn't depend on any other module.

Registry (dll)

The bridge between the ExtractorManager and the Thumbnail Extractors. This has three advantages. 1) Makes it possible to write the extractors using unmanaged C++ or C while using C# for the UI. 2) Handling all extractor registration, thus keeping functionality away from UI. 3) Makes creating new UI's really simple, example: ExtractorManager could be made using Nullsoft Installer. Registry is a DLL written in C++ and using Win32 API.

Dependent on:

ShellExtension (COM dll)

The actual windows extension. This is the actual DLL called when Windows want's a thumbnail or a info tip. It uses Registry to get a hold of the correct Thumbnail Extractor and extract the needed info/thumbnail. ShellExtension is a DLL written in C++ using ATL/COM and Win32 API.

Dependent on:

Installer (executable)

This project creates a distributable installer for the whole ThumbView user package.

Dependent on:

ThumbView Lite

ThumbView Lite (COM dll)

Uses DevIL dll's for image extraction, so if you have problems with the images go check DevIL if they have a newer version.

Dependent on:

Installer Lite (executable)

This project creates a distributable installer for the small ThumbView Lite user package.

Dependent on:

  • Hosted by
  • Support This Project
Valid XHTML 1.1 Valid CSS 2.1