IDataAdviseHolder::Advise 方法 (objidl.h)
在建议接收器与用于接收通知的数据对象之间创建连接。
语法
HRESULT Advise(
[in] IDataObject *pDataObject,
[in] FORMATETC *pFetc,
[in] DWORD advf,
[in] IAdviseSink *pAdvise,
[out] DWORD *pdwConnection
);
参数
[in] pDataObject
指向请求通知的数据对象上的 IDataObject 接口的指针。 如果此对象中的数据发生更改,则会向已请求通知的建议接收器发送通知。
[in] pFetc
指向 FORMATETC 结构的指针,该结构包含请求通知的建议接收器感兴趣的指定格式、介质和目标设备。 例如,仅当数据对象中数据的位图表示形式发生更改时,一个接收器可能才想要知道。 另一个接收器可能只对同一对象的图元文件格式感兴趣。 当相关数据发生更改时,每个建议接收器都会收到通知。 发生通知时,此数据将传回建议接收器。
[in] advf
一组控制咨询连接的标志。 可能的值来自 ADVF 枚举。 但是,只有部分可能的 ADVF 值与此方法相关。 下表简要描述了相关值:可在 ADVF 枚举的说明中找到更详细的说明。
值 | 含义 |
---|---|
|
要求不随通知一起发送任何数据。 |
|
导致通知连接在发送第一个通知后被销毁。 代表调用方对 IDataAdviseHolder::Unadvise 进行隐式调用以删除连接。 |
|
无论数据是否已从其当前状态更改,都会导致发送初始通知。 |
|
使用 ADVF_NODATA 指定时,此标志会导致在销毁数据对象之前发送包含数据的最后一个通知。 如果未指定ADVF_NODATA,则此标志无效。 |
[in] pAdvise
指向接收更改通知的通知接收器上的 IAdviseSink 接口的指针。
[out] pdwConnection
指向变量的指针,该变量接收标识此连接的令牌。 调用对象稍后可以通过将此令牌传递给 IDataAdviseHolder::Unadvise 来删除咨询连接。 如果此值为零,则未建立连接。
返回值
此方法在成功时返回S_OK。
注解
通过此方法建立的连接,咨询接收器可以在调用 IAdviseSink::OnDataChange 时接收将来的通知。
对象发出对 IDataObject::D Advise 的调用,以请求有关相关格式、介质或目标设备的更改的通知。 此数据在 pFormatetc 参数中指定。 DAdvise 方法通常实现为调用 IDataAdviseHolder::Advise,以将设置和跟踪连接的任务委托给建议持有者。 当格式、中型设备或目标设备发生更改时,数据对象会调用 IDataAdviseHolder::SendOnDataChange 来发送必要的通知。
可以通过在调用 IDataAdviseHolder::Unadvise 中传递 pdwConnection 中的值来删除已建立的连接。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | objidl.h |