Freigeben über


IDataObject::GetData-Methode (objidl.h)

Wird von einem Daten consumer aufgerufen, um Daten aus einem Quelldatenobjekt abzurufen. Die GetData-Methode rendert die in der angegebenen FORMATTC-Struktur beschriebenen Daten und überträgt sie über die angegebene STGMEDIUM-Struktur . Der Aufrufer übernimmt dann die Verantwortung für die Freigabe der STGMEDIUM-Struktur .

Syntax

HRESULT GetData(
  [in]  FORMATETC *pformatetcIn,
  [out] STGMEDIUM *pmedium
);

Parameter

[in] pformatetcIn

Ein Zeiger auf die FORMATETC-Struktur , die das Format, das Medium und das Zielgerät definiert, das beim Übergeben der Daten verwendet werden soll. Mithilfe des booleschen Operators OR können auch mehrere Medien angegeben werden, sodass die Methode das beste Medium aus den angegebenen Medien auswählen kann.

[out] pmedium

Ein Zeiger auf die STGMEDIUM-Struktur , der das Speichermedium angibt, das die zurückgegebenen Daten über das tymed-Element enthält, und die Verantwortung für die Freigabe des Mediums über den Wert des pUnkForRelease-Elements . Wenn pUnkForReleaseNULL ist, ist der Empfänger des Mediums für die Freigabe verantwortlich; andernfalls verweist pUnkForRelease auf IUnknown auf das entsprechende Objekt, sodass die Release-Methode aufgerufen werden kann. Das Medium muss von GetData zugeordnet und ausgefüllt werden.

Rückgabewert

Diese Methode gibt S_OK bei Erfolg zurück. Weitere mögliche Werte sind:

Rückgabecode Beschreibung
DV_E_LINDEX
Der Wert für lindex ist ungültig. derzeit wird nur -1 unterstützt.
DV_E_FORMATETC
Der Wert für pformatetcIn ist ungültig.
DV_E_TYMED
Der tymed-Wert ist ungültig.
DV_E_DVASPECT
Der dwAspect-Wert ist ungültig.
OLE_E_NOTRUNNING
Die Objektanwendung wird nicht ausgeführt.
STG_E_MEDIUMFULL
Beim Zuweisen des Mediums ist ein Fehler aufgetreten.
E_UNEXPECTED
Ein unerwarteter Fehler ist aufgetreten.
E_INVALIDARG
Der dwDirection-Wert ist ungültig.
E_OUTOFMEMORY
Für diesen Vorgang war nicht genügend Arbeitsspeicher verfügbar.

Hinweise

Ein Daten consumer ruft GetData auf, um Daten aus einem Datenobjekt abzurufen, das über ein Speichermedium (definiert durch die STGMEDIUM-Struktur ) übermittelt wird.

Hinweise für Anrufer

Sie können mehrere zulässige Tymed-Medien mit dem booleschen OR-Operator angeben. GetData muss aus den OR'd-Werten das Medium auswählen, das die Daten am besten darstellt, die Zuordnung durchführen und die Verantwortung für die Freigabe des Mediums angeben.

Daten, die über einen Stream übertragen werden, reichen von position null des Streamzeigers bis zur Position unmittelbar vor dem aktuellen Streamzeiger (d. a. der Position des Streamzeigers beim Beenden).

Hinweise zu Implementierern

GetData muss alle Felder in der FORMATTC-Struktur überprüfen. Es ist wichtig, dass GetData den angeforderten Aspekt rendert und nach Möglichkeit das angeforderte Medium verwendet. Wenn das Datenobjekt die im FORMATTC angegebenen Informationen nicht erfüllen kann, sollte die Methode DV_E_FORMATETC zurückgeben. Wenn ein Versuch, das Medium zuzuordnen, fehlschlägt, sollte die Methode STG_E_MEDIUMFULL zurückgeben. Es ist wichtig, alle Felder in der STGMEDIUM-Struktur auszufüllen.

Obwohl der Aufrufer mehrere Medien für die Rückgabe der Daten angeben kann, kann GetData nur ein Medium bereitstellen. Wenn bei der ersten Übertragung mit dem ausgewählten Medium ein Fehler auftritt, kann diese Methode implementiert werden, um eines der anderen angegebenen Medien zu testen, bevor ein Fehler zurückgegeben wird.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile objidl.h

Weitere Informationen

Idataobject