IOleObject::Advise 方法 (oleidl.h)
在复合文档对象与调用对象的建议接收器之间建立咨询连接,当复合文档对象重命名、保存或关闭时,调用对象通过该接收器接收通知。
语法
HRESULT Advise(
[in] IAdviseSink *pAdvSink,
[out] DWORD *pdwConnection
);
参数
[in] pAdvSink
指向调用对象的建议接收器上的 IAdviseSink 接口的指针。
[out] pdwConnection
指向可传递给 IOleObject::Unadvise 以删除咨询连接的令牌的指针。
返回值
此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
可用于此操作的内存不足。 |
注解
IOleObject::Advise 方法在对象与其容器之间设置咨询连接,对象通过该连接通知容器的建议接收器对象中的关闭、保存、重命名和链接源更改事件。 容器调用此方法(通常作为初始化对象的一部分)以向 对象注册其咨询接收器。 返回时,对象通过调用 IAdviseSink 或 IAdviseSink2 发送容器复合文档通知。
如果容器和对象成功建立咨询连接,则接收调用的对象将通过 pdwConnection 返回容器的非零值。 如果尝试建立咨询连接失败,则 对象返回零。 若要删除建议连接,容器将调用 IOleObject::Unadvise 并将此非零令牌传递回 对象。
对象可以将管理和跟踪咨询事件的作业委托给 OLE 建议持有者,通过调用 CreateOleAdviseHolder 获取指针。 返回的 IOleAdviseHolder 接口有三种发送咨询通知的方法,以及 IOleAdviseHolder::Advise、 IOleAdviseHolder::Unadvise 和 IOleAdviseHolder::EnumAdvise 方法,这些方法与 IOleObject 的方法相同。 对 IOleObject::Advise、 IOleObject::Unadvise 或 IOleObject::EnumAdvise 的调用将委托给建议持有者中的相应方法。
若要销毁建议持有者,只需在 IOleAdviseHolder 接口上调用 IUnknown::Release 即可。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | oleidl.h |