// CVcDataGrid.h : 由 Microsoft Visual C++ 创建的 ActiveX 控件包装器类的声明

#pragma once

/////////////////////////////////////////////////////////////////////////////
// CVcDataGrid

class CVcDataGrid : public COleDispatchDriver
{
public:
	CVcDataGrid() {}		// 调用 COleDispatchDriver 默认构造函数
	CVcDataGrid(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
	CVcDataGrid(const CVcDataGrid& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}

// 特性
public:

// 操作
public:

	short get_ColumnCount()
	{
		short result;
		InvokeHelper(0x1, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, nullptr);
		return result;
	}
	void put_ColumnCount(short newValue)
	{
		static BYTE parms[] = VTS_I2 ;
		InvokeHelper(0x1, DISPATCH_PROPERTYPUT, VT_EMPTY, nullptr, parms, newValue);
	}
	short get_ColumnLabelCount()
	{
		short result;
		InvokeHelper(0x2, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, nullptr);
		return result;
	}
	void put_ColumnLabelCount(short newValue)
	{
		static BYTE parms[] = VTS_I2 ;
		InvokeHelper(0x2, DISPATCH_PROPERTYPUT, VT_EMPTY, nullptr, parms, newValue);
	}
	short get_RowLabelCount()
	{
		short result;
		InvokeHelper(0x3, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, nullptr);
		return result;
	}
	void put_RowLabelCount(short newValue)
	{
		static BYTE parms[] = VTS_I2 ;
		InvokeHelper(0x3, DISPATCH_PROPERTYPUT, VT_EMPTY, nullptr, parms, newValue);
	}
	short get_RowCount()
	{
		short result;
		InvokeHelper(0x4, DISPATCH_PROPERTYGET, VT_I2, (void*)&result, nullptr);
		return result;
	}
	void put_RowCount(short newValue)
	{
		static BYTE parms[] = VTS_I2 ;
		InvokeHelper(0x4, DISPATCH_PROPERTYPUT, VT_EMPTY, nullptr, parms, newValue);
	}
	void DeleteColumns(short Column, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0x5, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, Column, Count);
	}
	void InsertColumns(short Column, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0x6, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, Column, Count);
	}
	void DeleteColumnLabels(short LabelIndex, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0x7, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, LabelIndex, Count);
	}
	void InsertColumnLabels(short LabelIndex, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0x8, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, LabelIndex, Count);
	}
	void DeleteRows(short Row, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0x9, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, Row, Count);
	}
	void InsertRows(short Row, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0xa, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, Row, Count);
	}
	void DeleteRowLabels(short LabelIndex, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0xb, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, LabelIndex, Count);
	}
	void InsertRowLabels(short LabelIndex, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0xc, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, LabelIndex, Count);
	}
	void RandomDataFill()
	{
		InvokeHelper(0xd, DISPATCH_METHOD, VT_EMPTY, nullptr, nullptr);
	}
	void SetSize(short RowLabelCount, short ColumnLabelCount, short DataRowCount, short DataColumnCount)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 VTS_I2 VTS_I2 ;
		InvokeHelper(0xe, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, RowLabelCount, ColumnLabelCount, DataRowCount, DataColumnCount);
	}
	void InitializeLabels()
	{
		InvokeHelper(0xf, DISPATCH_METHOD, VT_EMPTY, nullptr, nullptr);
	}
	void RandomFillColumns(short Column, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0x10, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, Column, Count);
	}
	void RandomFillRows(short Row, short Count)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0x11, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, Row, Count);
	}
	void MoveData(short Top, short Left, short Bottom, short Right, short OverOffset, short DownOffset)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 VTS_I2 VTS_I2 VTS_I2 VTS_I2 ;
		InvokeHelper(0x12, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, Top, Left, Bottom, Right, OverOffset, DownOffset);
	}
	void GetData(short Row, short Column, double * DataPoint, short * nullFlag)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 VTS_PR8 VTS_PI2 ;
		InvokeHelper(0x13, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, Row, Column, DataPoint, nullFlag);
	}
	void SetData(short Row, short Column, double DataPoint, short nullFlag)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 VTS_R8 VTS_I2 ;
		InvokeHelper(0x14, DISPATCH_METHOD, VT_EMPTY, nullptr, parms, Row, Column, DataPoint, nullFlag);
	}
	CString get_ColumnLabel(short Column, short LabelIndex)
	{
		CString result;
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, parms, Column, LabelIndex);
		return result;
	}
	void put_ColumnLabel(short Column, short LabelIndex, LPCTSTR newValue)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 VTS_BSTR ;
		InvokeHelper(0x15, DISPATCH_PROPERTYPUT, VT_EMPTY, nullptr, parms, Column, LabelIndex, newValue);
	}
	CString get_CompositeColumnLabel(short Column)
	{
		CString result;
		static BYTE parms[] = VTS_I2 ;
		InvokeHelper(0x16, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, parms, Column);
		return result;
	}
	CString get_CompositeRowLabel(short Row)
	{
		CString result;
		static BYTE parms[] = VTS_I2 ;
		InvokeHelper(0x17, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, parms, Row);
		return result;
	}
	CString get_RowLabel(short Row, short LabelIndex)
	{
		CString result;
		static BYTE parms[] = VTS_I2 VTS_I2 ;
		InvokeHelper(0x18, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, parms, Row, LabelIndex);
		return result;
	}
	void put_RowLabel(short Row, short LabelIndex, LPCTSTR newValue)
	{
		static BYTE parms[] = VTS_I2 VTS_I2 VTS_BSTR ;
		InvokeHelper(0x18, DISPATCH_PROPERTYPUT, VT_EMPTY, nullptr, parms, Row, LabelIndex, newValue);
	}


};