




 
Lisp implementations of COM interfaces are created by defining an appropriate class and then defining COM methods for all the interfaces implemented by this class.
The class can inherit from standard-i-unknown to obtain an implementation of the i-unknown interface. This superclass provides reference counting and an implementation of the 
query-interface
 method that generates COM interface pointers for the interfaces specified in the class definition. It also supports 
aggregation
.
There are two important things to note about COM classes and methods:
defmethod
 because they have very specific conventions for passing arguments and returning values that are different from those of Lisp.  
Figure 1.1 The relationship between an Lisp object and its COM interface pointers
