# IConnectionPointContainer

The IConnectionPointContainer interface supports connection points for connectable objects.

Connectable objects support the following features:

- Outgoing interfaces, 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

##### When to Implement

Implement this interface as part of support for connectable objects. To support connectable objects, you need to provide four related interfaces:

- IConnectionPointContainer

- IEnumConnectionPoints

- IConnectionPoint

- IEnumConnections

The IConnectionPointContainer interface indicates the existence of the outgoing interfaces. It provides access to an enumerator sub-object with the IEnumConnectionPoints interface. It also provides a connection point sub-object with the IConnectionPoint interface. The IConnectionPoint interface provides access to an enumerator sub-object with the IEnumConnections interface.

The connection point is a separate sub-object to avoid circular reference counting problems.

Implement the IConnectionPointContainer interface to make a connectable object, that is, an object with outgoing interfaces.

##### When to Use

Through IConnectionPointContainer, you can locate a specific connection point for one IID or obtain an enumerator to enumerate the connections points.

Use the IConnectionPointContainer interface to obtain access to:

- Enumerator sub-objects with the IEnumConnectionPoints interface. The IEnumConnectionPoints interface can then be used to enumerate connection points for each outgoing IID.

- Connection point sub-objects with the IConnectionPoint interface for each IID. Through the IConnectionPoint interface, a client starts or terminates an advisory loop with the connectable object and the client’s own sink. The client can also use the IConnectionPoint interface to obtain an enumerator object with the IEnumConnections interface to enumerate the connections it knows about.

##### When to Use

Methods in Vtable Order

IUnknown Methods | Description
QueryInterface | Returns pointers to supported interfaces.
AddRef | Increments reference count.
Release | Decrements reference count.

IConnectionPointContainer Methods | Description
EnumConnectionPoints | Returns an object to enumerate all the connection points supported in the connectable object.
FindConnectionPoint | Returns a pointer to the IConnectionPoint interface for a specified connection point.

See Also

IConnectionPoint, IEnumConnectionPoints, IEnumConnections