// 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.


#include "stdafx.h"
#include "shapefile.h"

// Dispatch interfaces referenced by this interface
#include "Extents.h"
#include "Shape.h"
#include "Callback.h"
#include "Field.h"
#include "Point.h"
#include "ShapeDrawingOptions.h"
#include "Labels.h"
#include "ShapefileCategories.h"
#include "Charts.h"
#include "Table.h"
#include "GeoProjection.h"


/////////////////////////////////////////////////////////////////////////////
// CShapefile properties

/////////////////////////////////////////////////////////////////////////////
// CShapefile operations

long CShapefile::GetNumShapes()
{
	long result;
	InvokeHelper(0x1, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

long CShapefile::GetNumFields()
{
	long result;
	InvokeHelper(0x2, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

CExtents CShapefile::GetExtents()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x3, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CExtents(pDispatch);
}

long CShapefile::GetShapefileType()
{
	long result;
	InvokeHelper(0x4, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

CShape CShapefile::GetShape(long ShapeIndex)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x5, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, parms,
		ShapeIndex);
	return CShape(pDispatch);
}

BOOL CShapefile::GetEditingShapes()
{
	BOOL result;
	InvokeHelper(0x6, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
	return result;
}

long CShapefile::GetLastErrorCode()
{
	long result;
	InvokeHelper(0x7, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

CString CShapefile::GetCdlgFilter()
{
	CString result;
	InvokeHelper(0x8, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
	return result;
}

CCallback CShapefile::GetGlobalCallback()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x9, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CCallback(pDispatch);
}

void CShapefile::SetGlobalCallback(LPDISPATCH newValue)
{
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x9, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

CString CShapefile::GetKey()
{
	CString result;
	InvokeHelper(0xa, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
	return result;
}

void CShapefile::SetKey(LPCTSTR lpszNewValue)
{
	static BYTE parms[] =
		VTS_BSTR;
	InvokeHelper(0xa, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 lpszNewValue);
}

BOOL CShapefile::Open(LPCTSTR ShapefileName, LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_BSTR VTS_DISPATCH;
	InvokeHelper(0xb, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ShapefileName, cBack);
	return result;
}

BOOL CShapefile::CreateNew(LPCTSTR ShapefileName, long ShapefileType)
{
	BOOL result;
	static BYTE parms[] =
		VTS_BSTR VTS_I4;
	InvokeHelper(0xc, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ShapefileName, ShapefileType);
	return result;
}

BOOL CShapefile::SaveAs(LPCTSTR ShapefileName, LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_BSTR VTS_DISPATCH;
	InvokeHelper(0xd, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ShapefileName, cBack);
	return result;
}

BOOL CShapefile::Close()
{
	BOOL result;
	InvokeHelper(0xe, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);
	return result;
}

BOOL CShapefile::EditClear()
{
	BOOL result;
	InvokeHelper(0xf, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);
	return result;
}

BOOL CShapefile::EditInsertShape(LPDISPATCH Shape, long* ShapeIndex)
{
	BOOL result;
	static BYTE parms[] =
		VTS_DISPATCH VTS_PI4;
	InvokeHelper(0x10, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		Shape, ShapeIndex);
	return result;
}

BOOL CShapefile::EditDeleteShape(long ShapeIndex)
{
	BOOL result;
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x11, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ShapeIndex);
	return result;
}

BOOL CShapefile::SelectShapes(LPDISPATCH BoundBox, double Tolerance, long SelectMode, VARIANT* Result)
{
	BOOL result;
	static BYTE parms[] =
		VTS_DISPATCH VTS_R8 VTS_I4 VTS_PVARIANT;
	InvokeHelper(0x12, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		BoundBox, Tolerance, SelectMode, Result);
	return result;
}

BOOL CShapefile::StartEditingShapes(BOOL StartEditTable, LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_BOOL VTS_DISPATCH;
	InvokeHelper(0x13, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		StartEditTable, cBack);
	return result;
}

BOOL CShapefile::StopEditingShapes(BOOL ApplyChanges, BOOL StopEditTable, LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_BOOL VTS_BOOL VTS_DISPATCH;
	InvokeHelper(0x14, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ApplyChanges, StopEditTable, cBack);
	return result;
}

BOOL CShapefile::EditInsertField(LPDISPATCH NewField, long* FieldIndex, LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_DISPATCH VTS_PI4 VTS_DISPATCH;
	InvokeHelper(0x16, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		NewField, FieldIndex, cBack);
	return result;
}

BOOL CShapefile::EditDeleteField(long FieldIndex, LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_I4 VTS_DISPATCH;
	InvokeHelper(0x17, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		FieldIndex, cBack);
	return result;
}

BOOL CShapefile::EditCellValue(long FieldIndex, long ShapeIndex, const VARIANT& newVal)
{
	BOOL result;
	static BYTE parms[] =
		VTS_I4 VTS_I4 VTS_VARIANT;
	InvokeHelper(0x18, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		FieldIndex, ShapeIndex, &newVal);
	return result;
}

BOOL CShapefile::StartEditingTable(LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x19, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		cBack);
	return result;
}

BOOL CShapefile::StopEditingTable(BOOL ApplyChanges, LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_BOOL VTS_DISPATCH;
	InvokeHelper(0x1a, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ApplyChanges, cBack);
	return result;
}

CField CShapefile::GetField(long FieldIndex)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x1b, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, parms,
		FieldIndex);
	return CField(pDispatch);
}

VARIANT CShapefile::GetCellValue(long FieldIndex, long ShapeIndex)
{
	VARIANT result;
	static BYTE parms[] =
		VTS_I4 VTS_I4;
	InvokeHelper(0x1c, DISPATCH_PROPERTYGET, VT_VARIANT, (void*)&result, parms,
		FieldIndex, ShapeIndex);
	return result;
}

BOOL CShapefile::GetEditingTable()
{
	BOOL result;
	InvokeHelper(0x1d, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
	return result;
}

CString CShapefile::GetErrorMsg(long ErrorCode)
{
	CString result;
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x15, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, parms,
		ErrorCode);
	return result;
}

CString CShapefile::GetFilename()
{
	CString result;
	InvokeHelper(0x1f, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
	return result;
}

CPoint1 CShapefile::QuickPoint(long ShapeIndex, long PointIndex)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_I4 VTS_I4;
	InvokeHelper(0x20, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		ShapeIndex, PointIndex);
	return CPoint1(pDispatch);
}

CExtents CShapefile::QuickExtents(long ShapeIndex)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x21, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		ShapeIndex);
	return CExtents(pDispatch);
}

BOOL CShapefile::PointInShape(long ShapeIndex, double x, double y)
{
	BOOL result;
	static BYTE parms[] =
		VTS_I4 VTS_R8 VTS_R8;
	InvokeHelper(0x23, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ShapeIndex, x, y);
	return result;
}

long CShapefile::PointInShapefile(double x, double y)
{
	long result;
	static BYTE parms[] =
		VTS_R8 VTS_R8;
	InvokeHelper(0x24, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
		x, y);
	return result;
}

BOOL CShapefile::BeginPointInShapefile()
{
	BOOL result;
	InvokeHelper(0x25, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);
	return result;
}

void CShapefile::EndPointInShapefile()
{
	InvokeHelper(0x26, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

CString CShapefile::GetProjection()
{
	CString result;
	InvokeHelper(0x27, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
	return result;
}

void CShapefile::SetProjection(LPCTSTR lpszNewValue)
{
	static BYTE parms[] =
		VTS_BSTR;
	InvokeHelper(0x27, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 lpszNewValue);
}

CField CShapefile::GetFieldByName(LPCTSTR Fieldname)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_BSTR;
	InvokeHelper(0x28, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, parms,
		Fieldname);
	return CField(pDispatch);
}

long CShapefile::GetNumPoints(long ShapeIndex)
{
	long result;
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x29, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
		ShapeIndex);
	return result;
}

BOOL CShapefile::CreateNewWithShapeID(LPCTSTR ShapefileName, long ShapefileType)
{
	BOOL result;
	static BYTE parms[] =
		VTS_BSTR VTS_I4;
	InvokeHelper(0x2a, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ShapefileName, ShapefileType);
	return result;
}

BOOL CShapefile::GetUseSpatialIndex()
{
	BOOL result;
	InvokeHelper(0x2b, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
	return result;
}

void CShapefile::SetUseSpatialIndex(BOOL bNewValue)
{
	static BYTE parms[] =
		VTS_BOOL;
	InvokeHelper(0x2b, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 bNewValue);
}

BOOL CShapefile::CreateSpatialIndex(LPCTSTR ShapefileName)
{
	BOOL result;
	static BYTE parms[] =
		VTS_BSTR;
	InvokeHelper(0x2c, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ShapefileName);
	return result;
}

BOOL CShapefile::GetHasSpatialIndex()
{
	BOOL result;
	InvokeHelper(0x2d, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
	return result;
}

void CShapefile::SetHasSpatialIndex(BOOL bNewValue)
{
	static BYTE parms[] =
		VTS_BOOL;
	InvokeHelper(0x2d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 bNewValue);
}

BOOL CShapefile::Resource(LPCTSTR newShpPath)
{
	BOOL result;
	static BYTE parms[] =
		VTS_BSTR;
	InvokeHelper(0x2e, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		newShpPath);
	return result;
}

BOOL CShapefile::GetCacheExtents()
{
	BOOL result;
	InvokeHelper(0x2f, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
	return result;
}

void CShapefile::SetCacheExtents(BOOL bNewValue)
{
	static BYTE parms[] =
		VTS_BOOL;
	InvokeHelper(0x2f, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 bNewValue);
}

BOOL CShapefile::RefreshExtents()
{
	BOOL result;
	InvokeHelper(0x30, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);
	return result;
}

BOOL CShapefile::RefreshShapeExtents(long ShapeId)
{
	BOOL result;
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x31, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		ShapeId);
	return result;
}

BOOL CShapefile::GetUseQTree()
{
	BOOL result;
	InvokeHelper(0x33, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
	return result;
}

void CShapefile::SetUseQTree(BOOL bNewValue)
{
	static BYTE parms[] =
		VTS_BOOL;
	InvokeHelper(0x33, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 bNewValue);
}

BOOL CShapefile::Save(LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x34, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		cBack);
	return result;
}

BOOL CShapefile::IsSpatialIndexValid()
{
	BOOL result;
	InvokeHelper(0x35, DISPATCH_METHOD, VT_BOOL, (void*)&result, NULL);
	return result;
}

void CShapefile::SetSpatialIndexMaxAreaPercent(double newValue)
{
	static BYTE parms[] =
		VTS_R8;
	InvokeHelper(0x36, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

double CShapefile::GetSpatialIndexMaxAreaPercent()
{
	double result;
	InvokeHelper(0x36, DISPATCH_PROPERTYGET, VT_R8, (void*)&result, NULL);
	return result;
}

BOOL CShapefile::GetCanUseSpatialIndex(LPDISPATCH pArea)
{
	BOOL result;
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x37, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms,
		pArea);
	return result;
}

CShapefile CShapefile::GetIntersection(BOOL SelectedOnlyOfThis, LPDISPATCH sf, BOOL SelectedOnly, long fileType, LPDISPATCH cBack)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_BOOL VTS_DISPATCH VTS_BOOL VTS_I4 VTS_DISPATCH;
	InvokeHelper(0x38, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		SelectedOnlyOfThis, sf, SelectedOnly, fileType, cBack);
	return CShapefile(pDispatch);
}

BOOL CShapefile::SelectByShapefile(LPDISPATCH sf, long Relation, BOOL SelectedOnly, VARIANT* Result, LPDISPATCH cBack)
{
	BOOL result;
	static BYTE parms[] =
		VTS_DISPATCH VTS_I4 VTS_BOOL VTS_PVARIANT VTS_DISPATCH;
	InvokeHelper(0x39, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		sf, Relation, SelectedOnly, Result, cBack);
	return result;
}

long CShapefile::GetNumSelected()
{
	long result;
	InvokeHelper(0x3a, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

BOOL CShapefile::GetShapeSelected(long ShapeIndex)
{
	BOOL result;
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x3b, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, parms,
		ShapeIndex);
	return result;
}

void CShapefile::SetShapeSelected(long ShapeIndex, BOOL bNewValue)
{
	static BYTE parms[] =
		VTS_I4 VTS_BOOL;
	InvokeHelper(0x3b, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 ShapeIndex, bNewValue);
}

CShapeDrawingOptions CShapefile::GetSelectionDrawingOptions()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x3c, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CShapeDrawingOptions(pDispatch);
}

void CShapefile::SetSelectionDrawingOptions(LPDISPATCH newValue)
{
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x3c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

void CShapefile::SelectAll()
{
	InvokeHelper(0x3e, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

void CShapefile::SelectNone()
{
	InvokeHelper(0x3f, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

void CShapefile::InvertSelection()
{
	InvokeHelper(0x40, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

CShapefile CShapefile::Dissolve(long FieldIndex, BOOL SelectedOnly)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_I4 VTS_BOOL;
	InvokeHelper(0x41, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		FieldIndex, SelectedOnly);
	return CShapefile(pDispatch);
}

CLabels CShapefile::GetLabels()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x42, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CLabels(pDispatch);
}

void CShapefile::SetLabels(LPDISPATCH newValue)
{
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x42, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

long CShapefile::GenerateLabels(long FieldIndex, long Method, BOOL LargestPartOnly)
{
	long result;
	static BYTE parms[] =
		VTS_I4 VTS_I4 VTS_BOOL;
	InvokeHelper(0x43, DISPATCH_METHOD, VT_I4, (void*)&result, parms,
		FieldIndex, Method, LargestPartOnly);
	return result;
}

CShapefile CShapefile::Clone()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x44, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CShapefile(pDispatch);
}

CShapeDrawingOptions CShapefile::GetDefaultDrawingOptions()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x45, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CShapeDrawingOptions(pDispatch);
}

void CShapefile::SetDefaultDrawingOptions(LPDISPATCH newValue)
{
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x45, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

CShapefileCategories CShapefile::GetCategories()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x46, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CShapefileCategories(pDispatch);
}

void CShapefile::SetCategories(LPDISPATCH newValue)
{
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x46, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

CCharts CShapefile::GetCharts()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x47, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CCharts(pDispatch);
}

void CShapefile::SetCharts(LPDISPATCH newValue)
{
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x47, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

long CShapefile::GetShapeCategory(long ShapeIndex)
{
	long result;
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x48, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, parms,
		ShapeIndex);
	return result;
}

void CShapefile::SetShapeCategory(long ShapeIndex, long nNewValue)
{
	static BYTE parms[] =
		VTS_I4 VTS_I4;
	InvokeHelper(0x48, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 ShapeIndex, nNewValue);
}

CTable CShapefile::GetTable()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x49, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CTable(pDispatch);
}

CString CShapefile::GetVisibilityExpression()
{
	CString result;
	InvokeHelper(0x4a, DISPATCH_PROPERTYGET, VT_BSTR, (void*)&result, NULL);
	return result;
}

void CShapefile::SetVisibilityExpression(LPCTSTR lpszNewValue)
{
	static BYTE parms[] =
		VTS_BSTR;
	InvokeHelper(0x4a, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 lpszNewValue);
}

BOOL CShapefile::GetFastMode()
{
	BOOL result;
	InvokeHelper(0x4b, DISPATCH_PROPERTYGET, VT_BOOL, (void*)&result, NULL);
	return result;
}

void CShapefile::SetFastMode(BOOL bNewValue)
{
	static BYTE parms[] =
		VTS_BOOL;
	InvokeHelper(0x4b, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 bNewValue);
}

long CShapefile::GetMinDrawingSize()
{
	long result;
	InvokeHelper(0x4c, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

void CShapefile::SetMinDrawingSize(long nNewValue)
{
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x4c, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 nNewValue);
}

long CShapefile::GetSourceType()
{
	long result;
	InvokeHelper(0x4d, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

CShapefile CShapefile::BufferByDistance(double Distance, long nSegments, BOOL SelectedOnly, BOOL MergeResults)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_R8 VTS_I4 VTS_BOOL VTS_BOOL;
	InvokeHelper(0x4e, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		Distance, nSegments, SelectedOnly, MergeResults);
	return CShapefile(pDispatch);
}

long CShapefile::GetGeometryEngine()
{
	long result;
	InvokeHelper(0x4f, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

void CShapefile::SetGeometryEngine(long nNewValue)
{
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x4f, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 nNewValue);
}

CShapefile CShapefile::Difference(BOOL SelectedOnlySubject, LPDISPATCH sfOverlay, BOOL SelectedOnlyOverlay)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_BOOL VTS_DISPATCH VTS_BOOL;
	InvokeHelper(0x50, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		SelectedOnlySubject, sfOverlay, SelectedOnlyOverlay);
	return CShapefile(pDispatch);
}

CShapefile CShapefile::Clip(BOOL SelectedOnlySubject, LPDISPATCH sfOverlay, BOOL SelectedOnlyOverlay)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_BOOL VTS_DISPATCH VTS_BOOL;
	InvokeHelper(0x51, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		SelectedOnlySubject, sfOverlay, SelectedOnlyOverlay);
	return CShapefile(pDispatch);
}

CShapefile CShapefile::SymmDifference(BOOL SelectedOnlySubject, LPDISPATCH sfOverlay, BOOL SelectedOnlyOverlay)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_BOOL VTS_DISPATCH VTS_BOOL;
	InvokeHelper(0x52, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		SelectedOnlySubject, sfOverlay, SelectedOnlyOverlay);
	return CShapefile(pDispatch);
}

CShapefile CShapefile::Union(BOOL SelectedOnlySubject, LPDISPATCH sfOverlay, BOOL SelectedOnlyOverlay)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_BOOL VTS_DISPATCH VTS_BOOL;
	InvokeHelper(0x53, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		SelectedOnlySubject, sfOverlay, SelectedOnlyOverlay);
	return CShapefile(pDispatch);
}

CShapefile CShapefile::ExplodeShapes(BOOL SelectedOnly)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_BOOL;
	InvokeHelper(0x54, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		SelectedOnly);
	return CShapefile(pDispatch);
}

CShapefile CShapefile::AggregateShapes(BOOL SelectedOnly, long FieldIndex)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_BOOL VTS_I4;
	InvokeHelper(0x55, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		SelectedOnly, FieldIndex);
	return CShapefile(pDispatch);
}

CShapefile CShapefile::ExportSelection()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x56, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CShapefile(pDispatch);
}

CShapefile CShapefile::Sort(long FieldIndex, BOOL Ascending)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_I4 VTS_BOOL;
	InvokeHelper(0x57, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		FieldIndex, Ascending);
	return CShapefile(pDispatch);
}

CShapefile CShapefile::Merge(BOOL SelectedOnlyThis, LPDISPATCH sf, BOOL SelectedOnly)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_BOOL VTS_DISPATCH VTS_BOOL;
	InvokeHelper(0x58, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		SelectedOnlyThis, sf, SelectedOnly);
	return CShapefile(pDispatch);
}

unsigned long CShapefile::GetSelectionColor()
{
	unsigned long result;
	InvokeHelper(0x59, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

void CShapefile::SetSelectionColor(unsigned long newValue)
{
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x59, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

long CShapefile::GetSelectionAppearance()
{
	long result;
	InvokeHelper(0x5a, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

void CShapefile::SetSelectionAppearance(long nNewValue)
{
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x5a, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 nNewValue);
}

long CShapefile::GetCollisionMode()
{
	long result;
	InvokeHelper(0x5b, DISPATCH_PROPERTYGET, VT_I4, (void*)&result, NULL);
	return result;
}

void CShapefile::SetCollisionMode(long nNewValue)
{
	static BYTE parms[] =
		VTS_I4;
	InvokeHelper(0x5b, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 nNewValue);
}

void CShapefile::SetStopExecution(LPDISPATCH newValue)
{
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x5d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

CString CShapefile::Serialize(BOOL SaveSelection)
{
	CString result;
	static BYTE parms[] =
		VTS_BOOL;
	InvokeHelper(0x5e, DISPATCH_METHOD, VT_BSTR, (void*)&result, parms,
		SaveSelection);
	return result;
}

void CShapefile::Deserialize(BOOL LoadSelection, LPCTSTR newVal)
{
	static BYTE parms[] =
		VTS_BOOL VTS_BSTR;
	InvokeHelper(0x5f, DISPATCH_METHOD, VT_EMPTY, NULL, parms,
		 LoadSelection, newVal);
}

CGeoProjection CShapefile::GetGeoProjection()
{
	LPDISPATCH pDispatch;
	InvokeHelper(0x60, DISPATCH_PROPERTYGET, VT_DISPATCH, (void*)&pDispatch, NULL);
	return CGeoProjection(pDispatch);
}

void CShapefile::SetGeoProjection(LPDISPATCH newValue)
{
	static BYTE parms[] =
		VTS_DISPATCH;
	InvokeHelper(0x60, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,
		 newValue);
}

CShapefile CShapefile::Reproject(LPDISPATCH newProjection, long* reprojectedCount)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_DISPATCH VTS_PI4;
	InvokeHelper(0x61, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		newProjection, reprojectedCount);
	return CShapefile(pDispatch);
}

BOOL CShapefile::ReprojectInPlace(LPDISPATCH newProjection, long* reprojectedCount)
{
	BOOL result;
	static BYTE parms[] =
		VTS_DISPATCH VTS_PI4;
	InvokeHelper(0x62, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		newProjection, reprojectedCount);
	return result;
}

CShapefile CShapefile::SimplifyLines(double Tolerance, BOOL SelectedOnly)
{
	LPDISPATCH pDispatch;
	static BYTE parms[] =
		VTS_R8 VTS_BOOL;
	InvokeHelper(0x63, DISPATCH_METHOD, VT_DISPATCH, (void*)&pDispatch, parms,
		Tolerance, SelectedOnly);
	return CShapefile(pDispatch);
}

BOOL CShapefile::FixUpShapes(LPDISPATCH* retval)
{
	BOOL result;
	static BYTE parms[] =
		VTS_PDISPATCH;
	InvokeHelper(0x64, DISPATCH_METHOD, VT_BOOL, (void*)&result, parms,
		retval);
	return result;
}