NextPrevUpTopContentsIndex

3.1.3 Reducing the size of the converted library

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:

t

Analyze and generate all the required code for calling and implementing the interfaces from the type library. This is the default value.

nil

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.

:not-binary

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 .


LispWorks COM/Automation User Guide and Reference Manual - 21 Feb 2008

NextPrevUpTopContentsIndex