⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapx.cpp

📁 一个简单的Sample程序
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	static BYTE parms[] =
		VTS_I4 VTS_I4 VTS_I4 VTS_I4 VTS_I4;
	InvokeHelper(0x26, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		 hDC, X, Y, W, H);
}

void CMapX::ExportMap(LPCTSTR Destination, short Format, const VARIANT& Width, const VARIANT& Height)
{
	static BYTE parms[] =
		VTS_BSTR VTS_I2 VTS_VARIANT VTS_VARIANT;
	InvokeHelper(0x27, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		 Destination, Format, &Width, &Height);
}

void CMapX::PropertyPage()
{
	InvokeHelper(0x28, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

void CMapX::ConvertCoordV(VARIANT* ScreenX, VARIANT* ScreenY, VARIANT* MapX, VARIANT* MapY, short Direction)
{
	static BYTE parms[] =
		VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_I2;
	InvokeHelper(0x29, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		 ScreenX, ScreenY, MapX, MapY, Direction);
}

void CMapX::SetSize(long Width, long Height)
{
	static BYTE parms[] =
		VTS_I4 VTS_I4;
	InvokeHelper(0x2a, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		 Width, Height);
}

BOOL CMapX::IsPointVisible(double X, double Y)
{
	BOOL result;
	static BYTE parms[] =
		VTS_R8 VTS_R8;
	InvokeHelper(0x2b, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		X, Y);
	return result;
}

BOOL CMapX::ClipLine(double* X1, double* Y1, double* X2, double* Y2)
{
	BOOL result;
	static BYTE parms[] =
		VTS_PR8 VTS_PR8 VTS_PR8 VTS_PR8;
	InvokeHelper(0x2c, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		X1, Y1, X2, Y2);
	return result;
}

BOOL CMapX::ClipLineV(VARIANT* X1, VARIANT* Y1, VARIANT* X2, VARIANT* Y2)
{
	BOOL result;
	static BYTE parms[] =
		VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT;
	InvokeHelper(0x2d, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		X1, Y1, X2, Y2);
	return result;
}

void CMapX::AboutBox()
{
	InvokeHelper(0xfffffdd8, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

void CMapX::SaveMapAsGeoset(LPCTSTR Name, LPCTSTR Filespec)
{
	static BYTE parms[] =
		VTS_BSTR VTS_BSTR;
	InvokeHelper(0x2f, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		Name, Filespec);
}

LPDISPATCH CMapX::GetDispatch(BOOL bAddRef)
{
#ifdef CWND_MAPX
	LPUNKNOWN pUnk = GetControlUnknown();
#else
	LPUNKNOWN pUnk = m_lpDispatch;
#endif
	LPDISPATCH pDispatch;

	if ((pUnk != NULL) &&	SUCCEEDED(pUnk->QueryInterface(IID_IDispatch, (LPVOID*)&pDispatch))) {
		ASSERT(pDispatch != NULL);
		if (!bAddRef) {
			pDispatch->Release();
		}
		return pDispatch;
	}
	return NULL;
}

void CMapX::Pan(float ScreenX, float ScreenY)
{
	static BYTE parms[] =
		VTS_R4 VTS_R4;
	InvokeHelper(0x40, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		 ScreenX, ScreenY);
}

/////////////////////////////////////////////////////////////////////////////
// CMapXDatasets properties

LPENUMVARIANT CMapXDatasets::GetEnumerator()
{
	LPENUMVARIANT pEnumVariant = 0;
	LPUNKNOWN pUnknown = 0;
	GetProperty(0xfffffffc, VT_UNKNOWN, (void*)&pUnknown);	
	if(pUnknown)
	{
		pUnknown->QueryInterface(IID_IEnumVARIANT, (void**)&pEnumVariant);
		pUnknown->Release();
	}	
	return pEnumVariant;
}

long CMapXDatasets::GetCount()
{
	long result;
	GetProperty(0x1, VT_I4, (void*)&result);
	return result;
}

BOOL CMapXDatasets::GetBuildSourceRows()
{
 	BOOL result;
	GetProperty(0x7, VT_BOOL, &result);
	return result;
}

void CMapXDatasets::SetBuildSourceRows(BOOL b)
{
	SetProperty(0x7, VT_BOOL, b);
}

/////////////////////////////////////////////////////////////////////////////
// CMapXDatasets operations

CMapXDataset CMapXDatasets::Add(long Type, const VARIANT& SourceData, const VARIANT& Name, const VARIANT& GeoField, const VARIANT& SecondaryGeoField, const VARIANT& BindLayer, const VARIANT& Fields, const VARIANT& Dynamic)
{
	LPDISPATCH result;
	static BYTE parms[] =
		VTS_I4 VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT;
	InvokeHelper(0x2, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
		Type, &SourceData, &Name, &GeoField, &SecondaryGeoField, &BindLayer, &Fields, &Dynamic);
	return CMapXDataset(result);
}

CMapXDataset CMapXDatasets::Item(const VARIANT& Index)
{
	LPDISPATCH result;
	static BYTE parms[] =
		VTS_VARIANT;
	InvokeHelper(0x3, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
		&Index);
	return CMapXDataset(result);
}

void CMapXDatasets::Remove(const VARIANT& Index)
{
	static BYTE parms[] =
		VTS_VARIANT;
	InvokeHelper(0x4, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		 &Index);
}

CMapXDataset CMapXDatasets::Restore(LPCTSTR Name, const VARIANT& SourceData)
{
	LPDISPATCH result;
	static BYTE parms[] =
		VTS_BSTR VTS_VARIANT;
	InvokeHelper(0x5, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
		Name, &SourceData);
	return CMapXDataset(result);
}

void CMapXDatasets::RemoveAll()
{
	InvokeHelper(0x6, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

/////////////////////////////////////////////////////////////////////////////
// CMapXLayers properties

LPENUMVARIANT CMapXLayers::GetEnumerator()
{
	LPENUMVARIANT pEnumVariant = 0;
	LPUNKNOWN pUnknown = 0;
	GetProperty(0xfffffffc, VT_UNKNOWN, (void*)&pUnknown);	
	if(pUnknown)
	{
		pUnknown->QueryInterface(IID_IEnumVARIANT, (void**)&pEnumVariant);
		pUnknown->Release();
	}	
	return pEnumVariant;
}

long CMapXLayers::GetCount()
{
	long result;
	GetProperty(0x1, VT_I4, (void*)&result);
	return result;
}

CMapXRectangle CMapXLayers::GetClippedBounds()
{
	LPDISPATCH result;
	GetProperty(0x10, VT_DISPATCH, (void*)&result);
	return CMapXRectangle(result);
}

/////////////////////////////////////////////////////////////////////////////
// CMapXLayers operations

void CMapXLayers::ClearSelection()
{
	InvokeHelper(0x2, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

BOOL CMapXLayers::Move(short From, short To)
{
	BOOL result;
	static BYTE parms[] =
		VTS_I2 VTS_I2;
	InvokeHelper(0x3, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		From, To);
	return result;
}

CMapXLayer CMapXLayers::Add(const VARIANT& LayerInfo, const VARIANT& Position)
{
	LPDISPATCH result;
	static BYTE parms[] =
		VTS_VARIANT VTS_VARIANT;
	InvokeHelper(0x4, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
		&LayerInfo, &Position);
	return CMapXLayer(result);
}

void CMapXLayers::AddGeoSetLayers(LPCTSTR GeoSetName)
{
	static BYTE parms[] =
		VTS_BSTR;
	InvokeHelper(0x5, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		 GeoSetName);
}

CMapXLayer CMapXLayers::Item(const VARIANT& Index)
{
	LPDISPATCH result;
	static BYTE parms[] =
		VTS_VARIANT;
	InvokeHelper(0x6, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
		&Index);
	return CMapXLayer(result);
}

void CMapXLayers::Remove(const VARIANT& Index)
{
	static BYTE parms[] =
		VTS_VARIANT;
	InvokeHelper(0x7, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		 &Index);
}

CMapXLayer CMapXLayers::AddUserDrawLayer(LPCTSTR Name, short Position)
{
	LPDISPATCH result;
	static BYTE parms[] =
		VTS_BSTR VTS_I2;
	InvokeHelper(0x8, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
		Name, Position);
	return CMapXLayer(result);
}

CMapXLayer CMapXLayers::GetAnimationLayer()
{
	LPDISPATCH result;
	GetProperty(0x9, VT_DISPATCH, (void*)&result);
	return CMapXLayer(result);
}

void CMapXLayers::SetAnimationLayer(LPDISPATCH propVal)
{
	SetProperty(0x9, VT_DISPATCH, propVal);
}

CMapXRectangle CMapXLayers::GetBounds()
{
	LPDISPATCH result;
	GetProperty(0xc, VT_DISPATCH, (void*)&result);
	return CMapXRectangle(result);
}

CMapXLayer CMapXLayers::CreateLayer(LPCTSTR Name, const VARIANT& Filespec, const VARIANT& Position, const VARIANT& KeyLength, const VARIANT& CoordSys)
{
	LPDISPATCH result;
	static BYTE parms[] =
		VTS_BSTR VTS_VARIANT VTS_VARIANT VTS_VARIANT VTS_VARIANT;
	InvokeHelper(0xa, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
		Name, &Filespec, &Position, &KeyLength, &CoordSys);
	return CMapXLayer(result);
}

BOOL CMapXLayers::LayersDlg(const VARIANT& HelpFile, const VARIANT& HelpID)
{
	BOOL result;
	static BYTE parms[] =
		VTS_VARIANT VTS_VARIANT;
	InvokeHelper(0xb, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		&HelpFile, &HelpID);
	return result;
}

CMapXLayer CMapXLayers::AddServerLayer(LPCTSTR Name, LPCTSTR ConnectString, LPCTSTR Query, const VARIANT& Position, const VARIANT& Options)
{
	LPDISPATCH result;
	static BYTE parms[] =
		VTS_BSTR VTS_BSTR VTS_BSTR VTS_VARIANT VTS_VARIANT;
	InvokeHelper(0xd, DISPATCH_METHOD, VT_DISPATCH, (void*)&result, parms,
		Name, ConnectString, Query, &Position, &Options);
	return CMapXLayer(result);
}

void CMapXLayers::RemoveAll()
{
	InvokeHelper(0xe, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}


CMapXLayer CMapXLayers::GetInsertionLayer()
{
	LPDISPATCH pDispatch;
	GetProperty(0xf, VT_DISPATCH, (void*)&pDispatch);
	return CMapXLayer(pDispatch);
}

void CMapXLayers::SetInsertionLayer(LPDISPATCH propVal)
{
	SetProperty(0xf, VT_DISPATCH, propVal);
}

/////////////////////////////////////////////////////////////////////////////
// CMapXLayer properties

CString CMapXLayer::GetName()
{
	CString result;
	GetProperty(0x1, VT_BSTR, (void*)&result);
	return result;
}

void CMapXLayer::SetName(LPCTSTR propVal)
{
	SetProperty(0x1, VT_BSTR, propVal);
}

BOOL CMapXLayer::GetVisible()
{
	BOOL result;
	GetProperty(0x2, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetVisible(BOOL propVal)
{
	SetProperty(0x2, VT_BOOL, propVal);
}

BOOL CMapXLayer::GetSelectable()
{
	BOOL result;
	GetProperty(0x3, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetSelectable(BOOL propVal)
{
	SetProperty(0x3, VT_BOOL, propVal);
}

CString CMapXLayer::GetFilespec()
{
	CString result;
	GetProperty(0x4, VT_BSTR, (void*)&result);
	return result;
}

CMapXLabelProperties CMapXLayer::GetLabelProperties()
{
	LPDISPATCH result;
	GetProperty(0x5, VT_DISPATCH, (void*)&result);
	return CMapXLabelProperties(result);
}

BOOL CMapXLayer::GetAutoLabel()
{
	BOOL result;
	GetProperty(0x6, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetAutoLabel(BOOL propVal)
{
	SetProperty(0x6, VT_BOOL, propVal);
}

BOOL CMapXLayer::GetZoomLayer()
{
	BOOL result;
	GetProperty(0x7, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetZoomLayer(BOOL propVal)
{
	SetProperty(0x7, VT_BOOL, propVal);
}

BOOL CMapXLayer::GetOverrideStyle()
{
	BOOL result;
	GetProperty(0x8, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetOverrideStyle(BOOL propVal)
{
	SetProperty(0x8, VT_BOOL, propVal);
}

CMapXStyle CMapXLayer::GetStyle()
{
	LPDISPATCH result;
	GetProperty(0x9, VT_DISPATCH, (void*)&result);
	return CMapXStyle(result);
}

void CMapXLayer::SetStyle(LPDISPATCH propVal)
{
	SetProperty(0x9, VT_DISPATCH, propVal);
}

double CMapXLayer::GetZoomMin()
{
	double result;
	GetProperty(0xa, VT_R8, (void*)&result);
	return result;
}

void CMapXLayer::SetZoomMin(double propVal)
{
	SetProperty(0xa, VT_R8, propVal);
}

double CMapXLayer::GetZoomMax()
{
	double result;
	GetProperty(0xb, VT_R8, (void*)&result);
	return result;
}

void CMapXLayer::SetZoomMax(double propVal)
{
	SetProperty(0xb, VT_R8, propVal);
}

CMapXSelection CMapXLayer::GetSelection()
{
	LPDISPATCH result;
	GetProperty(0xc, VT_DISPATCH, (void*)&result);
	return CMapXSelection(result);
}

short CMapXLayer::GetPredominantFeatureType()
{
	short result;
	GetProperty(0xd, VT_I2, (void*)&result);
	return result;
}

CMapXLayerFind CMapXLayer::GetFind()
{
	LPDISPATCH result;
	GetProperty(0xe, VT_DISPATCH, (void*)&result);
	return CMapXLayerFind(result);
}

short CMapXLayer::GetType()
{
	short result;
	GetProperty(0xf, VT_I2, (void*)&result);
	return result;
}

CString CMapXLayer::GetKeyField()
{
	CString result;
	GetProperty(0x10, VT_BSTR, (void*)&result);
	return result;
}

void CMapXLayer::SetKeyField(LPCTSTR propVal)
{
	SetProperty(0x10, VT_BSTR, propVal);
}

CMapXCoordSys CMapXLayer::GetCoordSys()
{
	LPDISPATCH result;
	GetProperty(0x11, VT_DISPATCH, (void*)&result);
	return CMapXCoordSys(result);
}

CMapXRectangle CMapXLayer::GetBounds()
{
	LPDISPATCH result;
	GetProperty(0x20, VT_DISPATCH, (void*)&result);
	return CMapXRectangle(result);
}

BOOL CMapXLayer::GetDrawLabelsAfter()
{
	BOOL result;
	GetProperty(0x25, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetDrawLabelsAfter(BOOL propVal)
{
	SetProperty(0x25, VT_BOOL, propVal);
}

CMapXDatasets CMapXLayer::GetDatasets()
{
	LPDISPATCH result;
	GetProperty(0x27, VT_DISPATCH, (void*)&result);
	return CMapXDatasets(result);
}

BOOL CMapXLayer::GetShowNodes()
{
	BOOL result;
	GetProperty(0x2b, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetShowNodes(BOOL propVal)
{
	SetProperty(0x2b, VT_BOOL, propVal);
}

BOOL CMapXLayer::GetShowCentroids()
{
	BOOL result;
	GetProperty(0x2c, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetShowCentroids(BOOL propVal)
{
	SetProperty(0x2c, VT_BOOL, propVal);
}

BOOL CMapXLayer::GetShowLineDirection()
{
	BOOL result;
	GetProperty(0x2d, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetShowLineDirection(BOOL propVal)
{
	SetProperty(0x2d, VT_BOOL, propVal);
}

BOOL CMapXLayer::GetEditable()
{
	BOOL result;
	GetProperty(0x2e, VT_BOOL, (void*)&result);
	return result;
}

void CMapXLayer::SetEditable(BOOL propVal)
{
	SetProperty(0x2e, VT_BOOL, propVal);
}

CMapXRectangle CMapXLayer::GetClippedBounds()
{
	LPDISPATCH result;
	GetProperty(0x31, VT_DISPATCH, (void*)&result);
	return CMapXRectangle(result);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -