第1章 你好,ATL 1
1.1 什么是ATL 1
1.2 创建COM服务器 2
1.3 插入COM类 6
1.4 添加属性和方法 12
1.5 实现附加接口 15
1.6 脚本支持 18
1.7 添加永久性 19
1.8 添加和激发事件 21
1.9 使用窗口 23
1.10 COM控件 26
1.11 容纳控件 28
1.12 ATL Server Web项目 32
1.13 总结 42
第2章 字符串和文本 43
2.1 字符串数据类型、转换类和辅助函数 43
2.2 智能BSTR类CComBSTR 56
2.3 CComBSTR类 57
2.4 CString类 75
2.5 总结 97
第3章 ATL智能类型 99
3.1 智能VARIANT类CComVariant 99
3.2 智能SAFEARRAY类CComSafeArray 114
3.3 智能指针类CComPtr和CComQIPtr 137
3.4 智能指针类CAutoPtr和CAutoVectorPtr 160
3.5 ATL内存管理器 167
3.6 总结 174
第4章 ATL中的对象 175
4.1 实现IUnknown 175
4.2 ATL的层次 177
4.3 线程模型支持 179
4.4 IUnknow核心 190
4.5 我们的类 199
4.6 CComObject以及其他 205
4.7 ATL创建者 220
4.8 调试 235
4.9 总结 242
第5章 COM服务器 243
5.1 回顾COM服务器 243
5.2 对象映射表和CAtlModule类 245
5.3 对象映射表 246
5.4 对象映射类要求的方法 252
5.5 CAtlModule类 287
5.6 重游CComCoClass 293
5.7 ATL与C运行时库 296
5.8 总结 298
第6章 接口映射表 299
6.1 回顾:COM的实体身份 299
6.2 表驱动的QueryInterface 301
6.3 多重继承 308
6.4 Tear-off接口 319
6.5 聚合:外部控制对象 328
6.6 接口映射表链 337
6.7 尽管说“不” 338
6.8 调试 339
6.9 扩展性 340
6.10 总结 344
第7章 ATL中的永久性 345
7.1 回顾COM的永久性 345
7.2 ATL的永久性实现类 355
7.3 属性映射表 356
7.4 永久性实现 358
7.5 其他永久性实现 372
7.6 使用永久性添加“按值列集”的语义 376
7.7 总结 379
第8章 集合和枚举器 381
8.1 COM集合和枚举接口 381
8.2 枚举数组 394
8.3 枚举标准的C++集合 405
8.4 集合 416
8.5 ATL数据类型的标准C++集合 421
8.6 ATL集合 427
8.7 对象模型 435
8.8 总结 440
第9章 连接点 441
9.1 回顾连接点 441
9.2 创建基于ATL的可连接对象 445
9.3 创建一个接收事件的对象 457
9.4 它是怎么工作的:杂乱的实现细节 468
9.5 总结 488
第10章 窗口 489
10.1 Windows应用程序的结构 489
10.2 CWindow 492
10.3 CWindowImpl 498
10.4 CDialogImpl 542
10.5 Windows控件包装类 553
10.6 CContainedWindow 559
10.7 总结 565
第11章 ActiveX控件 567
11.1 回顾ActiveX控件 567
11.2 BullsEye控件需求 569
11.3 使用ATL向导创建初始的控件 577
11.4初始的BullsEye源文件 583
11.5 逐步开发BullsEye控件 589
11.6 总结 630
第12章 控件包容 631
12.1 控件是如何被包容的 631
12.2 基本的控件包容 632
12.3 在对话框中容纳控件 670
12.4 复合控件 679
12.5 HTML控件 683
12.6 ATL控件包容的限制 695
12.7 总结 696
第13章 你好,ATL Server:一个新型的C++ Web平台 699
13.1 微软Web平台(因特网信息服务) 699
13.2 可能是可以运行的最简单ISAPI扩展 702
13.3 封装ISAPI 709
13.4 ATL Server 717
13.5 ATL Server中的Web服务 730
13.6 总结 737
第14章 ATL Server内幕 739
14.1 ATL Server中的ISAPI实现 739
14.2 服务器响应文件 748
14.3 请求处理程序示例 755
14.4 输入处理 758
14.5 会话管理 777
14.6 数据缓存 783
14.7 总结 786
附录A 实例展示C++模板 787
A.1 模板的必要性 787
A.2 模板基础 789
A.3 不同类型的多态 791
A.4 函数模板 796
A.5 成员函数模板 797
A.6 总结 798
附录B ATL头文件 799
附录C 移植到ATL 8 803
C.1 字符串、字符集和转换 803
C.2 与MFC共享的类 806
C.3 实现COM服务器 807
C.4 ActiveX控件和控件容纳 813
C.5 ATL_MIN_CRT变化 813
C.6 总结 814
附录D 属性化ATL 815
D.1 ATL Attributes的基础 815
D.2 属性化ATL的未来 824
D.3 总结 825
索引 827