#if !defined(AFX_SHAPE_H__BDAEA130_6A78_4D1A_8AC3_A09A364D0E5B__INCLUDED_)
#define AFX_SHAPE_H__BDAEA130_6A78_4D1A_8AC3_A09A364D0E5B__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 CPoint1;
class CCallback;
class CExtents;

/////////////////////////////////////////////////////////////////////////////
// CShape wrapper class

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

// Attributes
public:

// Operations
public:
	long GetNumPoints();
	long GetNumParts();
	long GetShapeType();
	void SetShapeType(long nNewValue);
	CPoint1 GetPoint(long PointIndex);
	void SetPoint(long PointIndex, LPDISPATCH newValue);
	long GetPart(long PartIndex);
	void SetPart(long PartIndex, long nNewValue);
	long GetLastErrorCode();
	CString GetErrorMsg(long ErrorCode);
	CCallback GetGlobalCallback();
	void SetGlobalCallback(LPDISPATCH newValue);
	CString GetKey();
	void SetKey(LPCTSTR lpszNewValue);
	BOOL Create(long ShpType);
	BOOL InsertPoint(LPDISPATCH NewPoint, long* PointIndex);
	BOOL DeletePoint(long PointIndex);
	BOOL InsertPart(long PointIndex, long* PartIndex);
	BOOL DeletePart(long PartIndex);
	CExtents GetExtents();
	CString SerializeToString();
	BOOL CreateFromString(LPCTSTR Serialized);
	BOOL PointInThisPoly(LPDISPATCH pt);
	CPoint1 GetCentroid();
	double GetLength();
	double GetPerimeter();
	double GetArea();
	BOOL Relates(LPDISPATCH Shape, long Relation);
	double Distance(LPDISPATCH Shape);
	CShape Buffer(double Distance, long nQuadSegments);
	CShape Clip(LPDISPATCH Shape, long Operation);
	BOOL Contains(LPDISPATCH Shape);
	BOOL Crosses(LPDISPATCH Shape);
	BOOL Disjoint(LPDISPATCH Shape);
	BOOL Equals(LPDISPATCH Shape);
	BOOL Intersects(LPDISPATCH Shape);
	BOOL Overlaps(LPDISPATCH Shape);
	BOOL Touches(LPDISPATCH Shape);
	BOOL Within(LPDISPATCH Shape);
	CShape Boundry();
	CShape ConvexHull();
	BOOL GetIsValid();
	BOOL GetXy(long PointIndex, double* x, double* y);
	BOOL GetPartIsClockWise(long PartIndex);
	BOOL ReversePointsOrder(long PartIndex);
	BOOL GetIntersection(LPDISPATCH Shape, VARIANT* Results);
	CPoint1 GetCenter();
	long GetEndOfPart(long PartIndex);
	CShape GetPartAsShape(long PartIndex);
	CString GetIsValidReason();
	CPoint1 GetInteriorPoint();
	CShape Clone();
	BOOL Explode(VARIANT* Results);
	BOOL put_XY(long PointIndex, double x, double y);
	BOOL ExportToBinary(VARIANT* bytesArray);
	BOOL ImportFromBinary(const VARIANT& bytesArray);
	void FixUp(LPDISPATCH* retval);
};

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

#endif // !defined(AFX_SHAPE_H__BDAEA130_6A78_4D1A_8AC3_A09A364D0E5B__INCLUDED_)