在 MFC(Microsoft Foundation Classes)中,COleControl::OnEventAdvise 方法是 COleControl 类的一个公共方法,用于建立和取消建立事件通知连接。

以下是 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