IViewObject::SetAdvise 方法 (oleidl.h)
在视图对象与建议接收器之间建立连接,以便可以通知建议接收器对象视图中的更改。
语法
HRESULT SetAdvise(
[in] DWORD aspects,
[in] DWORD advf,
[in] IAdviseSink *pAdvSink
);
parameters
[in] aspects
正在为其设置咨询连接的视图。 有效值取自枚举 DVASPECT。 有关详细信息,请参阅 DVASPECT 枚举。
[in] advf
包含一组用来控制通知连接的标志。 有效值来自枚举 ADVF。 但是,只有部分可能的 ADVF 值与此方法相关。 下表简要介绍了相关值。 有关更详细的说明,请参阅 ADVF 枚举。
值 | 含义 |
---|---|
|
导致通知连接在发送第一个通知后被销毁。 |
|
无论数据是否已从其当前状态更改,都会导致发送初始通知。 |
注意 可以将ADVF_ONLYONCE和ADVF_PRIMEFIRST组合在一起,以提供对 IDataObject::GetData 的异步调用。
[in] pAdvSink
指向要通知更改的咨询接收器上的 IAdviseSink 接口的指针。 NULL 值将删除任何现有的咨询连接。
返回值
此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
不支持通知。 |
|
dwAspect 的值无效。 |
|
提供的一个或多个值无效。 |
|
可用于此操作的内存不足。 |
注解
请求对视图对象执行绘制操作的容器应用程序还可以注册 到 IViewObject::SetAdvise 方法,以在视图对象的表示形式更改时收到通知。 若要了解对象的基础数据何时更改,必须单独调用 IDataObject::D Advise 。
若要删除现有的咨询连接,请调用 IViewObject::SetAdvise 方法,并将 pAdvSink 设置为 NULL。
如果视图对象发生更改,则会通过其 IAdviseSink::OnViewChange 方法调用相应的建议接收器。
在任何时候,给定的视图对象只能支持一个通知连接。 因此,当调用 IViewObject::SetAdvise 并且视图对象已持有建议接收器指针时,OLE 将在注册新指针之前释放现有指针。
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | oleidl.h |