设为首页
加入收藏
首页
C语言
C++
面试
Linux
函数
Windows
数据库
下载
搜索
我要投稿
全站搜索
文章
图片
软件
视频
商品
FLASH
产品
高级搜索
当前位置:
首页
->
基础
->
windows编程基础
TOP
ATL简介(五)
2012-11-04 15:22:13
来源:
作者: 【
大
中
小
】 浏览:
1060
次
Tags:
ATL
简介
2. 加入ATL类
完成工程的创建和设置以后,下一步就是向工程中加入一个新的ATL类。Visual Studio集成环境提供了向导工具“ATL Object Wizard”用于加入一个新的ATL类。操作过程并不复杂,只是一组对话框操作而已。
首先通过集成环境的“Insert”菜单下的“New ATL Object…”命令进入“ATL Object Wizard”对话框,如图3所示。
图3 ATL Object Wizard对话框示意图
这个对话框即为创建ATL对象的向导起始界面。对话框的左边部分说明了待创建对象的基本类型,这里主要有以下的几种类型:
对象(Object)基本的COM对象类型;
控制(Control)ActiveX Control类型的ATL对象;
其他(Miscellaneous)辅助功能,如对话框的生成等;
数据访问(Data Access)数据访问,支持MTS等。
右边部分说明了每种类型的详细内容,对于一般的COM服务程序,使用对象表中的简单对象(Simple Object)就可以了。
选定待创建对象的基本类型以后,单击“Next>”按钮进入下一步,进入对象属性设置对话框,如图4和图5所示。
对象属性设置分为两个过程:先是对象名字标识的设定,然后是对对象的基本属性进行设置。首先是对象的名字标识设置,如图4所示。
图4 对象名字标识设置对话框示意图
在对象标识编辑框中输入待创建对象的名字,ATL对象向导将同步地根据用户输入的对象标识设定该对象的
C++
(www.cppentry.com)标识和COM标识。对象的
C++
(www.cppentry.com)标识包括对象的类名,cpp文件名和头文件名。COM标识包括对象在类型库中的CoClass段和实现的主接口的名字,同时还有在系统注册表中的类型名以及ProgID。
对象名字标识设置完成以后,选择对象属性页(Attribute)进入对象的属性设置页面,如图5所示。
图5 对象属性设置对话框示意图
对象的属性设置是ATL对象创建过程中最复杂的部分,包括以下几个主要部分:
对象的线程模型(Thread Model)
对象的线程模型是COM对象在多线程环境下被访问时对访问方式的控制,缺省情况下在ATL中采用的是套间模型Apartment,由系统通过消息队列方式提供并发控制。
对象的接口模型(Interface)
COM对象的接口可以是双接口(Dual Interface)。双接口不同于普通接口(Custom Interface) 之处在于双接口是从Automation基本接口IDispatch继承的,而普通接口是从IUnknown接口直接继承来的。缺省的接口模型是双接口。
对象的聚合模型(Aggregate)
COM规范不允许对象的实现继承,但是可以通过聚合方式重用其它的COM对象。ATL对象属性设置中的聚合模型可以指定待创建的COM对象是否支持聚合模型。缺省的选项是支持对象的聚合。
对象对错误处理的支持(Support ISupportErrorInfo)
选取这个选项可以在对象的运行过程中支持错误处理。缺省情况下这个选项不被选中。
对象对连接点的支持(Support Connection Points)
连接点是COM对象的事件机制。选中这个选项可以使待创建的COM对象具有发出事件的能力。缺省情况下该选项不被选中。
对象对自由线程调度的支持(Free Thread Marshaller, 简称FTM)
对象的自由线程调度是对象在处于自由线程模型状态下,为了简化对象的访问过程而采用的一种优化策略。缺省情况下该选项不被选中。
对于上述的任何一个选项的详细描述都涉及到COM技术一些核心的内容,并且都已超出本文的范围,因此本文只对ATL给出的缺省选项加以说明,对这些内容感兴趣的读者可以参考Microsoft提供的文档。
完成了上面的设置以后,就可以按“OK”按钮完成对象的创建过程。下一步就是向所生成的ATL类的接口中加入成员函数的定义,以及接口成员函数的实现过程。
首页
上一页
2
3
4
5
6
下一页
尾页
5
/6/6
【
大
中
小
】【
打印
】
【
繁体
】【
投稿
】【
收藏
】 【
推荐
】【
举报
】【
评论
】 【
关闭
】 【
返回顶部
】
分享到:
上一篇
:
共享内存实现进程间大数据的交换
下一篇
:
COM编程技术基础之二
评论
帐 号:
密码:
(
新用户注册
)
验 证 码:
表 情:
内 容:
Copyright@https://www.cppentry.com all rights reserved
粤ICP备13067022号-3
Powered by
qibosoft V7.0
Code © 2003-11
qibosoft