-------------------------------------
OLE Automation Sample Program: SPoly2
-------------------------------------

SPoly2 is a program which draws polygons.  The only way to 
make spoly2 draw a polygon is to use its programmability 
interface.

One OLE Automation object is exposed by spoly2:
  * spoly2.application

Spoly2.Application is the object associated with spoly2's main
window.  It controls drawing polygons and clearing the display.


-----------------
Program Structure
-----------------
SPoly2 implements IDispatch by using INTERFACEDATA, DispGetIDsOfNames
and DispInvoke.



------------------------------------
Methods defined on spoly2.application
------------------------------------


Name			        Description
------------------------------------------------------------------
Draw()				Draw the polygon.

Reset()				Delete all points from the polygon.

AddPoint(X, Y)			Add a point with coordinates (x,y) 
				to the polygon

EnumPoints() as VT_ENUM		Return a collection of the polygon's 
				points

GetXOrigin() as short		Get the X origin of the polygon.
			
SetXOrigin(x as short)		Set the X origin of the polygon.
			
GetYOrigin() as short		Get the Y origin of the polygon.
			
SetYOrigin(y as short)		Set the Y origin of the polygon.
			
GetWidth() as short		Get and the line width of the polygon.

SetWidth(width as short)	Set the line width of the polygon.



---------------------------
Shortcomings of this sample
---------------------------
1. Many items in this sample should be properties.  Instead,
they are implemented as methods.  Anything which behaves like
an attribute of the object should be a property.  

2. This is not a good example of how to implement a collection.