There is a really great Visual C++ Wizard that creates a wonderful template for Microsoft Explorer Shell Extensions. The name of the dll is "atlshlex.dll". You can find it here : http://www.codetools.com/atl/shellext.aspThanks to Shaun Wilde from http://www.many-monkeys.co.uk for this tool.
For those who are not familar with Visual C++ Wizards:
A Developer can create custom DLL's which can be bind to Visual C++. These DLL's can create C++ source code frameworks that can be used as a base of new programs.
I have used atlshlex.dll to create the framework of CBShellExt.
atlshlex.dll doesn't support IContextMenu3 yet, nonetheless it implements the complete IContextMenu interface.