Freigeben über


Datenübertragungsschnittstellen

Die IDataObject--Schnittstelle bietet Verbrauchern von Daten Methoden zum Abrufen und Festlegen der Daten eines Objekts, bestimmen, welche Formate das Objekt unterstützt, und registrieren und empfangen Benachrichtigungen, wenn daten im Objekt geändert werden. Beim Abrufen von Daten kann ein Aufrufer das Format angeben, in dem die Daten gerendert werden sollen. Die Quelle der Daten bestimmt jedoch das Speichermedium, das er in einem Ausgabeparameter zurückgibt, der vom Aufrufer bereitgestellt wird.

Selbst stellt IDataObject alle Tools bereit, die Sie zum Implementieren von Windows-Zwischenablageübertragungen oder zusammengesetzten Dokumentübertragungen in Ihren Anwendungen benötigen. Wenn Sie auch Drag- und Drop-Übertragungen unterstützen möchten, müssen Sie die IDropSource- und IDropTarget-Schnittstellen zusammen mit IDataObject-implementieren.

Die IDataObject Schnittstelle in Kombination mit OLE-Zwischenablage-APIs bieten alle Funktionen der Windows-Zwischenablage-APIs. Es ist im Allgemeinen nicht erforderlich, beide Zwischenablage-APIs zu verwenden. Datenlieferanten, die Drag- und Drop-Übertragungen unterstützen, oder OLE-Verbunddokumente müssen die IDataObject Schnittstelle implementieren. Wenn Ihre Anwendung jetzt nur Zwischenablageübertragungen unterstützt, Aber Sie beabsichtigen, In späteren Versionen Drag-and-Drop- oder Verbunddokumente hinzuzufügen, sollten Sie IDataObject- und die OLE-Zwischenablage-APIs implementieren, um den Zeitaufwand für die erneute Codierung und das Debuggen später zu minimieren. Sie können auch IDataObject- implementieren, um andere Medien als den globalen Speicher zu nutzen.

In der folgenden Tabelle sind die zu verwendenden Daten zusammengefasst, je nachdem, welche Arten von Datenübertragungen Sie unterstützen möchten:

So unterstützen Sie Gebrauchen
Zusammengesetzte Dokumente
IDataObject-
Übertragungen durch Ziehen und Ablegen
IDataObject, IDropSource, IDropTarget, DoDragDrop- (oder das entsprechende)
Zwischenablageübertragungen ausschließlich mit globalem Speicher
ZWISCHENABLAGE-API-
Zwischenablageübertragungen mit anderen Exchange-Medien als dem globalen Speicher.
IDataObject-
Zwischenablageübertragungen werden jetzt übertragen, aber später ziehen und ablegen oder zusammengesetzte Dokumente ablegen
IDataObject- und die oben aufgeführten Schnittstellen und Funktionen für "Drag and Drop Transfers"

Wenn ein Benutzer einen Datenübertragungsvorgang initiiert, erstellt die Quellanwendung eine Instanz von IDataObject- und stellt die Daten in einem oder mehreren Formaten zur Verfügung. Bei einer Zwischenablageübertragung ruft die Anwendung die OleSetClipboard--Funktion auf, um einen Datenobjektzeiger an OLE zu übergeben. (OleSetClipboard- bietet auch Standarddatenformate für OLE-Version 1 und Nicht-OLE-Anwendungen.) In einer Drag and Drop-Übertragung ruft die Anwendung stattdessen die DoDragDrop--Funktion auf.

Auf der empfangenden Seite der Übertragung empfängt das Ziel den IDataObject Zeiger entweder als Argument auf einen Aufruf von IDropTarget::D rop oder durch Aufrufen der OleSetClipboard--Funktion, je nachdem, ob die Übertragung mittels Ziehen und Ablegen oder zwischenablage erfolgt. Nachdem sie diesen Zeiger abgerufen haben, ruft das Ziel IDataObject::EnumFormatEtc auf, um zu erfahren, welche Formate zum Abrufen verfügbar sind und welche Medientypen abgerufen werden können. Die empfangende Anwendung fordert mit diesen Informationen die Daten mit einem Aufruf von IDataObject::GetDataan.

Datenübertragung