VC++实现COM事件接收器

2016-02-19 18:06 45 1 收藏

关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享VC++实现COM事件接收器教程,希望对大家能有一点小小的帮助。

【 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();
  
  }

来源:http://www.tulaoshi.com/n/20160219/1616804.html

延伸阅读
一、引 言 ---- Windows Socket API是一套开放的、支持多种协议的Windows下的网络编程接口,它包 括一个标准的 Berkeley Socket功能调用的集合,以及为Windows所作的重要扩充。 Windows Socket经过不断完善并在众 多公司的全力支持下,已成为Windows网络编程 的事实上的标准。 ---- 本 文 将 在VC++ 5.0 环 境 下 介 绍 一个基于 Winsock ...
COM 中的典型方案是让客户端对象实例化服务器对象,然后调用这些对象。然而,没有一种特殊机制的话,这些服务器对象将很难转向并回调到客户端对象。COM 连接点便提供了这种特殊机制,实现了服务器和客户端之间的双向通信。使用连接点,服务器能够在服务器上发生某些事件时调用客户端。 原理如下图: 有了连接点,服务器可通过定义一...
一、函数调用捆绑   1、定义 捆绑:把函数体与函数调用相联系称为捆绑。当捆绑在程序运行之前(由编译器和连接器)完成时,称为早捆绑。(C编译只有一种函数调用,就是早捆绑)如果捆绑发生在运行时,则称为晚捆绑(或动态捆绑、运行时捆绑。 虚函数:如果我们在定义基类时在函数前加关键字virtual,则会告诉编译器对于此函数...
一、 引言 我们在上网浏览时,有时访问到某些网站的网页时会自动弹出一些广告窗口,甚至有不少个人主页为了利用网络广告来赚钱一下同时弹出几个甚至十几个广告窗口。这些窗口一个一个的关掉十分麻烦,而且如果不关的话又会占用大量的系统资源,所以不少人对此深恶痛绝,作为程序员可以利用自身技术优势根据自己的实际需要编制一些很适合...
工作中经常碰到一些程序,它们在系统启动的过程中,自动打开并运行,以便实现对系统的监控或者病毒的检测等特定的目的,典型的例子就是常用的一些杀毒软件如:KV300及瑞星杀毒软件等。笔者在此,以自己的编程实践为基础,说明这些程序自动启动的原理和方法,同时对一些典型程序代码进行分析,以便读者在今后的编程过程中使用。 一、 ...

经验教程

115

收藏

86
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部