I want to add another map to map control, how to do?

I want to add another map(高德地图 into the map control.
Through the internet, I get codes (C++) as the below, I want to convert the code to C# but I do not know the “BaseProvider.h”, who can tell me how to convert and where is the C# code (BaseProvider.h)

#pragma once
#include "BaseProvider.h"
 
class ABaseProvider: public BaseProvider
{
public:
	ABaseProvider() 
	{
		LanguageStr = "zh_cn";
		RefererUrl = "http://ditu.amap.com/";
		LicenseUrl = "https://mapwingis.codeplex.com/wikipage?title=baidutiles";
		int year = Utility::GetCurrentYear();
		Copyright.Format(L"Copyright @ %d, 高德,All Rights Reserved", year);
		this->Projection = new MercatorProjection();
		this->minZoom = 3;
		this->maxZoom = 18;
	}
	
	CString MakeTileImageUrl(CPoint &pos, int zoom)
	{
		CString s;
		CString sec = "0";
		int iServerNum = GetServerNum(pos, 4)+1;
		s.Format(UrlFormat, sec, iServerNum, pos.x, pos.y, zoom, LanguageStr);
		return s;
	}
};
class AMapProvider: public ABaseProvider
{
public:
	AMapProvider() 
	{
		Id = tkTileProvider::AMaps;
		Name = "AMaps";
		UrlFormat = "http://webrd%s%d.is.autonavi.com/appmaptile?x=%d&y=%d&z=%d&lang=%s&size=1&scale=1&style=8";
		subProviders.push_back(this);
	}
};
class ASatelliteProvider: public ABaseProvider
{
public:
	ASatelliteProvider() 
	{
		Id = tkTileProvider::ASatellite;
		Name = "ASatellite";
		UrlFormat = "http://webst%s%d.is.autonavi.com/appmaptile?x=%d&y=%d&z=%d&lang=%s&size=1&scale=1&style=6";
		subProviders.push_back(this);
	}
};
class ASatelliteHybridProvider: public ABaseProvider
{
public:
	ASatelliteHybridProvider() 
	{
		Id = tkTileProvider::ASatelliteHybrid;
		Name = "ASatelliteHybrid";
		UrlFormat = "http://webst%s%d.is.autonavi.com/appmaptile?x=%d&y=%d&z=%d&lang=%s&size=1&scale=1&style=8";
		subProviders.push_back(this);
	}
};

Instead of looking at how to convert C++ code to C# it might be easier to look at the documentation and examples which are for/in C#.

Thank you let me try :joy: