README.TXT

OLE Automation Sample 


SUMMARY
=======

The DispCalc sample is a simple accumulator-based calculator. Its user
interface consists of buttons for the numbers (0-9), the operators
(+, -, *, /), and some other necessary buttons (C for Clear, = for
evaluation). Its programmability interface consists of one object, which is
described below.

The ProgID for DispCalc's only object is "DispCalc.Application". An instance
of this object can be created by executing the following lines of code in
Visual Basic or DispTest:

Sub Foo
Dim MyCalculator as Object
Set MyCalculator = CreateObject("DispCalc.Application")
. . .
End Sub

MORE INFORMATION
================

Program Structure
-----------------

DispCalc uses INTERFACEDATA and CreateStdDispatch to implement the
IDispatch interface.

Properties for the Object
-------------------------

Name Type Description

Value VT_I4 Same as the value for the accumulator.
Accum VT_I4 The value that is in the accumulator of the calculator.
Opnd VT_I4 The operand. This is the number currently being entered.
Op VT_I2 The operator that is currently being used. This is an
enumeration:
const OP_NONE = 0
const OP_PLUS = 1
const OP_MINUS = 2
const OP_MULT = 3

Methods Defined on the Object
-----------------------------

Name Description

Eval as Boolean If there is an operator, apply it to the
accumulator and the operand, placing the
result in the accumulator. The return
value indicates success or failure.
Clear Resets the calculator. This sets Op to
OP_NONE, and both Accum and Opnd to 0.
Display Updates the display of the calculator.
(Other operations do not do this.)
Quit Close the calculator.
Button (b as string) as Boolean Press the indicated button and return
success or failure. Valid string values
are:
+, -, *, +
0-9
c, C
=

Note that you may also pass the numbers
0-9 and these will be converted to
strings automatically.

Shortcomings of this Sample
---------------------------

Property and method names should not be abbreviated. For example, the "Opnd"
property should be the "Operand" property.

Because the object is the application object, it should have Name and
Version properties, which are read-only.