IDataObject

The IDataObject interface provides data transfer capabilities and notification of changes in data. The format of the transferred data is specified along with the medium through which OLE transfers the data. Optionally, the data can be rendered for a specific target device. In addition to retrieving and storing data, the IDataObject interface contains methods to enumerate available formats and to set up an advisory sink for handling change notifications.

A data object is an object that contains an IDataObject implementation. Data objects may support all or some of the functions available through the IDataObject interface. For example, some data objects do not allow callers to send them data. Other data objects do not support advisory connections and change notifications. However, for those data objects that do support change notifications, OLE provides an object called a data advise holder. Since a data object can have multiple connections, each with their own set of attributes, managing these connections and sending the appropriate notifications gets complex. The data advise holder exists to simplify this task.

When to Implement

You implement the IDataObject interface if you are developing a container or server application that is capable of transferring data. For example, if your application allows its data to be pasted or dropped into another application, you must implement the IDataObject interface.

OLE provides implementations for its default object handler and its cache.

When to Use

Any application that can receive data uses the methods in the IDataObject interface.

When you call the methods in the IDataObject interface, you specify a format, a medium, and, optionally, a target device for which the data should be rendered. If you want to be notified when the data changes, you can set up an advisory connection through which notifications can be sent.

Methods in VTable Order

IUnknown Methods
Description
QueryInterface
Returns pointers to supported interfaces.
AddRef
Increments reference count.
Release
Decrements reference count.

IDataObject Methods
Description
GetData
Renders the data described in a FORMATETC structure and transfers it through the STGMEDIUM structure.
GetDataHere
Renders the data described in a FORMATETC structure and transfers it through the STGMEDIUM structure allocated by the caller.
QueryGetData
Determines whether the data object is capable of rendering the data described in the FORMATETC structure.
GetCanonicalFormatEtc
Provides a potentially different but logically equivalent FORMATETC structure.
SetData
Provides the source data object with data described by a FORMATETC structure and an STGMEDIUM structure.
EnumFormatEtc
Returns an object to enumerate the FORMATETC supported by the data object.
DAdvise
Creates a connection between a data object and an advise sink so the advise sink can receive notifications of changes in the data object.
DUnadvise
Destroys a notification previously set up with DAdvise.
EnumDAdvise
Returns an object to enumerate the current advisory connections.

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