# IConnectionPointContainer::EnumConnectionPoints

Creates an enumerator object to iterate through all the connection points supported in the connectable object, one connection point per outgoing IID.

HRESULT EnumConnectionPoints(

IEnumConnectionPoints **ppEnum | //Indirect pointer to the newly created enumerator
); |

Parameters

ppEnum
  [out] Indirect pointer to the IEnumConnectionPoints interface on the newly created enumerator.

Return Values

This method supports the standard return values E_OUTOFMEMORY and E_UNEXPECTED, as well as the following:

S_OK
  The enumerator was successfully created.
E_POINTER
  The value in ppEnum is not valid. For example, it may be NULL.

Remarks

Since IEnumConnectionPoints enumerates pointers to IConnectionPoint, the caller must use IConnectionPoint::GetConnectionInterface to determine the interface identifer of the outgoing interface that the connection point supports.

#### Notes to Callers

The caller is responsible for releasing the enumerator by calling `(*ppEnum)->Release` when it is no longer needed.

#### Notes to Implementers

Returning E_NOTIMPL is specifically disallowed because, with the exception of type information, there would be no other means through which a caller could find the IIDs of the outgoing interfaces. Since a connectable object typically has a fixed set of known outgoing interfaces, it is straightforward to implement the enumerator on top of a fixed length array of IIDs known at compile time.

See Also

IEnumConnectionPoints