Informationen zur Zwischenablage

Die Zwischenablage besteht aus einer Reihe von Funktionen und Meldungen, mit denen Anwendungen Daten übertragen können. Da alle Anwendungen Zugriff auf die Zwischenablage haben, können Daten problemlos zwischen Anwendungen oder innerhalb einer Anwendung übertragen werden.

Die Zwischenablage ist benutzergesteuert. Ein Fenster sollte Daten nur als Reaktion auf einen Befehl des Benutzers in die Zwischenablage oder aus der Zwischenablage übertragen. Ein Fenster darf die Zwischenablage nicht verwenden, um Daten ohne das Wissen des Benutzers zu übertragen.

Ein Speicherobjekt in der Zwischenablage kann ein beliebiges Datenformat aufweisen, das als Zwischenablageformat bezeichnet wird. Jedes Format wird durch einen ganzzahligen Wert ohne Vorzeichen identifiziert. Bei standardmäßigen (vordefinierten) Zwischenablageformaten ist dieser Wert eine Konstante, die in Winuser.h definiert ist; für registrierte Zwischenablageformate ist dies der Rückgabewert der Funktion RegisterClipboardFormat .

Mit Ausnahme der Registrierung von Zwischenablageformaten führen einzelne Fenster die meisten Zwischenablagevorgänge aus. In der Regel überträgt eine Fensterprozedur Informationen an oder aus der Zwischenablage als Reaktion auf die WM_COMMAND Nachricht.

In diesem Abschnitt wird Folgendes erläutert:

Zwischenablagebefehle

Ein Benutzer führt in der Regel Zwischenablagevorgänge durch Auswählen von Befehlen im Menü Bearbeiten einer Anwendung aus. Es folgt eine kurze Beschreibung der Standardbefehle der Zwischenablage.

Get-Help Beschreibung
Ausschneiden Platziert eine Kopie der aktuellen Auswahl in der Zwischenablage und löscht die Auswahl aus dem Dokument. Der vorherige Inhalt der Zwischenablage wird zerstört.
Kopieren Platziert eine Kopie der aktuellen Auswahl in der Zwischenablage. Das Dokument bleibt unverändert. Der vorherige Inhalt der Zwischenablage wird zerstört.
Einfügen Ersetzt die aktuelle Auswahl durch den Inhalt der Zwischenablage. Der Inhalt der Zwischenablage wird nicht geändert.
Löschen Löscht die aktuelle Auswahl aus dem Dokument. Der Inhalt der Zwischenablage wird nicht geändert. Dieser Befehl umfasst nicht die Zwischenablage, sollte aber mit den Zwischenablagebefehlen im Menü Bearbeiten angezeigt werden.

 

Zwischenablagesequenznummer

Die Zwischenablage für jede Fensterstation verfügt über eine zugeordnete Zwischenablagesequenznummer. Diese Zahl wird immer dann erhöht, wenn sich der Inhalt der Zwischenablage ändert. Um die Zwischenablagesequenznummer abzurufen, rufen Sie die GetClipboardSequenceNumber-Funktion auf.

Zwischenablage-Viewer

Eine Zwischenablageanzeige ist ein Fenster, in dem der aktuelle Inhalt der Zwischenablage angezeigt wird. Das Zwischenablageanzeigefenster ist ein Benutzerkomfort und wirkt sich nicht auf die Datentransaktionsfunktionen der Zwischenablage aus.

In der Regel kann ein Zwischenablageanzeigefenster mindestens die drei gängigsten Formate anzeigen: CF_TEXT, CF_BITMAP und CF_METAFILEPICT. Wenn ein Fenster keine Daten in einem dieser drei Formate zur Verfügung stellt, sollte es Daten in einem Anzeigeformat bereitstellen oder das Format "Besitzer-Anzeige" verwenden.

Eine Zwischenablageanzeigekette ist die Verknüpfung von zwei oder mehr Entitäten, sodass sie für den Vorgang voneinander abhängig sind. Diese Interdependenz (Kette) ermöglicht es allen ausgeführten Zwischenablage-Viewer-Anwendungen, die Nachrichten zu empfangen, die an die aktuelle Zwischenablage gesendet werden.

Die folgenden Themen werden in diesem Abschnitt erläutert.

Zwischenablage-Viewer

Ein Fenster fügt sich selbst zur Zwischenablage-Viewerkette hinzu, indem die SetClipboardViewer-Funktion aufgerufen wird. Der Rückgabewert ist das Handle zum nächsten Fenster in der Kette. Um das Handle zum ersten Fenster in der Kette abzurufen, rufen Sie die GetClipboardViewer-Funktion auf.

Jedes Zwischenablageanzeigefenster muss das nächste Fenster in der Zwischenablageanzeigekette nachverfolgen. Wenn sich der Inhalt der Zwischenablage ändert, sendet das System eine WM_DRAWCLIPBOARD Nachricht an das erste Fenster in der Kette. Nach dem Aktualisieren der Anzeige muss jedes Zwischenablageanzeigefenster diese Meldung an das nächste Fenster in der Kette übergeben.

Vor dem Schließen muss sich ein Zwischenablageanzeigefenster aus der Zwischenablage-Viewerkette entfernen, indem die ChangeClipboardChain-Funktion aufgerufen wird. Das System sendet dann eine WM_CHANGECBCHAIN Nachricht an das erste Fenster in der Kette.

Weitere Informationen zum Verarbeiten der WM_DRAWCLIPBOARD - und WM_CHANGECBCHAIN-Nachrichten finden Sie unter Erstellen eines Zwischenablageanzeigefensters.

Anzeigeformate

Ein Anzeigeformat ist ein Zwischenablageformat, das zum Anzeigen von Informationen in einem Zwischenablageanzeigefenster verwendet wird. Ein Zwischenablagebesitzer, der ein privates oder registriertes Zwischenablageformat und keins der gängigsten Standardformate verwendet, muss Daten in einem Anzeigeformat für die Anzeige in einem Zwischenablageanzeigefenster bereitstellen. Die Anzeigeformate sind nur für die Anzeige vorgesehen und dürfen nicht in ein Dokument eingefügt werden.

Die vier Anzeigeformate sind CF_DSPBITMAP, CF_DSPMETAFILEPICT, CF_DSPTEXT und CF_DSPENHMETAFILE. Diese Anzeigeformate werden auf die gleiche Weise gerendert wie die Standardformate: CF_BITMAP, CF_TEXT, CF_METAFILEPICT und CF_ENHMETAFILE.

Besitzeranzeigeformat

Für einen Zwischenablagebesitzer, der keines der gängigen Standard-Zwischenablageformate verwendet, besteht eine Alternative zur Bereitstellung eines Anzeigeformats darin, das Zwischenablageformat "Besitzer-Anzeige" (CF_OWNERDISPLAY) zu verwenden.

Durch die Verwendung des Besitzer-Anzeigeformats kann ein Besitzer der Zwischenablage den Mehraufwand beim Rendern von Daten in einem zusätzlichen Format vermeiden, indem er die direkte Kontrolle über das Malen des Zwischenablageanzeigefensters übernimmt. Das Zwischenablageanzeigefenster sendet Nachrichten an den Besitzer der Zwischenablage, wenn ein Teil des Fensters neu gestrichen werden muss oder wenn das Fenster scrollt oder die Größe geändert wird.

Standard-Zwischenablageformate