A defsystem member type that can be used to include a type library file in a Lisp system definition.
com
When a file is given the defsystem member 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.
name-spec should be one of:
t |
Means that the component name is the same as the module name. |
A string |
The name of the component. |
A list |
(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 3.1.3 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"))
COM/Automation User Guide and Reference Manual - 01 Dec 2021 19:38:41