This section describes how to load Automation and generate any FLI definitions needed to use it.
Automation components and interfaces that are to be used by the Automation API must be placed in a type library using suitable tools. In some cases, this type library will be supplied as part of the DLL or executable containing the component.
Some of the Automation APIs described in this chapter require you to convert the definitions in the type library into FLI definitions. This is done by compiling and loading a system definition that references the library with the options
:type :midl-type-library-file. The names in the type library are converted to Lisp symbols as specified in The mapping from COM names to Lisp symbols
Note: this is not required by all the APIs, for example see Calling Automation methods without a type library and A simple implementation of a single Automation interface.
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.
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.
: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.
For an example see
LispWorks COM/Automation User Guide and Reference Manual - 23 Mar 2017