Courtesy of , here's a specific .dll file he created. What it does ?! It adds a bitmap to (a) common rightclickmenu(s). Add your own branding to Windows! Here's what he tells us about it:
What is a shell extension at all (?) - for us, Windows users, which get the final result of menu, window, icon, etc.. it's an object which is responsible for some additional functionality of the Windows explorer. After you rightclick some file - you get a context menu which is defined for this type of file by Windows default settings - that is how we can define 'open in Notepad' for each type of file - we actually extend default settings with one of our own.
Think of WinZip application for instance - rightclicking any file we may add it to zip archive, or create .zip file... for some users these extensions already seem to be Windows default ones.
After you righclick in any directory space - beware, it does not apply to system Windows folders - DUN, CPL, Printers, Scheduling but does apply to the desktop (it is still a regular windows directory) - shell checks which default action explorer has to performe on this event. In this case, shell finds that the default context menu has been modified with some CLSID key which represents the registration data of our extension' settings.
So, this one is not a system file modified with Resource Hacker - this one is a kind of independent object which penetrates Windows shell and modifies it as we wish. Get it here
I tried to be as brief and as clear as I could, so inform me if you still have any comments or questions.
Some details about this extension:
The .dll file uses a VP logo as bitmap resource - 46x40 pixels and VP favicon. Anyone may (and should) replace this bitmap with his own logo, photo, etc.. up to 96x96 - I used Resource Hacker for this, BITMAP res. #201. Icon may be replaced as well.
Unfortunately, this extension does not perform interactive dialog for replacing bitmap - maybe should be considered once. Right now I am trying to improve the feature of limited bitmap file - meanwhile, a larger bitmap would be compressed and would look ugly.
This file creates these registry keys :
There are also additional keys which would be added to registry - but these are the most important. These settings obviously should not be removed/replaced with other.
In order to take effect, this dll must be registered as ActiveX component. There are two ways to do this:
(a) Run regsvr32.exe <path>\Byblos.dll from command line - you should have regsvr32 to perform registration.
(b) You may use RegSvrExt shell extension, distributed by Mike Lin
(within miscellaneous software section) - free and very comfortable. After install you'll have the rightclickoption of ActiveX -> Register/Unregister for .dll, .ocx files...
Another detail you should consider - after you use byblos.dll as registered ActiveX COM object - it should NOT be moved from the place it was 'registered' in.
As you can guess, after you unregister this ActiveX - all the registry keys of our extension would be removed by Windows - we do not have to care about it.
There is one more detail that Windows Programmers point to - after our extension was loaded and 'called to' it stays within explorer cache for a while, so to release the extensions more often we have to add the next key:
This setting is for Win 9x, Me. For Win 2k, NT & XP it should be:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer - new DWORD named DesktopProcess with value=1
As for this extension - it was tested on Win98 with IE 4, 5, 5.5 installed, it was tested also on Win2000. Inform me of other bugs/comments if you find out.
Basics on Shell Extension types and features , Michael Dunn - The Complete Idiot's Guide to writing Shell Extensions - Parts I-IX, www.codeproject.com
IconFactory team - their graphics made me addicted to IF - don't judge me for using their graphics - it is too cute to ignore it, www.iconfactory.com
Byblos' original .dll has graphics from the IconFactory
(find Windows versions of their work at Dotico
), and we're now permitted to provide it. Download the .dll here