📄 mapxdataset.h
字号:
// MapXDataset.h : Declaration of the CMapXSampleDataset
#ifndef __MAPXDATASET_H_
#define __MAPXDATASET_H_
#include "resource.h" // main symbols
#include "mdatasetint.i"
#include "mmapxcolumninfo.i"
// TODO: change this ID to be the ID of your dataset.
#define DATASETENGINE_ID 2000
class CMapXColumnInfoContainer
{
public:
IClassFactory* m_pColumnInfoFactory;
long m_lCols;
IMMapXColumnInfo **cols;
void InitColumns(long);
void InitColumn(long, BSTR, VARTYPE, long);
void DestroyColumns();
CMapXColumnInfoContainer() {m_lCols = 0; cols = NULL; m_pColumnInfoFactory=NULL;}
~CMapXColumnInfoContainer();
};
/////////////////////////////////////////////////////////////////////////////
// CMapXSampleDataset
class ATL_NO_VTABLE CMapXSampleDataset :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMapXSampleDataset, &CLSID_MapXSampleDataset>,
public IMMapXStaticDataset,
public IMMapXDynamicDataset,
public IMMapXColumnInfoContainer,
public CMapXColumnInfoContainer
{
protected:
public:
CMapXSampleDataset();
~CMapXSampleDataset();
DECLARE_REGISTRY(CMapXSampleDataset, "CMapXSampleDataset1.0", "CMapXSampleDataset", 0, 0)
DECLARE_NOT_AGGREGATABLE(CMapXSampleDataset)
BEGIN_COM_MAP(CMapXSampleDataset)
COM_INTERFACE_ENTRY2(IMMapXDataset, IMMapXDynamicDataset)
COM_INTERFACE_ENTRY(IMMapXStaticDataset)
COM_INTERFACE_ENTRY(IMMapXDynamicDataset)
COM_INTERFACE_ENTRY(IMMapXColumnInfoContainer)
END_COM_MAP()
// IMapXStaticDataset
public:
STDMETHOD(Init)(short sType, VARIANT* pvSourceData, VARIANT* pvFields);
STDMETHOD(GetSample)(long lColNum, long lNumSampleValuesRequested, VARTYPE vtRequested, VARIANT * pvarData, long * pNumRecordsFetched);
STDMETHOD(FetchData)(long lColNum, long lIdxRow, VARTYPE vtRequested, VARIANT* pvarData, BOOL * pbNoMoreData);
STDMETHOD(BeginFetch)();
STDMETHOD(EndFetch)();
// IMMapXDynamicDataset
public:
STDMETHOD(FetchData)(long lColNum, long lKeyColNum, BSTR bstrKey, long lRefineColNum, BSTR bstrRefiningKey, VARTYPE vtRequested, VARIANT *pvarData);
// IMMapXColumnInfoContainer
public:
STDMETHOD(GetColumnInfoByName)(BSTR bstrColumnName, IMMapXColumnInfo** ppIMMapXColumnInfo);
STDMETHOD(GetColumnInfoByIndex)(long lIndex, IMMapXColumnInfo** ppIMMapXColumnInfo);
STDMETHOD(GetColumnInfoEnumerator)(IMEnumMapXColumnInfo** ppIMEnumMapXColumnInfo);
};
class CMEnumMapXColumnInfo :
public CComObjectRoot,
public CComEnumImpl<IMEnumMapXColumnInfo, &IID_IMEnumMapXColumnInfo,
IMMapXColumnInfo*, _CopyInterface<IMMapXColumnInfo> >
{
// Construction/Destruction
public:
CMEnumMapXColumnInfo() {};
virtual ~CMEnumMapXColumnInfo() {};
typedef CComEnumImpl<IMEnumMapXColumnInfo, &IID_IMEnumMapXColumnInfo, IMMapXColumnInfo*, _CopyInterface<IMMapXColumnInfo> > CComEnumBase;
// ATL's COM map, synthesizes QI
BEGIN_COM_MAP(CMEnumMapXColumnInfo)
COM_INTERFACE_ENTRY_IID(IID_IMEnumMapXColumnInfo, CComEnumBase)
END_COM_MAP()
DECLARE_NOT_AGGREGATABLE(CMEnumMapXColumnInfo)
// Unimplemented
private:
CMEnumMapXColumnInfo(const CMEnumMapXColumnInfo &);
CMEnumMapXColumnInfo &operator=(const CMEnumMapXColumnInfo &);
};
#endif //__MAPXDATASET_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -