Sets up a connection between the view object and an advise sink so that the advise sink can be notified about changes in the object's view.
HRESULT SetAdvise(
DWORD dwAspect, //View for which notification is being requested
DWORD advf, //Information about the advise sink
IAdviseSink * pAdvSink
//Pointer to the advise sink that is to receive
//change notifications
);
ADVF Value | Description |
---|---|
ADVF_ONLYONCE | Causes the advisory connection to be destroyed after the first notification is sent. |
ADVF_PRIMEFIRST | Causes an initial notification to be sent regardless of whether data has changed from its current state. |
Note that the ADVF_ONLYONCE and ADVF_PRIMEFIRST can be combined to provide an asynchronous call to IDataObject::GetData.
This method supports the standard return values E_INVALIDARG and E_OUTOFMEMORY, as well as the following:
A container application that is requesting a draw operation on a view object can also register with the IViewObject::SetAdvise method to be notified when the presentation of the view object changes. To find out about when an object's underlying data changes, you must call IDataObject::DAdvise separately.
To remove an existing advisory connection, call the IViewObject::SetAdvise method with pAdvSink set to NULL.
If the view object changes, a call is made to the appropriate advise sink through its IAdviseSink::OnViewChange method.
At any time, a given view object can support only one advisory connection. Therefore, when IViewObject::SetAdvise is called and the view object is already holding on to an advise sink pointer, OLE releases the existing pointer before the new one is registered.
Windows NT: Use version 3.1 or later.
Windows: Use Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in oleidl.h.
ADVF, IAdviseSink, IViewObject::GetAdvise