Nudel,
The general mechanism of picking up an icon in Windows is through registry keys. Certain pre-defined keys in the registry define the icon files for different file types. If you open from windows explorer, Tools >> Folder options >> File types and look at all the file types, you can choose any file type and click Advanced and change the icon.
This is also possible when you right click DO in the system tray and choose file types..in fact DO brings up the same file types, with some enhanced UI, but essentially does the same.
This means, you can manually edit the icon associated with any file type by either of the two above interfaces, through windows explorer or DOpus..both operations write to the registry.
Registry entry:
An example of how windows handles icons in the registry follows.
Take a text file for example.
The registry entry defining it as a file type is at:
HKEY_CLASSES_ROOT.txt
(to get to this, type Run >> Regedit and expand the + symbol to expand the registry structure...the status bar in the registry editor will tell you exactly where you are in the registry...when you are in the above registry entry, your status bar will say,
My Computer\HKEY_CLASSES_ROOT.txt
When you look at the right side column in the registry editor, you will find several keys and their values. Look athe key called (Default). It's value in my computer is "txtfile".
Now, this string "txtfile" will be defined in another place in the registry where the icon associated with it will be specified. That entry is here:
\HKEY_CLASSES_ROOT\txtfile
And, your status bar will read:
My Computer\HKEY_CLASSES_ROOT\txtfile
One level below, you will see a sub-key called "DefaultIcon". Click it.
On the right hand panel in the editor, you will see a key called "(Default)" and its value will be an icon file location on your harddisk.
This in my machine is:
F:\IconPackage Packages\Big64Bit Nov06\Big64Bit Nov06.icl,63
It means i have a custom icon for all text files.
On a standard installations, you will probably find reference to:
....\shell32.dll,4
shell32.dll is the default place for icons. It is a collection of more than 200 icons, to which windows explorer refers to for all file icons.
But, explorer does not have hard coded references to shell32.dll, but it uses the registry to identify which icon to load for each file type. The default windows installation will have a registry reference to shell32.dll, whereas customizing programs like icon packager will change the references in the registry to custom file icons, instead of shell32.dll.
This logic works complete with windows explorer and to 95% of icons in DOpus too. However, for folder icons and default documents, ie ones without extensions or unknown extension, DO still displays the embedded shell32.dll icon reference..not the overridden icon from the registry.
64-bit icons:
The normal windows XP icon is a 32 bit icon. The size of the icon is small. When you view a directoryy in DO or explorer, in the TILE mode, you see bigger icons..these are 48 bit icons. When in list mode or detail mode, you see very small icons...they are 16 bit icons.
By changing the registy, you can have explorer or Dopus display standard icons as very large icons, by default. Instead of the normal 32x32 pixels, sized icons, you can see icons that are double the size. This will be teh 64x64 pixels icons. I have custom created icons that are 64x64.
If you look at the new linux distributions, you will find nice looking big icons which are kind of big. Typically they are 64x64..but they can be zoomed to even 128x128.
Upcoming Windows Vista will support huge icons upto 256x256 seamlessly, because it wil diretly use PNG image files, instead of the .ico files, that is used for icon files until Windows XP versions. Linux uses PNG files already.
I dont have a special VGA card..just the one that came with my mother board.
INTERCEPTING by icon packager:
I am trying to get a version of the 3.10 Icon packager. I currently have only the 3.0 version, which as far as I know simply makes only registry changes. Let me try to install the 3.10 version, when I get it and see if I figure out if there is an interception mechanism used, or is it all just registry entry replacement mechanism.
Santosh