1.8.6.2 In parameters
For
in
parameters:
-
A parameter with the
string
attribute will be converted to a Lisp string. The string should not be destructively modified by the body.
-
A parameter of COM type
BSTR
will be converted to a Lisp string. The string should not be destructively modified by the body.
-
A parameter of COM type
VARIANT*
will be converted to a Lisp object according to the VT code in the variant (see Automation types, VT codes and their corresponding Lisp types).
-
A parameter of COM type
SAFEARRAY(
type
)
or
SAFEARRAY(
type
)*
will be converted to a Lisp array. The elements of type
type
are converted as in Automation types, VT codes and their corresponding Lisp types.
-
A parameter of COM type
VARIANT_BOOL
will be converted to
nil
(for zero) or
t
(for any other value). Note that a parameter of type
BOOL
will be converted to an
integer
because type libraries provide no way to distinguish this case from the primitive integer type.
-
A parameter whose type is an array type or a pointer type with a
size_is
attribute will be converted to a temporary Lisp array. The Lisp array might have dynamic extent.
-
Otherwise, the value is converted to a Lisp value using the FLI according to the mapping of types defined in FLI types.
LispWorks COM/Automation User Guide and Reference Manual - 21 Feb 2008