Defsystem Member Type

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 specifiy that the source is the library specified by name-spec .

name-spec should be one of:


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 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 claus like this:

("my-owc" :type :midl-type-library-file
           :com :not-binary
           :component-name ("OWC10.SPREADSHEET"
                            :min-version "1.1"))
See also


LispWorks COM/Automation User Guide and Reference Manual - 17 Jul 2006