You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.3 KiB
103 lines
3.3 KiB
//+-----------------------------------------------------------------------
|
|
//
|
|
// TDC / STD Notifications
|
|
// Copyright (C) Microsoft Corporation, 1996, 1997
|
|
//
|
|
// File: Notify.h
|
|
//
|
|
// Contents: Declaration of the CEventBroker class.
|
|
// This class translates internal TDC / STD events into
|
|
// appropriate notifications for the external world.
|
|
//
|
|
//------------------------------------------------------------------------
|
|
|
|
#include "msdatsrc.h"
|
|
|
|
template <class T> class CMyBindStatusCallback;
|
|
class CTDCCtl;
|
|
|
|
interface DATASRCListener : public IUnknown
|
|
{
|
|
STDMETHOD(datasrcChanged)(BSTR bstrQualifier, BOOL fDataAvail);
|
|
};
|
|
|
|
//------------------------------------------------------------------------
|
|
//
|
|
// CEventBroker
|
|
//
|
|
// This class translates internal STD / TDC events into appropriate
|
|
// notifications for the outside world.
|
|
//
|
|
//------------------------------------------------------------------------
|
|
|
|
class CEventBroker
|
|
{
|
|
public:
|
|
STDMETHOD_(ULONG,AddRef) (THIS);
|
|
STDMETHOD_(ULONG,Release) (THIS);
|
|
// ;begin_internal
|
|
STDMETHOD(SetDATASRCListener)(DATASRCListener *);
|
|
// ;end_internal
|
|
STDMETHOD(SetDataSourceListener)(DataSourceListener *);
|
|
STDMETHOD(SetSTDEvents)(OLEDBSimpleProviderListener *);
|
|
inline DataSourceListener *GetDataSourceListener();
|
|
inline DATASRCListener *GetDATASRCListener();
|
|
inline OLEDBSimpleProviderListener *GetSTDEvents();
|
|
|
|
CEventBroker(CTDCCtl *pReadyStateControl);
|
|
~CEventBroker();
|
|
|
|
STDMETHOD(aboutToChangeCell)(LONG iRow, LONG iCol);
|
|
STDMETHOD(cellChanged)(LONG iRow, LONG iCol);
|
|
STDMETHOD(aboutToDeleteRows)(LONG iRowStart, LONG iRowCount);
|
|
STDMETHOD(deletedRows)(LONG iRowStart, LONG iRowCount);
|
|
STDMETHOD(aboutToInsertRows)(LONG iRowStart, LONG iRowCount);
|
|
STDMETHOD(insertedRows)(LONG iRowStart, LONG iRowCount);
|
|
STDMETHOD(rowsAvailable)(LONG iRowStart, LONG iRowCount);
|
|
|
|
STDMETHOD(RowChanged)(LONG iRow);
|
|
STDMETHOD(ColChanged)(LONG iCol);
|
|
// ;begin_internal
|
|
#ifdef NEVER
|
|
STDMETHOD(DeletedCols)(LONG iColStart, LONG iColCount);
|
|
STDMETHOD(InsertedCols)(LONG iColStart, LONG iColCount);
|
|
#endif
|
|
// ;end_internal
|
|
STDMETHOD(STDLoadStarted)(CComObject<CMyBindStatusCallback<CTDCCtl> > *pBSC,
|
|
boolean fAppending);
|
|
STDMETHOD(STDLoadCompleted)();
|
|
STDMETHOD(STDLoadStopped)();
|
|
STDMETHOD(STDLoadedHeader)();
|
|
STDMETHOD(STDDataSetChanged)();
|
|
|
|
STDMETHOD(GetReadyState)(LONG *plReadyState);
|
|
STDMETHOD(UpdateReadyState)(LONG lReadyState);
|
|
CMyBindStatusCallback<CTDCCtl> *m_pBSC;
|
|
|
|
private:
|
|
ULONG m_cRef; // interface reference count
|
|
DataSourceListener *m_pDataSourceListener;
|
|
// ;begin_internal
|
|
DATASRCListener *m_pDATASRCListener;
|
|
// ;end_internal
|
|
OLEDBSimpleProviderListener *m_pSTDEvents;
|
|
LONG m_lReadyState;
|
|
CTDCCtl *m_pReadyStateControl;
|
|
};
|
|
|
|
inline DataSourceListener *CEventBroker::GetDataSourceListener()
|
|
{
|
|
return m_pDataSourceListener;
|
|
}
|
|
|
|
// ;begin_internal
|
|
inline DATASRCListener *CEventBroker::GetDATASRCListener()
|
|
{
|
|
return m_pDATASRCListener;
|
|
}
|
|
// ;end_internal
|
|
|
|
inline OLEDBSimpleProviderListener *CEventBroker::GetSTDEvents()
|
|
{
|
|
return m_pSTDEvents;
|
|
}
|