#if !defined(AFX_MAP_H__9D1E3D55_B93C_4916_AADF_DA0069EC4401__INCLUDED_)
#define AFX_MAP_H__9D1E3D55_B93C_4916_AADF_DA0069EC4401__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// Machine generated IDispatch wrapper class(es) created by Microsoft Visual C++

// NOTE: Do not modify the contents of this file.  If this class is regenerated by
//  Microsoft Visual C++, your modifications will be overwritten.


// Dispatch interfaces referenced by this interface
//`

/////////////////////////////////////////////////////////////////////////////
// CMap1 wrapper class
using namespace mapWindow;

#include "extents.h"
#include "labels.h"
#include "Point.h"
#include "shapefile.h"
#include "image.h"
/* new add */

class CMap1 : public CWnd
{
protected:
	DECLARE_DYNCREATE(CMap1)
public:
	CLSID const& GetClsid()
	{
		static CLSID const clsid
			= { 0x54f4c2f7, 0xed40, 0x43b7, { 0x9d, 0x6f, 0xe4, 0x59, 0x65, 0xdf, 0x7f, 0x95 } };
		return clsid;
	}
	virtual BOOL Create(LPCTSTR lpszClassName,
		LPCTSTR lpszWindowName, DWORD dwStyle,
		const RECT& rect,
		CWnd* pParentWnd, UINT nID,
		CCreateContext* pContext = NULL)
	{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); }

    BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
		const RECT& rect, CWnd* pParentWnd, UINT nID,
		CFile* pPersist = NULL, BOOL bStorage = FALSE,
		BSTR bstrLicKey = NULL)
	{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID,
		pPersist, bStorage, bstrLicKey); }

// Attributes
public:
	unsigned long GetBackColor();
	void SetBackColor(unsigned long);
	double GetZoomPercent();
	void SetZoomPercent(double);
	long GetCursorMode();
	void SetCursorMode(long);
	long GetMapCursor();
	void SetMapCursor(long);
	long GetUDCursorHandle();
	void SetUDCursorHandle(long);
	BOOL GetSendMouseDown();
	void SetSendMouseDown(BOOL);
	BOOL GetSendMouseUp();
	void SetSendMouseUp(BOOL);
	BOOL GetSendMouseMove();
	void SetSendMouseMove(BOOL);
	BOOL GetSendSelectBoxDrag();
	void SetSendSelectBoxDrag(BOOL);
	BOOL GetSendSelectBoxFinal();
	void SetSendSelectBoxFinal(BOOL);
	double GetExtentPad();
	void SetExtentPad(double);
	long GetExtentHistory();
	void SetExtentHistory(long);
	CString GetKey();
	void SetKey(LPCTSTR);
	BOOL GetDoubleBuffer();
	void SetDoubleBuffer(BOOL);
	LPDISPATCH GetGlobalCallback();
	void SetGlobalCallback(LPDISPATCH);
	long GetNumLayers();
	void SetNumLayers(long);
	LPDISPATCH GetExtents();
	void SetExtents(LPDISPATCH);
	long GetLastErrorCode();
	void SetLastErrorCode(long);
	long GetIsLocked();
	void SetIsLocked(long);
	CString GetMapState();
	void SetMapState(LPCTSTR);
	CString GetSerialNumber();
	void SetSerialNumber(LPCTSTR);
	BOOL GetSendOnDrawBackBuffer();
	void SetSendOnDrawBackBuffer(BOOL);
	BOOL GetUseSeamlessPan();
	void SetUseSeamlessPan(BOOL);
	double GetMouseWheelSpeed();
	void SetMouseWheelSpeed(double);
	long GetShapeDrawingMethod();
	void SetShapeDrawingMethod(long);
	double GetCurrentScale();
	void SetCurrentScale(double);
	long GetMapUnits();
	void SetMapUnits(long);
	long GetVersionNumber();
	void SetVersionNumber(long);
	BOOL GetShowRedrawTime();
	void SetShowRedrawTime(BOOL);
	BOOL GetShowVersionNumber();
	void SetShowVersionNumber(BOOL);
	CExtents GetMaxExtents();
	void SetMaxExtents(LPDISPATCH);
	double GetPixelsPerDegree();
	void SetPixelsPerDegree(double);

	/* new add in 4.9 above*/
	
	ITiles * GetTiles();
	void SetTiles(ITiles * propVal);

	void put_TileProvider(long newValue);
	long get_TileProvider();

	void put_Projection(long newValue);
	long get_Projection();

	void put_Latitude(float newValue);
	float get_Latitude();

	void put_Longitude(float newValue);
	float get_Longitude();

	void put_CurrentZoom(long newValue);
	long get_CurrentZoom();

	void put_ZoomBarVerbosity(long newValue);
	long get_ZoomBarVerbosity();
	void put_ZoomBarMinZoom(long newValue);
	long get_ZoomBarMinZoom();
	void put_ZoomBarMaxZoom(long newValue);
	long get_ZoomBarMaxZoom();

	long ZoomToNext();
	BOOL ZoomToWorld();
	void put_ReuseTileBuffer(BOOL newValue);
	void put_ZoomBehavior(long newValue);

	void put_GrabProjectionFromData(BOOL newValue);
	BOOL get_GrabProjectionFromData();

	LPDISPATCH get_GeographicExtents();
	BOOL SetGeographicExtents(LPDISPATCH pVal);

	void put_ShowZoomBar(BOOL newValue);
	BOOL get_ShowZoomBar();

	BOOL GetScalebarVisible();
	void SetScalebarVisible(BOOL propVal);

	void put_KnownExtents(long newValue);
	long get_KnownExtents();

// Operations
public:
	long DrawLabelEx(long DrawHandle, LPCTSTR Text, double x, double y, double Rotation);
	BOOL LoadTilesForSnapshot(LPDISPATCH Extents, long Width, LPWSTR Key);
	BOOL ZoomToTileLevel(long zoom);
	void Redraw2(long redrawType);
	void Redraw3(long redrawType, BOOL reloadTiles);
	/********************Above is new add in version above 4.9********************************/
	
	void Redraw();
	long AddLayer(LPDISPATCH Object, BOOL Visible);
	void RemoveLayer(long LayerHandle);
	void RemoveLayerWithoutClosing(long LayerHandle);
	void RemoveAllLayers();
	BOOL MoveLayerUp(long InitialPosition);
	BOOL MoveLayerDown(long InitialPosition);
	BOOL MoveLayer(long InitialPosition, long TargetPosition);
	BOOL MoveLayerTop(long InitialPosition);
	BOOL MoveLayerBottom(long InitialPosition);
	void ZoomToMaxExtents();
	void ZoomToLayer(long LayerHandle);
	void ZoomToShape(long LayerHandle, long Shape);
	void ZoomIn(double Percent);
	void ZoomOut(double Percent);
	long ZoomToPrev();
	void ProjToPixel(double projX, double projY, double* pixelX, double* pixelY);
	void PixelToProj(double pixelX, double pixelY, double* projX, double* projY);
	void ClearDrawing(long DrawHandle);
	void ClearDrawings();
	LPDISPATCH SnapShot(LPDISPATCH BoundBox);
	BOOL ApplyLegendColors(LPDISPATCH Legend);
	void LockWindow(long LockMode);
	void Resize(long Width, long Height);
	void ShowToolTip(LPCTSTR Text, long Milliseconds);
	void AddLabel(long LayerHandle, LPCTSTR Text, unsigned long Color, double x, double y, long hJustification);
	void ClearLabels(long LayerHandle);
	void LayerFont(long LayerHandle, LPCTSTR FontName, long FontSize);
	LPDISPATCH GetColorScheme(long LayerHandle);
	long NewDrawing(long Projection);
	void DrawPoint(double x, double y, long pixelSize, unsigned long Color);
	void DrawLine(double x1, double y1, double x2, double y2, long pixelWidth, unsigned long Color);
	void DrawCircle(double x, double y, double pixelRadius, unsigned long Color, BOOL fill);
	void DrawPolygon(VARIANT* xPoints, VARIANT* yPoints, long numPoints, unsigned long Color, BOOL fill);
	CString GetLayerKey(long LayerHandle);
	void SetLayerKey(long LayerHandle, LPCTSTR lpszNewValue);
	long GetLayerPosition(long LayerHandle);
	long GetLayerHandle(long LayerPosition);
	BOOL GetLayerVisible(long LayerHandle);
	void SetLayerVisible(long LayerHandle, BOOL bNewValue);
	BOOL GetShapeVisible(long LayerHandle, long Shape);
	void SetShapeVisible(long LayerHandle, long Shape, BOOL bNewValue);
	float GetImageLayerPercentTransparent(long LayerHandle);
	void SetImageLayerPercentTransparent(long LayerHandle, float newValue);
	CString GetErrorMsg(long ErrorCode);
	CString GetDrawingKey(long DrawHandle);
	void SetDrawingKey(long DrawHandle, LPCTSTR lpszNewValue);
	long GetShapeLayerPointType(long LayerHandle);
	void SetShapeLayerPointType(long LayerHandle, long nNewValue);
	long GetShapePointType(long LayerHandle, long Shape);
	void SetShapePointType(long LayerHandle, long Shape, long nNewValue);
	BOOL GetLayerLabelsVisible(long LayerHandle);
	void SetLayerLabelsVisible(long LayerHandle, BOOL bNewValue);
	long GetUDLineStipple(long LayerHandle);
	void SetUDLineStipple(long LayerHandle, long nNewValue);
	long GetUDFillStipple(long LayerHandle, long StippleRow);
	void SetUDFillStipple(long LayerHandle, long StippleRow, long nNewValue);
	LPDISPATCH GetUDPointType(long LayerHandle);
	void SetRefUDPointType(long LayerHandle, LPDISPATCH newValue);
	LPDISPATCH GetGetObject(long LayerHandle);
	CString GetLayerName(long LayerHandle);
	void SetLayerName(long LayerHandle, LPCTSTR lpszNewValue);
	BOOL SetImageLayerColorScheme(long LayerHandle, LPDISPATCH ColorScheme);
	CString GetGridFileName(long LayerHandle);
	void SetGridFileName(long LayerHandle, LPCTSTR lpszNewValue);
	void UpdateImage(long LayerHandle);
	BOOL GetLayerLabelsShadow(long LayerHandle);
	void SetLayerLabelsShadow(long LayerHandle, BOOL bNewValue);
	BOOL GetLayerLabelsScale(long LayerHandle);
	void SetLayerLabelsScale(long LayerHandle, BOOL bNewValue);
	void AddLabelEx(long LayerHandle, LPCTSTR Text, unsigned long Color, double x, double y, long hJustification, double Rotation);
	void GetLayerStandardViewWidth(long LayerHandle, double* Width);
	void SetLayerStandardViewWidth(long LayerHandle, double Width);
	BOOL IsTIFFGrid(LPCTSTR Filename);
	BOOL IsSameProjection(LPCTSTR proj4_a, LPCTSTR proj4_b);
	void ZoomToMaxVisibleExtents();
	void SetMapResizeBehavior(long nNewValue);
	long GetMapResizeBehavior();
	long HWnd();
	long set_UDPointImageListAdd(long LayerHandle, LPDISPATCH newValue);
	long GetShapePointImageListID(long LayerHandle, long Shape);
	void SetShapePointImageListID(long LayerHandle, long Shape, long nNewValue);
	long get_UDPointImageListCount(long LayerHandle);
	LPDISPATCH get_UDPointImageListItem(long LayerHandle, long ImageIndex);
	void ClearUDPointImageList(long LayerHandle);
	void DrawLineEx(long LayerHandle, double x1, double y1, double x2, double y2, long pixelWidth, unsigned long Color);
	void DrawPointEx(long LayerHandle, double x, double y, long pixelSize, unsigned long Color);
	void DrawCircleEx(long LayerHandle, double x, double y, double pixelRadius, unsigned long Color, BOOL fill);
	void LabelColor(long LayerHandle, unsigned long LabelFontColor);
	void SetDrawingLayerVisible(long LayerHandle, BOOL Visiable);
	void ClearDrawingLabels(long DrawHandle);
	void DrawingFont(long DrawHandle, LPCTSTR FontName, long FontSize);
	void AddDrawingLabelEx(long DrawHandle, LPCTSTR Text, unsigned long Color, double x, double y, long hJustification, double Rotation);
	void AddDrawingLabel(long DrawHandle, LPCTSTR Text, unsigned long Color, double x, double y, long hJustification);
	long GetDrawingLabelsOffset(long DrawHandle);
	void SetDrawingLabelsOffset(long DrawHandle, long nNewValue);
	BOOL GetDrawingLabelsScale(long DrawHandle);
	void SetDrawingLabelsScale(long DrawHandle, BOOL bNewValue);
	BOOL GetDrawingLabelsShadow(long DrawHandle);
	void SetDrawingLabelsShadow(long DrawHandle, BOOL bNewValue);
	unsigned long GetDrawingLabelsShadowColor(long DrawHandle);
	void SetDrawingLabelsShadowColor(long DrawHandle, unsigned long newValue);
	BOOL GetUseDrawingLabelCollision(long DrawHandle);
	void SetUseDrawingLabelCollision(long DrawHandle, BOOL bNewValue);
	BOOL GetDrawingLabelsVisible(long DrawHandle);
	void SetDrawingLabelsVisible(long DrawHandle, BOOL bNewValue);
	void GetDrawingStandardViewWidth(long DrawHandle, double* Width);
	void SetDrawingStandardViewWidth(long DrawHandle, double Width);
	void DrawWidePolygon(VARIANT* xPoints, VARIANT* yPoints, long numPoints, unsigned long Color, BOOL fill, short Width);
	void DrawWideCircle(double x, double y, double pixelRadius, unsigned long Color, BOOL fill, short Width);
	LPDISPATCH SnapShot2(long ClippingLayerNbr, double Zoom, long pWidth);
	void LayerFontEx(long LayerHandle, LPCTSTR FontName, long FontSize, BOOL isBold, BOOL isItalic, BOOL isUnderline);
	void set_UDPointFontCharFont(long LayerHandle, LPCTSTR FontName, float FontSize, BOOL isBold, BOOL isItalic, BOOL isUnderline);
	long set_UDPointFontCharListAdd(long LayerHandle, long newValue, unsigned long Color);
	void set_UDPointFontCharFontSize(long LayerHandle, float FontSize);
	long GetShapePointFontCharListID(long LayerHandle, long Shape);
	void SetShapePointFontCharListID(long LayerHandle, long Shape, long nNewValue);
	void ReSourceLayer(long LayerHandle, LPCTSTR newSrcPath);
	unsigned long GetShapeLayerStippleColor(long LayerHandle);
	void SetShapeLayerStippleColor(long LayerHandle, unsigned long newValue);
	unsigned long GetShapeStippleColor(long LayerHandle, long Shape);
	void SetShapeStippleColor(long LayerHandle, long Shape, unsigned long newValue);
	BOOL GetShapeStippleTransparent(long LayerHandle, long Shape);
	void SetShapeStippleTransparent(long LayerHandle, long Shape, BOOL bNewValue);
	BOOL GetShapeLayerStippleTransparent(long LayerHandle);
	void SetShapeLayerStippleTransparent(long LayerHandle, BOOL bNewValue);
	BOOL GetTrapRMouseDown();
	void SetTrapRMouseDown(BOOL bNewValue);
	void SetDisableWaitCursor(BOOL bNewValue);
	BOOL GetDisableWaitCursor();
	BOOL AdjustLayerExtents(long LayerHandle);
	LPDISPATCH SnapShot3(double left, double right, double top, double bottom, long Width);
	void DrawPolygonEx(long LayerHandle, VARIANT* xPoints, VARIANT* yPoints, long numPoints, unsigned long Color, BOOL fill);
	// method 'SnapShotToDC' not emitted because of invalid return type or parameter type
	CLabels GetDrawingLabels(long DrawingLayerIndex);
	void SetDrawingLabels(long DrawingLayerIndex, LPDISPATCH newValue);
	void DrawWideCircleEx(long LayerHandle, double x, double y, double radius, unsigned long Color, BOOL fill, short OutlineWidth);
	void DrawWidePolygonEx(long LayerHandle, VARIANT* xPoints, VARIANT* yPoints, long numPoints, unsigned long Color, BOOL fill, short OutlineWidth);
	double GetMapRotationAngle();
	void SetMapRotationAngle(double newValue);
	CExtents GetRotatedExtent();
	CPoint1 GetBaseProjectionPoint(double rotX, double rotY);
	BOOL GetCanUseImageGrouping();
	void SetCanUseImageGrouping(BOOL bNewValue);
	double GetLayerMaxVisibleScale(long LayerHandle);
	void SetLayerMaxVisibleScale(long LayerHandle, double newValue);
	double GetLayerMinVisibleScale(long LayerHandle);
	void SetLayerMinVisibleScale(long LayerHandle, double newValue);
	BOOL GetLayerDynamicVisibility(long LayerHandle);
	void SetLayerDynamicVisibility(long LayerHandle, BOOL bNewValue);
	// method 'DrawBackBuffer' not emitted because of invalid return type or parameter type
	CLabels GetLayerLabels(long LayerHandle);
	void SetLayerLabels(long LayerHandle, LPDISPATCH newValue);
	CShapefile GetShapefile(long LayerHandle);
	void SetShapefile(long LayerHandle, LPDISPATCH newValue);
	CGISImage GetImage(long LayerHandle);
	void SetImage(long LayerHandle, LPDISPATCH newValue);
	CString SerializeLayer(long LayerHandle);
	BOOL DeserializeLayer(long LayerHandle, LPCTSTR newVal);
	BOOL SaveMapState(LPCTSTR Filename, BOOL RelativePaths, BOOL Overwrite);
	BOOL LoadMapState(LPCTSTR Filename, LPDISPATCH Callback);
	BOOL SaveLayerOptions(long LayerHandle, LPCTSTR OptionsName, BOOL Overwrite, LPCTSTR Description);
	BOOL LoadLayerOptions(long LayerHandle, LPCTSTR OptionsName, BSTR* Description);
	CString GetLayerDescription(long LayerHandle);
	void SetLayerDescription(long LayerHandle, LPCTSTR lpszNewValue);
	BOOL DeserializeMapState(LPCTSTR State, BOOL LoadLayers, LPCTSTR BasePath);
	CString SerializeMapState(BOOL RelativePaths, LPCTSTR BasePath);
	BOOL RemoveLayerOptions(long LayerHandle, LPCTSTR OptionsName);
	BOOL GetLayerSkipOnSaving(long LayerHandle);
	void SetLayerSkipOnSaving(long LayerHandle, BOOL bNewValue);
	CString GetLayerFilename(long LayerHandle);
	BOOL ZoomToSelected(long LayerHandle);
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MAP_H__9D1E3D55_B93C_4916_AADF_DA0069EC4401__INCLUDED_)