|
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
Related LinksSoftware for Delphi and C++ Builder developers Software for Visual Studio .NET developers Software for Visual Basic 6 developers Delphi Tips&Tricks
MegaDetailed.NET
TMS Scripter Studio Pro components for Delphi/C++Builder
More Online Helps Win32 Programmer's Reference (win32.hlp) Win32 Multimedia Programmer's Reference (mmedia.hlp) Microsoft Windows Pen API Programmer's Reference (penapi.hlp) Microsoft Windows Sockets 2 Reference (sock2.hlp) Microsoft Windows Telephony API (TAPI) Programmer's Reference (sock2.hlp) Unix Manual Pages
|