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.