IDataObject::GetData

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.

HRESULT GetData(

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
);

Parameters

pFormatetc

[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.

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

S_OK

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

E_INVALIDARG

One or more arguments are invalid.

E_UNEXPECTED

An unexpected error occurred.

E_OUTOFMEMORY

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

DV_E_LINDEX

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

DV_E_FORMATETC

Invalid value for pFormatetc.

DV_E_TYMED

Invalid tymed value.

DV_E_DVASPECT

Invalid dwAspect value.

OLE_E_NOTRUNNING

Object application is not running.

STG_E_MEDIUMFULL

An error occurred when allocating the medium.

Comments

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
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database