Windows NT 4.0 source code leak
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.5 KiB

---------------------------------------
OLE Automation Sample Program: Dispcalc
---------------------------------------

DspCalc2 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 dspcalc2's only object is "DspCalc2.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("DspCalc2.Application")
. . .
End Sub


-----------------
Program Structure
-----------------
DspCalc2 uses a type library and CreateStdDispatch in order 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 which is
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
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
---------------------------
1. Property and method names should not be abbreviated.
For example, the "Opnd" property should be the "Operand"
property.

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