COM Cyclic Reference Counting
The life span of an object is maintained in COM using reference counting. This is not the only way (Java, for example, uses a better policy to accomplish the same task). When a COM object is created, it has one reference (refCount == 1). From this point on, each AddRef()/Release() increments/decrements the refCount. When refCount is reduced to zero, the object destroys itself.
If two objects reference each other, their reference count never goes below 1 and they will not be destroyed. To overcome this problem, you either avoid these cyclic references or supply another method for the object to reduce the reference count. For more information about dealing with cyclic references, see "Section 3.3.2 Reference Counting" of the COM standard.
N.C.