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