2009-08-04 12 views
3

Ich habe eine proprietäre Anwendung mit der einzigen Möglichkeit, Daten extern zu übergeben - Drag & Drop von einer anderen Anwendung (wie das Ziehen einer Datei aus dem Windows Explorer). Meine Frage ist, ist es möglich, Drag'n'Drop von externen Anwendungen zu simulieren? Reine Win32-Lösung bevorzugt, Abhängigkeiten wie MFC und WTL könnten ebenfalls enthalten sein. Hilfe!Drag & Drop-Simulation?

+0

aloneguid: Haben Sie die Antwort gefunden? Ich habe genau das gleiche Problem. Wenn Sie etwas finden, lassen Sie es mich bitte wissen ([email protected]) – AliPST

+0

Nein, habe ich immer noch nicht :( –

+0

aloneguid: Haben Sie schon eine Antwort gefunden? – test

Antwort

0

Ich denke, es ist möglich, aber Sie werden wahrscheinlich COM für das brauchen (ich bin nicht sicher, obwohl - es gibt eine WM_DROPFILES Nachricht und einige verwandte Funktionen, aber ich konnte keine für das Löschen von Daten finden). Siehe this article auf MSDN.

+2

WM_DROPFILES (das ist eine veraltete Nachricht für Abwärtskompatibilität gedacht) kann Mit SendMessage() können Sie von einer App zur anderen senden, aber nur zum Senden von Dateinamen, sonst nichts. Um die eigentlichen Daten zu ziehen/abzulegen, müssen Sie stattdessen die Interfaces IDropTarget und IDataObject verwenden. Allerdings muss eine externe App DoDragDrop() mit gültigen IDropSource- und IDataObject-Schnittstellen aufrufen, und dann kann der Drag-Drop-Vorgang vom Benutzer ausgeführt werden.Die IDropTarget-Schnittstelle eines Fensters kann nicht direkt aufgerufen werden –

+0

Eine App kann eingefügt werden Ein IDataObject-Interface wird jedoch mit OleSetClipboard() in die Zwischenablage eingefügt und kann dann mit Hilfe von OleGetClipboard() an eine App weitergeleitet werden. –

+0

@Remy, unfortuna es klingt, als hätten sie keinen Zugriff auf die Quelle der "proprietären" App. – NotMe