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  //Address of output variable that 
                                // receives the IEnumSTATDATA interface 
                                // pointer
);
 

Parameter

ppenumAdvise
[out] Address of IEnumSTATDATA* pointer variable that receives the interface pointer to the enumerator object. If the object does not have any advisory connectionsor if an error occurs, the implementation must set *ppenumAdvise to NULL. Each time an object receives a successful call to 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 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.

QuickInfo

  Windows NT: Use version 3.1 or later.
  Windows: Use Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in oleidl.h.

See Also

IOleObject::Advise, IOleObject::UnAdvise