#if !defined(AFX_SHAPEFILE_H__ECF44AFF_5E75_4A0C_B213_9C595DBA1439__INCLUDED_)
#define AFX_SHAPEFILE_H__ECF44AFF_5E75_4A0C_B213_9C595DBA1439__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
class CExtents;
class CShape;
class CCallback;
class CField;
class CPoint1;
class CShapeDrawingOptions;
class CLabels;
class CShapefileCategories;
class CCharts;
class CTable;
class CGeoProjection;

/////////////////////////////////////////////////////////////////////////////
// CShapefile wrapper class

class CShapefile : public COleDispatchDriver
{
public:
	CShapefile() {}		// Calls COleDispatchDriver default constructor
	CShapefile(LPDISPATCH pDispatch) : COleDispatchDriver(pDispatch) {}
	CShapefile(const CShapefile& dispatchSrc) : COleDispatchDriver(dispatchSrc) {}

// Attributes
public:

// Operations
public:
	long GetNumShapes();
	long GetNumFields();
	CExtents GetExtents();
	long GetShapefileType();
	CShape GetShape(long ShapeIndex);
	BOOL GetEditingShapes();
	long GetLastErrorCode();
	CString GetCdlgFilter();
	CCallback GetGlobalCallback();
	void SetGlobalCallback(LPDISPATCH newValue);
	CString GetKey();
	void SetKey(LPCTSTR lpszNewValue);
	BOOL Open(LPCTSTR ShapefileName, LPDISPATCH cBack);
	BOOL CreateNew(LPCTSTR ShapefileName, long ShapefileType);
	BOOL SaveAs(LPCTSTR ShapefileName, LPDISPATCH cBack);
	BOOL Close();
	BOOL EditClear();
	BOOL EditInsertShape(LPDISPATCH Shape, long* ShapeIndex);
	BOOL EditDeleteShape(long ShapeIndex);
	BOOL SelectShapes(LPDISPATCH BoundBox, double Tolerance, long SelectMode, VARIANT* Result);
	BOOL StartEditingShapes(BOOL StartEditTable, LPDISPATCH cBack);
	BOOL StopEditingShapes(BOOL ApplyChanges, BOOL StopEditTable, LPDISPATCH cBack);
	BOOL EditInsertField(LPDISPATCH NewField, long* FieldIndex, LPDISPATCH cBack);
	BOOL EditDeleteField(long FieldIndex, LPDISPATCH cBack);
	BOOL EditCellValue(long FieldIndex, long ShapeIndex, const VARIANT& newVal);
	BOOL StartEditingTable(LPDISPATCH cBack);
	BOOL StopEditingTable(BOOL ApplyChanges, LPDISPATCH cBack);
	CField GetField(long FieldIndex);
	VARIANT GetCellValue(long FieldIndex, long ShapeIndex);
	BOOL GetEditingTable();
	CString GetErrorMsg(long ErrorCode);
	CString GetFilename();
	CPoint1 QuickPoint(long ShapeIndex, long PointIndex);
	CExtents QuickExtents(long ShapeIndex);
	// method 'QuickPoints' not emitted because of invalid return type or parameter type
	BOOL PointInShape(long ShapeIndex, double x, double y);
	long PointInShapefile(double x, double y);
	BOOL BeginPointInShapefile();
	void EndPointInShapefile();
	CString GetProjection();
	void SetProjection(LPCTSTR lpszNewValue);
	CField GetFieldByName(LPCTSTR Fieldname);
	long GetNumPoints(long ShapeIndex);
	BOOL CreateNewWithShapeID(LPCTSTR ShapefileName, long ShapefileType);
	BOOL GetUseSpatialIndex();
	void SetUseSpatialIndex(BOOL bNewValue);
	BOOL CreateSpatialIndex(LPCTSTR ShapefileName);
	BOOL GetHasSpatialIndex();
	void SetHasSpatialIndex(BOOL bNewValue);
	BOOL Resource(LPCTSTR newShpPath);
	BOOL GetCacheExtents();
	void SetCacheExtents(BOOL bNewValue);
	BOOL RefreshExtents();
	BOOL RefreshShapeExtents(long ShapeId);
	BOOL GetUseQTree();
	void SetUseQTree(BOOL bNewValue);
	BOOL Save(LPDISPATCH cBack);
	BOOL IsSpatialIndexValid();
	void SetSpatialIndexMaxAreaPercent(double newValue);
	double GetSpatialIndexMaxAreaPercent();
	BOOL GetCanUseSpatialIndex(LPDISPATCH pArea);
	CShapefile GetIntersection(BOOL SelectedOnlyOfThis, LPDISPATCH sf, BOOL SelectedOnly, long fileType, LPDISPATCH cBack);
	BOOL SelectByShapefile(LPDISPATCH sf, long Relation, BOOL SelectedOnly, VARIANT* Result, LPDISPATCH cBack);
	long GetNumSelected();
	BOOL GetShapeSelected(long ShapeIndex);
	void SetShapeSelected(long ShapeIndex, BOOL bNewValue);
	CShapeDrawingOptions GetSelectionDrawingOptions();
	void SetSelectionDrawingOptions(LPDISPATCH newValue);
	void SelectAll();
	void SelectNone();
	void InvertSelection();
	CShapefile Dissolve(long FieldIndex, BOOL SelectedOnly);
	CLabels GetLabels();
	void SetLabels(LPDISPATCH newValue);
	long GenerateLabels(long FieldIndex, long Method, BOOL LargestPartOnly);
	CShapefile Clone();
	CShapeDrawingOptions GetDefaultDrawingOptions();
	void SetDefaultDrawingOptions(LPDISPATCH newValue);
	CShapefileCategories GetCategories();
	void SetCategories(LPDISPATCH newValue);
	CCharts GetCharts();
	void SetCharts(LPDISPATCH newValue);
	long GetShapeCategory(long ShapeIndex);
	void SetShapeCategory(long ShapeIndex, long nNewValue);
	CTable GetTable();
	CString GetVisibilityExpression();
	void SetVisibilityExpression(LPCTSTR lpszNewValue);
	BOOL GetFastMode();
	void SetFastMode(BOOL bNewValue);
	long GetMinDrawingSize();
	void SetMinDrawingSize(long nNewValue);
	long GetSourceType();
	CShapefile BufferByDistance(double Distance, long nSegments, BOOL SelectedOnly, BOOL MergeResults);
	long GetGeometryEngine();
	void SetGeometryEngine(long nNewValue);
	CShapefile Difference(BOOL SelectedOnlySubject, LPDISPATCH sfOverlay, BOOL SelectedOnlyOverlay);
	CShapefile Clip(BOOL SelectedOnlySubject, LPDISPATCH sfOverlay, BOOL SelectedOnlyOverlay);
	CShapefile SymmDifference(BOOL SelectedOnlySubject, LPDISPATCH sfOverlay, BOOL SelectedOnlyOverlay);
	CShapefile Union(BOOL SelectedOnlySubject, LPDISPATCH sfOverlay, BOOL SelectedOnlyOverlay);
	CShapefile ExplodeShapes(BOOL SelectedOnly);
	CShapefile AggregateShapes(BOOL SelectedOnly, long FieldIndex);
	CShapefile ExportSelection();
	CShapefile Sort(long FieldIndex, BOOL Ascending);
	CShapefile Merge(BOOL SelectedOnlyThis, LPDISPATCH sf, BOOL SelectedOnly);
	unsigned long GetSelectionColor();
	void SetSelectionColor(unsigned long newValue);
	long GetSelectionAppearance();
	void SetSelectionAppearance(long nNewValue);
	long GetCollisionMode();
	void SetCollisionMode(long nNewValue);
	// method 'GetSelectionTransparency' not emitted because of invalid return type or parameter type
	// method 'SetSelectionTransparency' not emitted because of invalid return type or parameter type
	void SetStopExecution(LPDISPATCH newValue);
	CString Serialize(BOOL SaveSelection);
	void Deserialize(BOOL LoadSelection, LPCTSTR newVal);
	CGeoProjection GetGeoProjection();
	void SetGeoProjection(LPDISPATCH newValue);
	CShapefile Reproject(LPDISPATCH newProjection, long* reprojectedCount);
	BOOL ReprojectInPlace(LPDISPATCH newProjection, long* reprojectedCount);
	CShapefile SimplifyLines(double Tolerance, BOOL SelectedOnly);
	BOOL FixUpShapes(LPDISPATCH* retval);
};

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

#endif // !defined(AFX_SHAPEFILE_H__ECF44AFF_5E75_4A0C_B213_9C595DBA1439__INCLUDED_)