LispWorks COM/Automation User Guide and Reference Manual > 3 Using Automation > 3.3 Calling Automation methods

NextPrevUpTopContentsIndex

3.3.3 Data conversion when calling Automation methods

The arguments and return values to Automation methods are restricted to a small number of simple types, which map to Lisp types as follows:

Automation types, VT codes and their corresponding Lisp types

Automation type

VT code

Lisp type

null value

VT_NULL

the symbol :null

empty value

VT_EMPTY

the symbol :empty

SHORT

VT_I2

integer

LONG

VT_I4

integer

FLOAT

VT_R4

single-float

DOUBLE

VT_R8

double-float

CY

VT_CY

not suppported

DATE

VT_DATE

not suppported

BSTR

VT_BSTR

string

IDispatch*

VT_DISPATCH

FLI (:pointer i-dispatch)

SCODE

VT_ERROR

integer

VARIANT_BOOL

VT_BOOL

nil or t

VARIANT*

VT_VARIANT

recursively convert

IUknown*

VT_UNKNOWN

FLI (:pointer i-unknown)

DECIMAL

VT_DECIMAL

not suppported

BYTE

VT_UI1

integer

SAFEARRAY

VT_ARRAY

array

dynamic

dynamic

lisp-variant

When an Automation argument is a lisp-variant object, its type is used to set the VT code. See make-lisp-variant and set-variant.

In and in-out parameters are passed as positional arguments in the calling forms and out and in-out parameters are returned as additional values. If there is an argument with the retval attribute then it is returned as the first value.


LispWorks COM/Automation User Guide and Reference Manual - 22 Dec 2009

NextPrevUpTopContentsIndex