深入解析ATL

深入解析ATL
作 者: Brent Rector Chris Sells 潘爱民 新语 潘爱民
出版社: 中国电力出版社
丛编项: 开发大师系列
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: COM/DCOM/ATL/COM+
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  BrentRector:WiseOwl咨询公司的总裁,该公司专门从事Windows/COM的开发和咨询。他也为DevelopMentor讲授COM、ATL和MTS课程。他以前的著作有《Win32Programming》、《DevelopingWindows3ApplicationwithMicrosoftSDK》和《DevelopingWindows3.1ApplicationswhihMicrosoftC/C++》。由于他在CompuServe的Windows论坛上的杰出贡献,他获得了Microsoft的年度MVP奖。

内容简介

ATL是专门用于开发COM组件的模板库,当前的最新版本是ATL 3.0(随Visual C++ 6.0发布),尽管它已经有将近5年的历史了,但是在国内ATL并没有被普及开来,我想原因有多个方面。第一,ATL涉及到的技术比较复杂,首先它是用来开发COM组件的,而COM本身比较偏于底层,从而导致ATL的背景要复杂得多;其次ATL是建立在C++的模板(template)语法基础上的,所以要想掌握ATL,必须具备比较好的C++基础,而这一点并不是很容易就能做到的。第二,ATL的参考资料很少,虽然ATL的源码是完全开放的,但是源码背后隐藏着许多概念和思想,这些概念和思想并不是直接体现出来的,好的资料源可以帮助我们抓住这些要点,并用好ATL。毫无疑问,本书是最好的ATL参考资料。本书不是一本讲述如何使用ATL的向导指南,它并不是简单地教您如何利用ATL中的模板类实现COM应用。相反,本书深入地讲解了ATL中模板类的结构、ATL如何实现COM的各种功能,并且也向您展示了ATL中大量的技巧,同时还指出了当前ATL中存在的一些错误和缺陷。虽然本书介绍的技术有相当的深度,但是作者的语言非常简练、表达清晰、结构安排也非常合理,所以全书读起来并不艰涩。

图书目录

译序

ATL之深入解析

英文版原序

前言

第1章 你好, ATL

1. 1 什么是ATL?

1. 2 创建COM服务器

1. 3 插入一个COM类

1. 4 加入属性和方法

1. 5 实现其他接口

1. 6 支持脚本

1. 7 添加永久性

1. 8 添加和激发事件

1. 9 使用窗口

1. 10 实现组件类别

1. 11 添加用户界面

1. 12 容纳控制

1. 13 总结

第2章 ATL智能类型

2. 1 字符串数据类型. 转换宏和辅助函数

2. 2 COM字符串数据类型——BSTR

2. 3 CComBSTR类

2. 4 智能VARIANT类ComVariant

2. 5 CComPtr. CComQIPtr和CComDispatchDriver智能指针类

2. 6 总结

第3章 ATL中的对象

3. 1 回顾COM套间

3. 2 ATL的层次

3. 3 线程模型支持

3. 4 IUnknown的核心

3. 5 我们的类

3. 6 CComObject及其他

3. 7 ATL创建者

3. 8 调试

3. 9 总结

第4章 CoM服务器

4. 1 回顾COM服务器

4. 2 对象映射表和CComModule类

4. 3 对象映射表

4. 4 对象映射类要求的方法

4. 5 CComModule类

4. 6 重游CComCoClass

4. 7 服务器优化编译选项

4. 8 总结

第5章 接口映射表

5. 1 回顾:COM的实体身份

5. 2 表驱动的QueryInterface

5. 3 多重继承

5. 4 tear—off接口

5. 5 聚合:外部控制对象

5. 6 接口映射表的技巧

5. 7 总结

第6章 ATL中的永久性

6. 1 回顾COM的永久性

6. 2 ATL永久实现类

6. 3 属性映射表

6. 4 永久实现

6. 5 其他永久实现

6. 6 使用永久功能加入“按值列集”的语义

6. 7 总结

第7章 集合和枚举器

7. 1 COM集合和枚举接口

7. 2 枚举数组

7. 3 枚举STL集合

7. 4 集合

7. 5 ATL数据类型的STL集合

7. 6 简单集合

7. 7 对象模型

7. 1 总结

第8章 连接点

8. 1 回顾连接点

8. 2 创建基于ATL的可连接对象

8. 3 创建一个接收事件的对象

8. 4 这一切是如何工作的:零散的实现细节

8. 5 总结

第9章 窗口

9. 1 Windows应用程序的结构

9. 2 CWindow

9. 3 CWindowImpl

9. 4 CDialogImpl

9. 5 Windows控制包装类

9. 6 CContainedWindow

9. 7 总结

第10章 ActiveX控制

10. 1 回顾ActiveX控制

10. 2 BullsEye控制的需求

10. 3 利用ATL向导创建初始的控制

10. 4 初始的BullsEye源文件

10. 5 循序渐进地开发BullsEye控制

10. 6 总结

第11章 控制包容

11. 1 控制是如何被包含的

11. 2 基本的控制容器

11. 3 在对话框中容纳一个控制

11. 4 复合控制

11. 5 HTML控制

11. 6 ATL控制包容的局限

11. 7 总结

附录A 用例子解析C++模板

A. 1 对模板的需求

A. 2 模板基础

A. 3 另一种多态性

A. 4 函数模板

A. 5 成员函数模板

A. 6 总结

 附录B ATL类和头文件