IOleObject::EnumAdvise method

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



Address of IEnumSTATDATA pointer variable that receives the interface pointer to the enumerator object. If the object does not have any advisory connections or if an error occurs, the implementation must set ppenumAdvise to NULL. Each time an object receives a successful call to IOleObject::EnumAdvise, it must increase the reference count on ppenumAdvise. It is the caller's responsibility to call Release when it is done with the ppenumAdvise.

Return Value

This method returns S_OK on success. Other possible return values include the following.

Return code Description

IOleObject::EnumAdvise is not implemented.


The IOleObject::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.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header oleidl.h

See Also