- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- 八年级上名著《红岩》第10章(讲练测).docx VIP
- 表面处理技术在高端装备制造中的应用与挑战报告2025.docx
- 汪曾祺《钓鱼大夫》阅读答案试题解析理解 .pdf VIP
- 家庭反暴强制报告制度及服务流程.docx VIP
- 聚醚多元醇企业标准.pdf VIP
- 八年级上名著《红岩》第11章(讲练测).docx VIP
- T_CIATCM 093—2020_基层医疗卫生机构中医诊疗区(中医馆)团体标准远程会诊系统建设指南中国中医药信息学会.pdf VIP
- 八年级上名著《红岩》第12章(讲练测).docx VIP
- 2025国投生物制造创新研究院有限公司招聘(31人)考试备考试题及答案解析.docx VIP
- 边坡位移监测记录表.xlsx VIP
文档评论(0)