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 |
---|---|
|
Der Wert für lindex ist ungültig. derzeit wird nur -1 unterstützt. |
|
Der Wert für pformatetcIn ist ungültig. |
|
Der tymed-Wert ist ungültig. |
|
Der dwAspect-Wert ist ungültig. |
|
Die Objektanwendung wird nicht ausgeführt. |
|
Beim Zuweisen des Mediums ist ein Fehler aufgetreten. |
|
Ein unerwarteter Fehler ist aufgetreten. |
|
Der dwDirection-Wert ist ungültig. |
|
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 |