第1章 Microsoft对象技术概述
1.1 COM,DCOM,OLE和ActiveX
1.2 组件技术的演变
1.2.1 定制控制
1.2.2 Visual Basic扩展
1.2.3 OLE 1.0
1.2.4 OLE 2.0
1.3 理解OLE
1.3.1 从最终用户的角度观察OLE
1.3.2 从程序员的角度观察OLE
1.4 ActiveX概述
1.4.1 通过ActiveX扩展OLE技术
1.4.2 新的ActiveX技术
1.5 分布式组件对象模型DCOM
1.6 小结
第2章 对象的演变
2.1 对象和类
2.2 什么是面向对象
2.2.1 封装
2.2.2 继承
2.2.3 多态性
2.3 抽象的基类
2.4 类对象
2.5 从C++的观点看对象
2.5.1 C++中的封装
2.5.2 C++中的继承
2.5.3 C++中的方法重载
2.5.4 C++中的多态性
2.5.5 C++中的抽象基类
2.5.6 C++中的类对象
2.6 从COM的观点看对象
2.6.1 COM中的封装
2.7 COM中的继承
2.7.1 COM中的方法重载
2.7.2 COM中的多态性
2.7.3 COM中的类对象
2.8 小结
第3章 创建COM对象和接口
3.1 了解低级COM
3.2 客户与服务器
3.2.1 进程内服务器
3.2.2 本地服务器
3.2.3 远程服务器
3.2.4 代理
3.2.5 服务器的工作实现
3.3 用GUID标识类
3.3.1 生成GUID
3.3.2 将GUID放入源码
3.4 HRESULT返回类型
3.5 接口的构造
3.6 探索IUnknown
3.6.1 利用QueryInterface( )来获取不同的接口
3.6.2 引用计数:AddRef( )和Release( )
3.6.3 认识IUnknown
3.7 小结
第4章 实现COM客户和服务器
4.1 最简单的示例程序:Fortunel
4.2 Fortunel2示例程序
4.3 创建FortunelTeller接口
4.3.1 FortunelTeller接口
4.3.2 DECLARE-INTERFACE宏
4.3.3 interface关键字
4.3.4 STDMETHOD宏
4.3.5 PURE宏
4.4 宽字节字符集和国际化的字符串
4.4.1 在宽字节字符集与NASI之间转换字符串
4.4.2 BSTR,COM字符串类型
4.5 重新创建CFortuneTeller为ComFortuneTeller
4.5.1 ComFortuneTeller类
4.5.2 VerboseMsg( )函数
4.5.3 IUnKnow接口的ComFortuneTeller实现
4.5.4 全局数据
4.5.5 IFortuneTeller接口的ComFortuneTeller类实现
4.6 ComFortuneTeller类
4.6.1 IClassFactory接口
4.6.2 实现ComFortuneTellerFactory
4.7 完成进程内服务器
4.7.1 DllGetClassObject( )函数
4.7.2 DllCanUnloadNow( )函数
4.8 创建客户
4.8.1 初始化
4.8.2 取回一个指向FortuneTeller对象的接口指针
4.8.3 使用
4.8.4 终止
4.9 注册服务器
4.9.1 注册表基础知识
4.9.2 COM类和注册表
4.10 小结
第5章 使用MFC进行COM编程
5.1 MFC简介
5.2 MFC和OLE/ActiveX
5.3 ActiveX模板库
5.4 多重组件和它的多重接口
5.5 多重接口支持不是聚合
5.6 多重接口和多重工业继承
5.6.1 符号冲突的问题
5.7 使用嵌套类输出多重接口
5.7.1 Fortune3示例程序
5.7.2 ComFortuneTeller的MFC版本
5.7.3 CCmdTarget类中的IUnknown实现
5.7.4 声明嵌套类
5.7.5 INTERFACE-MAP,OLECREATE和DYNCREATE宏
5.7.6 实现MFC ComFortune Teller类
5.7.7 使用IMPLEMENT-DYNCREATE和IMPLEMENT-OLECREATE实现MFC类工厂
5.7.8 声明和实现接口映射
5.7.9 在MFC服务器中对对象实例进行计数
5.7.10 为嵌套类实现IUnknown接口
5.7.11 IMPLEMENT-NESTED-IUNKNOWN宏
5.7.12 实现IFortuneTeller和IQuotation接口
5.7.13 完成基于MFC的Fortune3服务器
5.7.14 Fortune3客户程序
5.8 小结
第6章 使用聚合模拟继承
6.1 聚合的功能
6.1.1 聚合的机制
6.2 聚合和MFC风格
6.3 创建机器人组件
6.3.1 IRobot接口
6.3.2 ISimpleDrawable接口
6.3.3 ComRobot COM类
6.3.4 客户和服务器
6.3.5 客户程序主窗口
6.4 使用聚合的NoisyRobot组件
6.5 小结
第7章 使用本地服务器打破进程边界
7.1 为什么建立本地服务器
7.1.1 编排中间层
7.1.2 代理与占位模块
7.2 接口定义语言
7.3 编制定制组件的IDL文件
7.3.1 Import
7.3.2 Typedef
7.3.3 Interface
7.3.4 方法原型
7.3.5 Coclass
7.4 将MIDL集成到Developer Studio中
7.5 COM实例:比萨饼订购向导
7.5.1 ComPizzaorderTaker类
7.5.2 PizzaOrderTaker本地服务器
7.5.3 代理/占位模块DLL
7.5.4 向导客户
7.6 小结
第8章 使用ActiveX模板创建COM对象
8.1 ATL简介
8.1.1 ATL与C++模板
8.1.2 多重继承
8.1.3 自动化和双重接口
8.1.4 Tear-off接口
8.2 ATL的体系结构
8.2.1 CComModule
8.2.2 CComObjectRoot
8.2.3 CComObject
8.2.4 CComCoClass
8.2.5 在定制接口中混合
8.3 比萨饼订购实例的ATL版本
8.3.1 用ATL声明ComPizzaOrderTaker类
8.3.2 实现ATL ComPizzaOrderTaker类
8.3.3 建立本地服务器
8.3.4 建立进程内服务器
8.4 注册表脚本程序和注册表管理程序
8.4.1 测试注册表脚本程序
8.4.2 编写注册表脚本程序
8.4.3 调用注册表管理程序
8.4.4 宏替换
8.5 增加新的向民地配置入口
8.6 小结
第9章 分布式对象概述
9.1 分布式系统的发展
9.1.1 传统系统
9.1.2 客户/服务器
9.2 分布式COM
9.2.1 对象RPCs
9.2.2 OXID
9.2.3 传递接口指针
9.2.4 优化DCOM
9.2.5 Pinging
9.3 小结
第10章 安全性
10.1 安全支持提供者接口
10.2 NT安全性概述
10.2.1 安全性描述符
10.2.2 安全ID
10.2.3 访问控制列表
10.2.4 用户配置文件
10.2.5 访问标记
10.3 COM安全性
10.3.1 认证安全性
10.3.2 模仿安全性
10.3.3 激活安全性
10.3.4 调用安全性
10.3.5 示例
10.3.6 示例1
10.3.7 示例2
10.4 COM对象身份鉴别
10.5 进程内安全性
10.6 安全性覆盖和模仿
10.6.1 IClientSecurity
10.6.2 IServerSecurity
10.7 DCOM与CAPI
10.8 小结
第11章 使用不同的COM线程模型
11.1 线程函数
11.1.1 CreateThread( )
11.1.2 SuspendThread( )和ResumeThread( )
11.1.3 TerminateThread( )
11.1.4 GetExitCodeThread( )
11.1.5 ExitThread( )
11.1.6 beginthreadex( )
11.1.7 线程局部存储区
11.2 线程类型
11.2.1 工作线程
11.2.2 消息队列线程
11.2.3 线程池
11.2.4 窗口线程
11.2.5 单元线程
11.2.6 纤程
11.3 线程同步
11.3.1 事件
11.3.2 互斥变量
11.3.3 临界区
11.3.4 信号量
11.4 COM线程模型
11.4.1 单线程模型
11.4.2 单元线程模型
11.4.3 自由线程模型
11.5 小结
第12章 揭开自动化的面纱
12.1 自动化的特征
12.1.1 自动化数据类型
12.2 自动化和事件支持
12.3 在MFC中支持自动化
12.4 在ATL中支持自动化
12.4.1 客户(控制器)
12.4.2 CComDispatchDriver
12.4.3 服务器
12.5 特殊意义的DispID
12.6 小结
第13章 使用分布式对象
13.1 远程对象实例化
13.1.1 远程存在的COM组件
13.1.2 CoCreateInstanceEx
13.1.3 决定什么时候使用进程内服务器、本地服务器或远程服务器
13.2 设计分布式对象应用
13.2.1 可扩缩性
13.2.2 负载平衡
13.2.3 连接到服务对象
13.2.4 事件通知和可连接对象
13.3 分布式比萨饼订购系统
13.3.1 新的PizzaOrderTaker服务器
13.3.2 定位器类
13.3.3 PizzaMaker服务器
13.3.4 PizzaMaker服务器查看器
13.4 小结