用ATL制作ActiveX控件及其使用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用ATL制作ActiveX控件及其使用   摘要:随着软件开发技术的发展,COM组件在现代编程中越来越重要,不懂得COM就很难跟上时代。COM为程序员开发Windows应用程序带来了便利,而COM最令人瞩目的实现就是ActiveX控件。该文介绍了如何用ATL技术制作轻量级的ActiveX控件,怎样在客户容器中与ActiveX控件通讯 关键词:COM;ATL;ActiveX;通讯 中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2017)10-0057-03 1.CoM,ActiveX和ATL概述 COM(Component Object Model,组件对象模型)是Windows操作系统的技术和核心,是搭建Windows应用程序的基础,COM技术规范描述了一种创建组件即可重复使用的对象的方法,它提供了一种基于接口查询的机制来完成对象之间的通讯,以客户/服务器程序的体系结构协同完成特定的功能,COM已经成为新世纪的Windows程序员必须掌握的技术,同时该技术已经成为Microsoft公司开发方向的重点,COM技术最令人瞩目的就是AcfiveX控件,ActiveX控件可以看作一种早期产品(即VBX)的延伸,同VBX相比,ActiveX定义了一个对程序设计语言中立的接口,ActiveX提供了如下的特性: 1.1语言的无关性 这使得基于Windows平台的开发工具可以混用AcfiveX控件,例如你可以用C++编写,而在Visual Basic中使用,达到二进制的设计标准 1.2软件版本升级的健壮性 ActiveX控件通过提供多接口机制支持软件版本升级的健壮性,ActiveX控件的不同功能用不同的接口向外展示,要为旧的组件添加新的功能时,为组件新添加一个接口就行了,这样旧的应用程序在不进行更新的情况下运行,同时新的应用程序可以通过查询新接口利用组件的新功能 1.3面向对象的特性 ActiveX控件允许以面向对象的方式?鞯萜涔δ埽?AcfiveX控件提供三种基本的面向对象的特性,即封装性、继承性和多态性,并且是以一种语言无关的方式提供的 1.4位置透明性 ActiveX控件的用户并不需要明确的了解它所处的位置,它可能在一个DLL(同一进程)中,可能在一个EXE(不同进程)中,也可能在一个远程计算机上(分布式组件对象) 早期开发ActiveX控件时,必须用MFC类库,与其相比,用ATL(Active Template Library,活动模板库)开发ActiveX控件具有如下优点:小型、快速、不依赖任何DLL文件,用ATL制作的ActiveX控件能更好地支持以上特性,现在,ATL逐渐成为未来的Windows程序开发中C++的框架,它已经成为Visual c++开发环境的一部分,能更好地支持ActiveX的特性 2.用ATL开发一个ActiveX控件 2.1建立工程 利用VC的向导新建一工程,工程类型为ATL COM Ap-pWizard,工程名为MyATLActiveX,单击OK,进人下一步,选择Dvnamic Hnk Library(DLL)服务类型,其他保持缺省设置 2.2建立对象框架 将工作空间窗口切换到Class View面板,右键点击MyAT-LActiveX Class,在弹出的菜单中选择NewATLObject项,进人ATL Object Wizd向导,在向导第一步中选择Coned类别和Full Control对象,单击下一步,在接下来的下一步中对新建的COM对象的属性进行设置,在Names页的ShortName框中输入组件的名字,我们输入MyATLAcfiveXCfl,其它由向导自动填充;在Attributes页中我们需要对COM对象的线程模型、接口类型等进行设置,我们设置如图1: 单击确定,生成MyATLActiveXCfl对象的框架,系统为我们添加了IMyATLActiveXCtl接口(输入接口)、_IMyATL Ac-tiveXCflEvents接口(输出接口)、MyATLActiveXCfl类、MyAT-LActiveX,idl文件(接口描述语言文件) 2.3添加方法 2.5建立代理类 要使客户容器能够使用ActiveX控件的输出函数,必须为事件创建代理类,这是COM技术的规范,便于与组件通讯时数据的传递,在MyATLActiveXCtl类上单击右键,在弹出的菜单中选择Implement Connection Point项,进入连接点向导,如图2所示,选择_IMyATLActiveXCtlEvents接口,单击OK按钮,向导自动为我们添加了CProxy_IMyATLAct

文档评论(0)

linsspace + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档