A symbol naming the class to define.
A symbol naming a superclass to inherit from.
A slot description as used by
An option as used by
Each superclass-name argument specifies a direct superclass of the new class, which can be any
standard-class provided that certain standard classes are included somewhere in the overall class precedence list. These standard classes depend on the other options and provide the default superclass list if none is specified. The following standard classes are available:
standard-i-dispatchis always needed and provides a complete implementation of the
i-dispatchinterface, based on the type information in the type library.
standard-i-connection-point-containeris needed if there are any source interfaces specified (via the
:source-interfacesoptions). This provides a complete implementation of the Connection Point protocols.
coclass-name is a symbol specifying the name of a coclass. If this option is specified then a class factory will be registered for this coclass, to create an instance of class-name when another application requires it. The component will implement the interfaces specified in the coclass definition and the default interface will be returned by the class factory.
Each interface-name specifies an Automation interface that the object will implement. The
i-dispatch interfaces should not be specified because their implementations are automatically inherited from
standard-i-dispatch. No class factory will be registered for class-name, so the only way to make instances is from with Lisp by calling
Each interface-name specifies a source interface on which the object allows connections to be made. If the
:coclass option is also specified, then the interfaces flagged with the
source attribute are used as the default for the
When there are event interfaces, the component automatically implements the
IConnectionPointContainer interface. The supporting interfaces
IEnumConnections are also provided automatically.
Each interface-name specifies a COM interface that the object will implement, in addition to the interfaces implied by the
:coclass option. This allows the object to implement other interfaces not mentioned in the type library.
If reusable is true (the default), then the server running the component can receive requests from more than one application. If reusable is
nil, then the server will receive requests only from the application that started it and the Operating System will start a new instance of the server if required. For more details, see
REGCLS_SINGLEUSE in MSDN.
type-library-name is a symbol specifying the name of a type library, mapped from the name given by the "library" statement in the IDL. If this option is specified then an error is signaled if the names used in the
:source-interfaces class options are not defined by type-library-name.
LispWorks COM/Automation User Guide and Reference Manual - 14 Feb 2015