中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 未整理篇
自定义类实现连接点
作者:Vigorcsdn 时间:2003-02-11 11:09 出处:互联网 责编:chinaitpower
              摘要:自定义类实现连接点

连接点in COM
----------------------------------------------------------
1.连接点是COM中用来使组件与客户程序进行双向通信的手段.
2.连接点的实现在COM中也叫出接口的实现
3.出接口在组件中定义,但是在客户程序中实现,具体是在客户程序中
  定义一个类,这个类从组件的出接口派生.

连接点实现:

组件方:
1.照常规创建ATL组件,插入简单ATL对象,注意选中"Support Connection Points"
2.按上面步骤生成了"_IXXXEvents"接口,实际上就是我们要定义的出接口
3.在出接口中添加方法
4.在入接口中添加方法
5.修改.idl文件
  <1>dispinterface _IXXXEvents改成interface _IXXXEvents : IUnknown
  <2>去掉properties: 和methods:修饰符
  <3>[default, source] dispinterface _IXXXEvents该成[default, source] interface _IXXXEvents

6.Build一下,产生需要的类型定义
7.右键单击组件类(CXXX),选择"Implement Connection Point..",选中"_IXXXEvents",OK
8.这时会产生一个代理类CProxy_IXXXEvets,并且还有一个Fire_yourmethod...,
  这样,你就可以在组件中的入接口方法中调用该fire方法(就好象调用客户程序的方法样),实际上该方法封装了出接口
  中定义的方法

客户端:
1.拷贝serverProjectName.h 和 serverProjectName.tlb 文件到你的客户EXE项目文件夹下,并且在类头文件中添加
  #include "组件名.h"
  #import "组件名.tlb" named_guids raw_interfaces_only

2.创建一个类,从 _IXXXEvents派生
3.实现下例方法
  <1>HRESULT STDMETHODCALLTYPE QueryInterface(REFIID iid, void** ppvObject)
  <2>ULONG STDMETHODCALLTYPE AddRef()
  <3>ULONG STDMETHODCALLTYPE Release()
  <4>最后实现出接口中定义的方法
4.照常规创建COM对象,调用接口(入接口)方法

其实,出接口方法何时调用是在组件里设计的.

好了,上面就是连接点的实现,这样就可以在组件与客户程序间实现双向通信了,
如有不足地方,请指正
--------------------------------------------------------------------------------------------
                                                                                                                              vigor
                                                                                                                          2004.11.4


 


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有