Freigeben über


IDataObject::GetDataHere-Methode (objidl.h)

Wird von einem Daten consumer aufgerufen, um Daten aus einem Quelldatenobjekt abzurufen. Diese Methode unterscheidet sich von der GetData-Methode darin, dass der Aufrufer das angegebene Speichermedium zuordnen und freigeben muss.

Syntax

HRESULT GetDataHere(
  [in]      FORMATETC *pformatetc,
  [in, out] STGMEDIUM *pmedium
);

Parameter

[in] pformatetc

Ein Zeiger auf die FORMATETC-Struktur , die das Format, das Medium und das Zielgerät definiert, das beim Übergeben der Daten verwendet werden soll. In tymed kann nur ein Medium angegeben werden, und nur die folgenden Werte sind gültig: TYMED_ISTORAGE, TYMED_ISTREAM, TYMED_HGLOBAL oder TYMED_FILE.

[in, out] pmedium

Ein Zeiger auf die STGMEDIUM-Struktur , der das Speichermedium definiert, das die übertragenen Daten enthält. Das Medium muss vom Aufrufer zugeordnet und von GetDataHere ausgefüllt werden. Der Aufrufer muss das Medium auch freigeben. Die Implementierung dieser Methode muss immer den Wert NULL für das punkForRelease-Element der STGMEDIUM-Struktur bereitstellen, auf die dieser Parameter verweist.

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 pformatetc 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-Parameter ist ungültig.
E_OUTOFMEMORY
Für diesen Vorgang war nicht genügend Arbeitsspeicher verfügbar.

Hinweise

Die GetDataHere-Methode ähnelt IDataObject::GetData, mit dem Unterschied, dass der Aufrufer das in pmedium angegebene Medium zuordnen und freigeben muss. GetDataHere rendert die in einer FORMATETC-Struktur beschriebenen Daten und kopiert die Daten in die vom Aufrufer bereitgestellte STGMEDIUM-Struktur . Wenn das Medium beispielsweise TYMED_HGLOBAL ist, kann diese Methode die Größe des Mediums nicht ändern oder eine neue hGlobal-Methode zuweisen.

Einige Medien sind für einen Aufruf von GetDataHere nicht geeignet, einschließlich GDI-Typen wie Metadateien. Die GetDataHere-Methode kann keine Daten in eine vom Aufrufer bereitgestellte Metadatei einfügen. Im Allgemeinen sind die einzigen Speichermedien, die in dieser Methode unterstützt werden müssen, TYMED_ISTORAGE, TYMED_ISTREAM und TYMED_FILE.

Wenn das Übertragungsmedium ein Stream ist, trifft OLE Annahmen darüber, wo die Daten zurückgegeben werden und die Position des Suchzeigers des Datenstroms. In einem GetData-Aufruf werden die zurückgegebenen Daten von der Streamposition 0 bis kurz vor dem aktuellen Suchzeiger des Datenstroms (d.a. der Position beim Beenden) zurückgegeben. Für GetDataHere stammen die zurückgegebenen Daten von der Streamposition beim Einstieg durch kurz vor der Position beim Beenden.

Anforderungen

   
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