IOleAdviseHolder::Advise
Establishes
an advisory connection between an OLE object and the calling object s advise
sink. Through that sink, the calling object can receive notification when the
OLE object is renamed, saved, or closed.
HRESULT Advise(
|
IAdviseSink * pAdvise, |
//Pointer to the advise sink on the calling object |
|
DWORD * pdwConnection |
//Pointer to a token |
|
); |
|
Parameters
pAdvise
[in] Pointer
to the IAdviseSink interface on the advisory sink that should be
informed of changes.
pdwConnection
[out] Pointer
to a token that can be passed to the IOleAdviseHolder::Unadvise method to delete the
advisory connection. The calling object is responsible for calling both IUnknown::AddRef and IUnknown::Release on this pointer.
Return Values
This method
supports the standard return value E_INVALIDARG, as well as the following:
S_OK
Advisory
connections set up successfully.
Remarks
Containers,
object handlers, and link objects all create advise sinks to receive
notification of changes in compound-document objects of interest, such as
embedded or linked objects. OLE objects of interest to these objects must
implement the IOleObject interface, which includes several advisory
methods, including IOleObject::Advise. A call to this method must set up an advisory
connection with any advise sink that calls it, and maintain each connection
until it is closed. It must be able to handle more than one advisory connection
at a time.
IOleAdviseHolder::Advise is intended to be used to simplify the implementation
of IOleObject::Advise. You can get a pointer to the OLE implementation
of IOleAdviseHolder by calling CreateOleAdviseHolder, and then, to implement IOleObject::Advise,
just delegate the call to IOleAdviseHolder::Advise. Other IOleAdviseHolder
methods are intended to implement other IOleObject advisory methods.
If the
attempt to establish an advisory connection is successful, the object receiving
the call returns a nonzero value through pdwConnection. If the attempt
fails, the object returns a zero. To delete an advisory connection, the object
with the advise sink passes this nonzero token back to the object by calling IOleAdviseHolder::Unadvise.
See Also