Freigeben über


Datenobjekte und Datenquellen: Manipulation

Nach einem Datenobjekt oder einer Datenquelle erstellt wurde, können Sie einige allgemeine Vorgänge zum Einfügen, wie die Daten ausführen und das Auflisten der Stile, die entfernt werden die Daten ist in usw.In diesem Artikel werden die Methoden beschrieben, die erforderlich sind, um die am häufigsten verwendeten Vorgänge auszuführen.Folgende Themen werden behandelt:

  • Einfügen von Daten in einer Datenquelle

  • Die Formate in einem Datenobjekt verfügbaren bestimmen

  • Abrufen von Daten aus einem Datenobjekt

Einfügen von Daten in einer Datenquelle

Wie Daten in einer Datenquelle eingefügt wird, hängt davon ab, ob die Daten sofort bei Bedarf oder angegeben ist, und in dem Medium er angegeben wird.Mögliche Werte sind wie folgt.

9s5z33c4.collapse_all(de-de,VS.110).gifDirekt Rendern von Daten (unmittelbar)

  • Fordern Sie wiederholt COleDataSource::CacheGlobalData einzelnen Zwischenablageformat, in dem Sie Daten angeben.Führen Sie ein Handle, das den Arbeitsspeicher, der die Daten enthält, und optional eine FORMATETC-Struktur verwendet werden soll, Zwischenablageformat, die die Daten beschreibt.

    - oder -

  • Wenn Sie direkt mit STGMEDIUM-Strukturen arbeiten möchten, rufen Sie COleDataSource::CacheData anstelle COleDataSource::CacheGlobalData in der Option oben an.

9s5z33c4.collapse_all(de-de,VS.110).gifDaten bei Bedarf angeben (verzögertes Rendering)

Dies ist ein erweitertes Thema.

  • Fordern Sie wiederholt COleDataSource::DelayRenderData einzelnen Zwischenablageformat, in dem Sie Daten angeben.Führen Sie das zu verwendende Zwischenablageformat und optional eine FORMATETC-Struktur, die die Daten beschreibt.Wenn die Daten angefordert wird, ruft das Framework COleDataSource::OnRenderData an, die Sie überschreiben müssen.

    - oder -

  • Wenn Sie ein CFile-Objekt verwenden, um die Daten anzugeben, rufen Sie anstelle COleDataSource::DelayRenderDataCOleDataSource::DelayRenderFileData in der vorausgegangenen Option an.Wenn die Daten angefordert wird, ruft das Framework COleDataSource::OnRenderFileData an, die Sie überschreiben müssen.

Die Formate in einem Datenobjekt verfügbaren bestimmen

Bevor eine Anwendung den Benutzern das Einfügen in diese Daten auftreten können, muss es wissen, ob es sich um Formate in der Zwischenablage befinden, die er verarbeiten kann.Dazu muss die Anwendung wie folgt vorgehen:

  1. Erstellen Sie ein COleDataObject-Objekt und eine FORMATETC-Struktur.

  2. Rufen Sie die AttachClipboard-Memberfunktion des Datenobjekts auf, um das Datenobjekt mit den Daten in der Zwischenablage zuzuordnen.

  3. Führen Sie eine der folgenden Aktionen aus:

    • Rufen Sie die IsDataAvailable-Memberfunktion des Datenobjekts auf, wenn es nur eine oder zwei Formate vorliegt, die Sie benötigen.Diese Zeit gespeichert, wenn die Daten in der Zwischenablage significantly more Formate als die Anwendung unterstützt.

      - oder -

    • Rufen Sie die BeginEnumFormats-Memberfunktion des Datenobjekts aufgerufen, um die Auflistung der Formate zu starten, die in der Zwischenablage verfügbar sind.Rufen Sie dann GetNextFormat bis die Zwischenablage ein Format zurückgibt, das an die Anwendung unterstützt, oder es sind keine weiteren Formate.

Wenn Sie ON_UPDATE_COMMAND_UI verwenden, können Sie die Pasten- und ggf. Inhalt einfügen-Elemente jetzt im Menü Bearbeiten aktivieren.Hierzu rufen Sie entweder CMenu::EnableMenuItem oder CCmdUI::Enable an.Weitere Informationen darüber, was mit Menüelementen Containeranwendungen ausführen möchten und wenn finden Sie unter Menüs und Ressourcen: Container-Hinzufügungen.

Abrufen von Daten aus einem Datenobjekt

Sobald Sie sich auf einem Datenformat entschieden haben, ist aller, bleibt der Daten, die vom Datenobjekt abzurufen.Hierzu entscheidet der Benutzer wo die Daten und die Anwendung ruft die entsprechende Funktion setzt.Die Daten sind in einem der folgenden Medien verfügbar:

Mittel

Anzurufen Funktion

Globaler Arbeitsspeicher (HGLOBAL)

COleDataObject::GetGlobalData

CFile(Datei)

COleDataObject::GetFileData

STGMEDIUM-Struktur (IStorage)

COleDataObject::GetData

In der Regel wird der Medium zusammen mit einem Zwischenablageformat angegeben.Beispielsweise ist ein CF_EMBEDDEDSTRUCT-Objekt immer in einem IStorage Medium, der eine STGMEDIUM-Struktur erfordert.Deshalb würden Sie GetData verwenden, da es das einzige dieser Funktionen, die eine STGMEDIUM-Struktur akzeptieren.

Für Fälle, in denen das Zwischenablageformat in einem IStream oder HGLOBAL Medium ist, kann das Framework einen Zeiger CFile bereitstellen, der die Daten verweist.Die Anwendung kann dann verwenden, um Datei lesen die Daten abgerufen werden sollen, genauso wie diese Daten können aus einer Datei importierten.Im Wesentlichen ist dies die clientseitige Schnittstelle für den OnRenderData und OnRenderFileData Routinen in der Datenquelle.

Der Benutzer kann Daten in das Dokument genauso wie für alle anderen Daten im gleichen Format jetzt einfügen.

9s5z33c4.collapse_all(de-de,VS.110).gifWorüber möchten Sie mehr erfahren?

Siehe auch

Referenz

COleDataObject-Klasse

COleDataSource-Klasse

Konzepte

Datenobjekte und Datenquellen (OLE)