Suppose you have a
defsystem
system definition form that references a library: that is, a system member has options
:type
:midl-type-library-file as described in Generating FLI definitions from COM definitions.
For this member, the option
:com
can be added to specify whether all the COM functionality is required. The keyword can take these values:
Analyze and generate all the required code for calling and implementing the interfaces from the type library. This is the default value.
Analyze but do not generate any code for calling or implementing COM interfaces from the type library. It is still possible to call Automation methods.
Analyze but do not generate any code for calling or implementing COM interfaces from the type library. It is still possible to call Automation methods and implement dispinterfaces in the type library, but not dual or COM interfaces.
Using the value
nil
or
:not-binary
generates much smaller code and is therefore much faster. However, it is never obligatory to use the option
:com
.
Use
:com nil
when the application calls Automation interfaces from the type library but does not implement any of them or need to call any methods from dual interfaces using call-com-interface.
Use
:com
:not-binary
when the application implements only
dispinterfaces
from the library. This is typically required for implementing
sink
interfaces for use with connection points.
For an example see
examples/com/ole/simple-container/defsys.lisp
.