The COM API uses the information from the IDL to convert data between FLI types and Lisp types where appropriate for arguments and return values of COM method definitions. In particular:
Each argument is the IDL has a corresponding argument in the
define-com-method form. In addition, each argument has a
pass-style
which specifies whether additional conversions are performed.
If the
pass-style
of a parameter is
:foreign
, then the value will be exactly what the FLI would provide, i.e. foreign pointers for strings and for all
out
or
in-out
parameters (which are always pointers in the IDL).
If the
pass-style
of a parameter is
:lisp
, then the conversions described in the following sections will be done.