デスクトップの名前空間拡張機能を利用するプログラムがあります。Windows 2000、Windows XP、およびWindows Vistaでは、ユーザーはアイコンをデスクトップ上のアイコンにドラッグして、プログラムを起動できます。ただし、Windows 7(HomeとUltimateの両方)では、アイコンの順序が再配置されるだけです。Sysinternalsdbgview.exeを使用してみました。handler.exeからの多くのイベントを正しく認識しましたが、アイコンを名前空間アイコンにドラッグしてもイベントはトリガーされません。つまり、drophandlerはまったく呼び出されていません。
それでも正しく動作するので、Windows7が以前のバージョンのOSでは要求しなかったものが必要です。
名前空間拡張機能は、関連するキーをレジストリに詰め込むことによってインストールされます。インストーラーをそのように機能させ続けたいと思います。
HKCR\CLSID\{{MY-NAMESPACE-GUID}:():"Caption"
HKCR\CLSID\{{MY-NAMESPACE-GUID}:(Drop):"""c:\programpath\program.exe"" /argument ""%s"""
HKCR\CLSID\{{MY-NAMESPACE-GUID}\InProcServer32:():"""c:\programpath\handler.exe"""
HKCR\CLSID\{{MY-NAMESPACE-GUID}\InProcServer32:ThreadingModel:"Apartment"
HKCR\CLSID\{{MY-NAMESPACE-GUID}\DefaultIcon:():"""c:\programpath\program.exe"",4"
HKCR\CLSID\{{MY-NAMESPACE-GUID}\Shell\Open\Command:():"""c:\programpath\program.exe"""
HKCR\CLSID\{{MY-NAMESPACE-GUID}\shellex\DropHandler:():{MY-GUID-HANDLER}
HKCR\CLSID\{{MY-NAMESPACE-GUID}\shellex\PropertySheetHandlers(): {MY-GUID-HANDLER}
HKCR\CLSID\{{MY-NAMESPACE-GUID}\ShellFolder():00 01 00 00
HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\Namespace\{{MY-NAMESPACE-GUID}:():"Caption"