# IOleObject::EnumAdvise

Retrieves a pointer to an enumerator that can be used to enumerate the advisory connections registered for an object, so a container can know what to release prior to closing down.

HRESULT EnumAdvise(

IEnumSTATDATA **ppenumAdvise | //Indirect pointer to enumerator object
); |

Parameter

ppenumAdvise
  [out] When there are existing advisory connections, indirect pointer to the location of the IEnumSTATDATA interface on the enumerator object. If the object does not have any advisory connections, the value will be NULL. NULL will also be the value if the method returns an error. Each time an object receives a successful call to EnumAdvise, it must increase the reference count on the pointer it returns. It is the caller’s responsibility to call Release when it is done with the pointer.

Return Values

This method supports the standard return value E_FAIL, as well as the following:

S_OK
  Enumerator returned successfully.
E_NOTIMPL
  EnumAdvise is not implemented.

Remarks

The EnumAdvise method supplies an enumerator that provides a way for containers to keep track of advisory connections registered for their objects. A container normally would call this function so that it can instruct an object to release each of its advisory connections prior to closing down.

The enumerator to which you get access through IOleObject::EnumAdvise enumerates items of type STATDATA. Upon receiving the pointer, the container can then loop through STATDATA and call IOleObject::Unadvise for each enumerated connection.

The usual way to implement this function is to delegate the call to the IOleAdviseHolder interface. Only the pAdvise and dwConnection members of STATDATA are relevant for IOleObject::EnumAdvise.

See Also

IOleObject::Advise, IOleObject::UnAdvise