在服务器端定义接口方法
客户端实现其方法
然后在服务端通过如下方法调用
 CComQIPtr<IConnectionPointContainer,&IID_IConnectionPointContainer>      pCPC( m_pFont );
         CComPtr<IConnectionPoint> pCP;
         if(pCPC)
         {
//查找该连接点
            pCPC->FindConnectionPointIID_IPropertyNotifySink,&pCP );
            if(pCP)
            {
               pCP->Advise( (IUnknown*) m_pFontNotifySink,
                            &m_pFontNotifySink>m_FontNotifyCookie );
            }
         }

解决方案 »

  1.   

    一个支持连接点的事件源组件要实现两个接口
    IConnectionPointContainer 和
    IConnectionPoint
    其实的和普通的COM没有分别。事件的引入接口其实是由客户端实现的,我们只要简单的在IDL定义它就行了,不必实现。如果是ATL,向导会为每个连接点引入接口实现一个包装类,事件的触发就是在这里完成的。客户端组件实现起来也是很容易的,注意一点就是事件的触发是用IDispatch接口的方法Invoke来实现,所以你的接收器组件一定要实现IDispatch.可以看一下IDispEventSimpleImpl和IDispEventImpl的帮助。事实上如果事件源和接收器都是你自己写的话,会有更简单的方法实现它。