Freigeben über


Zwischenablage: Hinzufügen anderer Formate

In diesem Thema wird erläutert, wie Sie die Liste der unterstützten Formate erweitern, insbesondere für die OLE-Unterstützung. Das Thema Zwischenablage: Kopieren und Einfügen von Daten beschreibt die minimale Implementierung, die erforderlich ist, um das Kopieren und Einfügen aus der Zwischenablage zu unterstützen. Wenn Dies alles ist, was Sie implementieren, sind die einzigen Formate, die in der Zwischenablage platziert werden , CF_METAFILEPICT, CF_EMBEDSOURCE, CF_OBJECTDESCRIPTOR und möglicherweise CF_LINKSOURCE. Die meisten Anwendungen benötigen mehr Formate in der Zwischenablage als diese drei.

Registrieren von benutzerdefinierten Formaten

Um eigene benutzerdefinierte Formate zu erstellen, befolgen Sie dasselbe Verfahren, das Sie beim Registrieren eines benutzerdefinierten Zwischenablageformats verwenden würden: Übergeben Sie den Namen des Formats an die RegisterClipboardFormat-Funktion , und verwenden Sie den Rückgabewert als Format-ID.

Platzieren von Formaten in der Zwischenablage

Wenn Sie weitere Formate zu den in der Zwischenablage platzierten Formaten hinzufügen möchten, müssen Sie die OnGetClipboardData Funktion in der Von ihnen COleClientItem abgeleiteten Klasse überschreiben oder COleServerItem (je nachdem, ob die zu kopierenden Daten systemeigene Daten sind). In dieser Funktion sollten Sie das folgende Verfahren verwenden.

So platzieren Sie Formate in der Zwischenablage

  1. Erstellen eines COleDataSource-Objekts

  2. Übergeben Sie diese Datenquelle an eine Funktion, die die systemeigenen Datenformate zur Liste der unterstützten Formate durch Aufrufen COleDataSource::CacheGlobalDatahinzufügt.

  3. Fügen Sie Standardformate hinzu, indem Sie für jedes Standardformat, das Sie unterstützen möchten, aufrufen COleDataSource::CacheGlobalData .

Diese Technik wird im MFC OLE-Beispielprogramm HIERSVR verwendet (untersuchen Sie die OnGetClipboardData Memberfunktion der CServerItem-Klasse ). Der einzige Unterschied in diesem Beispiel besteht darin, dass Schritt 3 nicht implementiert wird, da HIERSVR keine anderen Standardformate unterstützt.

Was möchten Sie mehr über

Siehe auch

Zwischenablage: Verwenden des OLE-Zwischenablagemechanismus