【 tulaoshi.com - 编程语言 】
                             
                            1、给程序添加ATL支持。右键-New ATL Object2、实现IDispEventImpl 接口。//EventSink.h#import "..ServerDebugServer.exe" raw_interface_only,no_namespace,named_guidsclass  CEventSink :   
  public IDispEventImpl0, CEventSink,&DIID__IObjEvents,&LIBID_SERVERLib, 1, 0  
  {  
  public:  
  CEventSink()  
  {  
  }  
  public:  
  BEGIN_SINK_MAP(CEventSink)  
  SINK_ENTRY_EX(0, DIID__IObjEvents, 1, cbFunc01)  
  END_SINK_MAP()  
  STDMETHOD(cbFunc01)();  
  };  
  //EventSink.cpp#include "stdafx.h"  
  #include "EventSink.h"STDMETHODIMP CEventSink::cbFunc01()  
  {  
  AfxMessageBox("called by Event from dll Server !");return S_OK;  
  }  
  3、连接对象// ClientDlg.cpp : implementation file  
  //  
  #include "EventSink.h"  
  void CClientDlg::OnButton1()   
  {  
  // TODO: Add your control notification handler code here  
  ::CoInitialize(NULL);  
  {  
  IObjPtr pObj;  
  CEventSink *pEventSink= new CEventSink;  
  pObj.CreateInstance(__uuidof(Obj));  
  pEventSink-DispEventAdvise(pObj);  
  pObj-Func01();  
  pEventSink-DispEventUnadvise(pObj);  
  delete pEventSink;  
  }  
  ::CoUninitialize();  
  }