Introduction
The COM technology known as Connectable Objects (also called connection points) supports a generic ability for any object, called in this context a connectable object, to express these capabilities:
- The existence of outgoing interfaces(1), such as event sets.
- The ability to enumerate the IIDs of the outgoing interfaces.
- The ability to connect and disconnect sinks to the object for those outgoing IIDs.
- The ability to enumerate the connections that exist to a particular outgoing interface.
Support for these capabilities involves four interfaces: IConnectionPointContainer, IEnumConnectionPoints, IConnectionPoint, and IEnumConnections. A connectable object implements IConnectionPointContainer to indicate existence of outgoing interfaces. Through this interface a client can enumerate connection points for each outgoing IID (via an enumerator with IEnumConnectionPoints) and can obtain an IConnectionPoint interface to a connection point for each IID. Through a connection point a client starts or terminates an advisory loop with the connectable object and the client's own sink. The connection point can also enumerate the connections it knows about through an enumerator with IEnumConnections.