A defsystem member type that can be used to include a type library file in a Lisp system definition.
When a file is given the type :midl-type-library-file
, compiling the system will compile the type library file to produce a fasl. Loading the system will load this fasl. The :package
and :mapping-options
keywords can specified as for midl.
The keyword :component-name
name-spec can be supplied to specify that the source is the library specified by name-spec.
Means that the component name is the same as the module name.
The name of the component.
(component-name keywords-and-values) where the keywords and values are passed to find-component-tlb when looking for the actual library.
In all cases the module name, less anything after the last dot, is used as the default filename for the compiled file.
The keyword :com
can be supplied to reduce the amount of code generated. For the details, see Reducing the size of the converted library.
To include the file myfile.tlb
in a system, use
(defsystem my-system ()
:members (("myfile.tlb"
:type :midl-type-library-file)))
To compile the library associated with "OWC10.Spreadsheet", producing an object file in OWC10.ofasl
put a clause like this in the defsystem form:
("OWC10.SPREADSHEET" :type :midl-type-library-file
:com :not-binary
:component-name t)
To compile the same library, but to a different object file, use:
("my-owc" :type :midl-type-library-file
:com :not-binary
:component-name "OWC10.SPREADSHEET")
To compile the same library, but using only version newer than 1.1, use a clause like this:
("my-owc" :type :midl-type-library-file
:com :not-binary
:component-name ("OWC10.SPREADSHEET"
:min-version "1.1"))
LispWorks COM/Automation User Guide and Reference Manual - 14 Feb 2015