The DataSource interface is implemented by MSHTML for the CDoc class. It is closely tied to another interface, DataSourceListener. The IIDs are

DataSource {7C0FFAB3-CD84-11D0-949A-00A0C91110ED}
DataSourceListener {7C0FFAB2-CD84-11D0-949A-00A0C91110ED}

This interface is not the IDataSource interface that is documented in the Platform SDK and defined in the CDOEX.H and CDOSYS.H headers. It is the same as the different interface that Microsoft documents as IDataSource in the OLE DB Simple Provider (OSP) Toolkit. While it is not plainly documented under the same name as used by MSHTML, it is here treated as undocumented.


The DataSource methods are:

Offset Name
0x0C getDataMember
0x10 getDataMemberName
0x14 getDataMemberCount
0x18 addDataSourceListener
0x1C removeDataSourceListener

The DataSourceListener methods are:

Offset Name
0x0C dataMemberChanged
0x10 dataMemberAdded
0x14 dataMemberRemoved


The following are known from the MSHTML symbol file:

HRESULT getDataMember (PWSTR, REFIID, IUnknown **);
HRESULT getDataMemberName (LONG, PWSTR *);
HRESULT getDataMemberCount (LONG *);
HRESULT addDataSourceListener (DataSourceListener *);
HRESULT removeDataSourceListener (DataSourceListener *);


HRESULT dataMemberChanged (PWSTR);
HRESULT dataMemberAdded (PWSTR);
HRESULT dataMemberRemoved (PWSTR);