I need to be able to drag an item from my application into a windows explorer window or the desktop and have the path where the drag completed returned to the program.
I need a component, a function, or COM object that allows my C# application to detect when a drag drop from my local list view to windows explorer has taken place AND return the final destination to the original program. Reasonable fault tolerance will be required (it cannot crash if dragged to an unexpected application, must work dragging to floppy drives, network locations etc.)
My attempts at writing a native C# application to do this have failed. It would seem that this functionality is not available in C#, or at least not possible without COM, which is not included in the express edition version that I am using.
The eventual goal will be to make an application like winzip or ftp which will allow files on a remote server, or stored in an archive (as an FTP or Zipper application work respectively) to be dragged from my list view into windows explorer.
I will not accept any bid without a demo application (one form with a draggable control that displays windows explorer drop location). For security purposes I will not run any demo unless you are an active coder with a good record.
I'm hoping this will be a cut and paste job. Someone knows how to do this, because it's been done in winzip and several other applications.
Demo test case:
1. Run demo
2. Form appears with draggable control in it
3. Drag and drop from control elsewhere on form
4. Expected result, nothing happens
5. Drag from control to windows explorer
6. After drop completes messagebox appears with path of windows explorer form (or desktop) eg: c:\testme\
7. No residual file remains at destination
8. Close message box
9. Drag from control and interrupt drag
10. Nothing happens (IE no crash)
I would prefer that this could be done without any sort of "installation", but if that is not possible, then I will get over it.
A brief explanation about how to implement this in C# and how it works will be required. It will be tested in windows 2000, windows xp and windows vista with a testing application written in visual studio 2005 and 2008 express editions.