Renders the data described in the specified FORMATETC structure and transfers it through the specified STGMEDIUM structure. The caller then assumes responsibility for releasing the STGMEDIUM structure. You use this method when you want to transfer data from a source object to a target.


FORMATETC * pFormatetc,
//Points to the data and formats to be transferred
STGMEDIUM * pmedium
//Points to the storage medium in which the returned data is transferred



[in]Points to the format, media, and target device to use when passing the data. If you specify more than one medium by using the Boolean OR operator on the value specified in TYMED, IDataObject::GetData chooses the medium that best represents the data, does the allocation, and decides what is responsible for the release. The decision is indicated through the value returned in the IUnknown returned as part of pmedium.


[out]Points to the storage medium containing the returned data. The medium is allocated and filled in by IDataObject::GetData. STGMEDIUM includes a value for the IUnknown to call for releasing the medium.

Return Values


Data was successfully retrieved and placed in the storage medium provided.


One or more arguments are invalid.


An unexpected error occurred.


The system did not retrieve data because it ran out of memory.


Invalid value for lindex; currently, only -1 is supported.


Invalid value for pFormatetc.


Invalid tymed value.


Invalid dwAspect value.


Object application is not running.


An error occurred when allocating the medium.


The IDataObject::GetData method must check all fields in the FORMATETC structure. It is important that IDataObject::GetData renders the requested aspect and, if possible, uses the requested medium. If the data object cannot comply with the information specified in the FORMATETC, DV_E_FORMATETC is returned. If an attempt to allocate the medium fails, STG_E_MEDIUMFULL is returned. It is important to fill in all of the fields in the STGMEDIUM.

Although the caller can specify more than one medium for returning the data, only one medium can actually be returned. The IDataObject::GetData method chooses which medium to return. If this initial transfer fails, this method can try one of the other media specified before returning an error.

Data transferred across a stream extends from position zero of the stream pointer through to the position immediately before the current stream pointer (that is, the stream pointer position upon exit).

See Also

IDataObject::GetDataHere, IDataObject::SetData, FORMATETC, STGMEDIUM

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database