一直在致力于为广安计算机爱好者营造这样一个学习环境:"轻松、高效、实际、体贴"。虽然前路漫漫,但我们在探索着、慢慢成熟着…… 网站首页┊QQ号发布┊软件下载┊游戏外挂┊黑客技术┊广安博客┊交流论坛
设为首页
加入收藏
投稿信箱
网站首页 ┊操作系统 ┊系统集成 ┊程序开发 ┊网页制作 ┊图形图象 ┊安全技术 ┊黑客技术 ┊硬件 DIY ┊业内新闻 ┊广安博客 ┊交流社区
当前位置:广安计算机信息中心 -=> 程序开发 -=> VC++ -=> 正文  
热门文章
 普通文章 C程序设计语言概论 
 普通文章 学C++不得不看的一篇.. 
 普通文章 C++编程中的四个调试.. 
 普通文章 C#中的cookie编程 
 普通文章 VC++实现COM事件接收.. 
 普通文章 远程屏幕监视软件的设.. 
 普通文章 VC实现校正电脑时间 
 普通文章 C++开发常用工具"群英.. 
 普通文章 详细解析C++编写的AT.. 
 普通文章 专家教您如何在C语言.. 
相关文章
推荐文章
 ·暂无
VC++实现COM事件接收器 【字体:大 中 小】
作者:[Seraphim] 来源:[本站] 浏览:[ ] 评论:[] 
 
1、给程序添加ATL支持。
      右键->New ATL Object
2、实现IDispEventImpl 接口。
//EventSink.h
#import "..\Server\Debug\Server.exe" raw_interface_only,no_namespace,named_guids
class  CEventSink :
public IDispEventImpl<0, 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()
{
// TOD 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();
}
【 打印 】【 收藏 】【 评论 】
评一评(点击可查看更多评论)
 
广告服务

设为首页 - 加入收藏 - 关于我们 - 广告服务 - 版权申明 - 友情链接 - 网站地图