Modules
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.
ThumbView
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
- Registry
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:
- Thumbnail Extractors
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:
- Thumbnail Extractors
- Registry
Installer (executable)
This project creates a distributable installer for the whole ThumbView user package.
Dependent on:
- ExtractorManager
- Registry
- ShellExtension
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:
- 3rd party library, DevIL dll's.
Installer Lite (executable)
This project creates a distributable installer for the small ThumbView Lite user package.
Dependent on:
- ThumbView Lite