Things to improve / things yet to do :
--------------------------------------

- allow writing of column provider extensions in Perl.

- factorize the code of query_context_menu for shell extensions that only
work on a specific type of files (.zip,.mp3,.txt ...)

- support property pages & tray icon extensions as well...

- support having several commands per package.

- need a Makefile.PL that knows how to install Win32::ShellExt without the unnecessary .xs, and also knows
	how to compile perlshellext.dll

- separate the installation stuff that uses Win32::TieRegistry that gets loaded
       even when running inside Explorer (and never gets used then...).

- change the makefile so that the registry installation only happens for modules that have changed (for
	now it recreates all the keys each time)

- the first right click to unfold the context menu is very long (most probably because it's loading the
	perl DLL, as well as pulling in a lot of perl code). maybe we should do it differently?

- Use t/testColumnProvider.cpp to validate this extension

- finish PerlMenu to allow putting commands in sub-menus (and eventually defining
in one's perl package one's own cascaded menus).

- finish ShellExt/Search.pm
	PerlCopyHookExt.cpp & ShellExt/CopyHook.pm

- write a QueryInfo::DLL (using Win32::ImageHlp to list the symbols and/or dependencies).

- DragDropHandler
- ContextMenu for Folder (-> a different registry key)
- sub-menus in ContextMenu (->PerlMenu), cf IContextMenu3 to allow display of custom icons (this would need
to be user-definable in the .pm).

- implement the 7 types of extensions:
http://www.zdnet.com/pcmag/pctech/content/15/03/tu1503.004.html

Context-menu handler IShellExtInit, IContextMenu Adds commands to context menus.  
Drag-drop handler IShellExtInit, IContextMenu Adds commands to right-drag context menus.  
Property-sheet handler IShellExtInit, IShellPropSheetExt  Adds pages to property sheets.  
Icon handler IPersistFile, IExtractIcon  Provides instance-specific icons for files and other objects displayed by the shell.   
Copy-hook handler ICopyHook Exercises veto power over moves, copies, and other actions performed on folders.  
Data handler IPersistFile, IDataObject  Exposes an object's data to drop-target objects.  
Drop handler IPersistFile, IDropTarget Converts icons into drop targets.