IOleObject::Advise 方法 (oleidl.h)

在复合文档对象与调用对象的建议接收器之间建立咨询连接,当复合文档对象重命名、保存或关闭时,调用对象通过该接收器接收通知。

语法

HRESULT Advise(
  [in]  IAdviseSink *pAdvSink,
  [out] DWORD       *pdwConnection
);

参数

[in] pAdvSink

指向调用对象的建议接收器上的 IAdviseSink 接口的指针。

[out] pdwConnection

指向可传递给 IOleObject::Unadvise 以删除咨询连接的令牌的指针。

返回值

此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。

返回代码 说明
E_OUTOFMEMORY
可用于此操作的内存不足。

注解

IOleObject::Advise 方法在对象与其容器之间设置咨询连接,对象通过该连接通知容器的建议接收器对象中的关闭、保存、重命名和链接源更改事件。 容器调用此方法(通常作为初始化对象的一部分)以向 对象注册其咨询接收器。 返回时,对象通过调用 IAdviseSink 或 IAdviseSink2 发送容器复合文档通知。

如果容器和对象成功建立咨询连接,则接收调用的对象将通过 pdwConnection 返回容器的非零值。 如果尝试建立咨询连接失败,则 对象返回零。 若要删除建议连接,容器将调用 IOleObject::Unadvise 并将此非零令牌传递回 对象。

对象可以将管理和跟踪咨询事件的作业委托给 OLE 建议持有者,通过调用 CreateOleAdviseHolder 获取指针。 返回的 IOleAdviseHolder 接口有三种发送咨询通知的方法,以及 IOleAdviseHolder::AdviseIOleAdviseHolder::UnadviseIOleAdviseHolder::EnumAdvise 方法,这些方法与 IOleObject 的方法相同。 对 IOleObject::AdviseIOleObject::UnadviseIOleObject::EnumAdvise 的调用将委托给建议持有者中的相应方法。

若要销毁建议持有者,只需在 IOleAdviseHolder 接口上调用 IUnknown::Release 即可。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 oleidl.h

另请参阅

CreateOleAdviseHolder

IOleAdviseHolder::Advise

IOleObject

IOleObject::EnumAdvise

IOleObject::Unadvise