以下是 COleControl::OnEventAdvise 方法的基本框架:
BOOL COleControl::OnEventAdvise(
DWORD dwEventID, DWORD dwInterfaceMask, IUnknown* punkSink)
{
// 在这里执行建立或取消建立事件通知连接的操作
// dwEventID 表示事件的标识符,dwInterfaceMask 表示感兴趣的接口类型
// punkSink 是事件通知的接收方
// 返回 TRUE 表示建立连接成功,返回 FALSE 表示建立连接失败
// 例如:
// if (dwEventID == MY_EVENT_ID)
// {
// if (dwInterfaceMask == DIID_MyControlEvents)
// {
// // 建立事件通知连接
// m_dwEventCookie = AtlAdvise(punkSink, (IUnknown*)this, DIID_MyControlEvents, &m_dwEventCookie);
// return (m_dwEventCookie != 0);
// }
// }
// else if (dwEventID == ANOTHER_EVENT_ID)
// {
// // 取消事件通知连接
// AtlUnadvise(punkSink, DIID_AnotherControlEvents, m_dwAnotherEventCookie);
// return TRUE;
// }
return FALSE;
}
在上述代码中,dwEventID 表示事件的标识符,dwInterfaceMask 表示感兴趣的接口类型,而 punkSink 是事件通知的接收方。你可以根据需要添加相应的逻辑,以建立或取消建立事件通知连接。
需要注意的是,OnEventAdvise 方法通常被派生类重载,以提供特定的事件通知连接行为。在这个方法中,你可以使用 AtlAdvise 来建立连接,使用 AtlUnadvise 来取消连接。返回值为 TRUE 表示建立连接成功,返回 FALSE 表示建立连接失败。
转载请注明出处:http://www.zyzy.cn/article/detail/21175/MFC/COleControl