IOleObject::GetClipboardData

This method retrieves a data object that contains the current contents of the embedded object on which this method is called. Using the pointer to this data object, it is possible to create a new embedded object with the same data as the original.

At a Glance

Header file: Oleidl.h
Windows CE versions: 2.0 and later

Syntax

HRESULT GetClipboardData( DWORD dwReserved,
IDataObject **
ppDataObject );

Parameters

dwReserved

[in] Reserved for future use; set to zero.

ppDataObject

[out] Address of IDataObject* pointer variable that receives the interface pointer to the data object. If an error occurs, *ppDataObject must be set to NULL. Each time an object receives a call to GetClipboardData, it must increase the reference count on *ppDataObject. It is the caller’s responsibility to call Release when it is done with *ppDataObject.

Return Values

One of the values described in the following table is returned.

Value Description
S_OK The data transfer object is successfully returned.
E_NOTIMPL GetClipboardData is not supported.
OLE_E_NOTRUNNING The object is not running.

Remarks

You can use the GetClipboardData method to convert a linked object to an embedded object, in which case the container application would call IOleObject::GetClipboardData and then pass the data received to OleCreateFromData. This method returns a pointer to a data object that is identical to what would have been passed to the Clipboard by a standard copy operation.

Notes to Callers

If you want a stable snapshot of the current contents of an embedded object, call IOleObject::GetClipboardData. Should the data change, you will need to call the function again for an updated snapshot. If you want the caller to be informed of changes that occur to the data, call IDataObject::QueryInterface, then call IDataObject::DAdvise.

Notes to Implementers

If you implement this function, you must return an IDataObject pointer for an object whose data will not change.