Entwickler-Ecke

Sonstiges - ...Dateien IN andere Applikationen ziehen?


worm - Mi 22.03.06 20:56
Titel: ...Dateien IN andere Applikationen ziehen?
Eine Ergänzung zum existierenden Topic "...Dateien IN andere Applikationen ziehen?"

Die vorgestellte Lösung mit der Komponente von Angus Johnson ist für die meisten Zwecke sicherlich ausreichend, aber ich brauchte weiteres Feedback über den Ausgang der Drag&Drop-Operation (und außerdem ist die Komponente stellenweise recht unsauber geschrieben).
Also habe ich mich an eine eigene Lösung gemacht, mehr basierend auf der MSDN-Dokumentation als der existierenden Komponente. Es sind dabei mehrere Versionen herausgekommen.
Im ersten Ansatz habe ich wie bei der Komponente von Angus ein IDataObject selbst implementiert, dass als Datenformat nur CF_HDROP zur Verfügung stellt, aber bestimmte zusätzliche Datenformate verarbeiten kann, die vom IDropTarget als Feedback über die Aktion genutzt werden (version1).
Mittendrin bin ich dann darauf gestoßen, dass ich ein IDataObject auch direkt von der Shell für eine beliebige Menge an Dateien bekommen kann. Daraufhin habe ich erst einmal IDataObject und IDropSource in zwei Objekte aufgeteilt (version2) und dann eine weitere Klasse geschrieben, mittels der man ein IDataObject der Shell erzeugen lassen kann (version3).

Im Anhang finden sich alle drei Versionen samt Demos und einer Readme. Der Code ist einigermaßen dokumentiert, aber Fragen beantworte ich auch gerne. Viel Spaß damit!