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 another COM implementation class or any other
standard-class provided that com-object is included somewhere in the overall class precedence list. To get the built-in handling for the i-unknown interface, inherit from standard-i-unknown (which is the default superclass if no others are specified).
Each interface-name specifies a COM interface that the object will implement. i-unknown should not be specified unless the you wish to replace the standard implementation provided by
standard-i-unknown. If more than one interface-name is given then all the methods must have different names (except for those which are inherited from a common parent interface).
This indicates that the class will inherit the implementation of all the methods in the interfaces specified by the interface-names directly from class-name. The class-name must be one of the direct or indirect superclasses of the class being defined. Without this option, methods from superclasses are inherited indirectly and can be shadowed in the class being defined. Use of
:inherit-from allows various internal space-optimizations.
This option tells standard-i-unknown that it should not respond to
query-interface for the given interface-names (which should be parents of the interfaces implemented by the class being defined). Normally,
standard-i-unknown will respond to
query-interface for a parent interface by returning a pointer to the child interface.
LispWorks COM/Automation User Guide and Reference Manual - 23 Mar 2017