第l章 COM+介绍
1. 1 组件的革命
1. 1. 1 两个目标
1. 1. 2 单一的大模块与组件模型的比较
1. 2 COM的产生
1. 3 什么是COM
1. 4 组件对象
1. 5 服务器程序和客户端程序
1. 6 COM怎样工作:接口和虚函数表
1. 6. 1 接口
1. 6. 2 vtable(虚函数表)
1. 7 IUnknown
1. 8 接口定义语言和类型库
1. 9 全局惟一标识
1. 10 COM API
第2章 COM基础:创建一个简单的组件和客户端程序
2. 1 创建步骤
2. 2 传统的Stopwatch实现
2. 2. 1 最初的Stopwatch的设计
2. 2. 2 建立Timers. dll库
2. 3 创建StopwatchClient. exe
2. 4 回顾一下起点
2. 5 添加IUnknown
2. 5. 1 实现IUnknown的两种方法
2. 5. 2 IUnknown必须被完全实现
2. 5. 3 添加IUnknown
2. 6 实现QueryInterface()
2. 6. 1 QueryInterface()规则
2. 6. 2 生成GUID
2. 6. 3 添加QueryInterface()
2. 6. 4 调用QueryInterface()
2. 7 引用计数
2. 7. 1 实现引用计数
2. 7. 2 使用COM引用计数
2. 8 构建一个类工厂
2. 9 使用COMAPl
2. 9. 1 注册服务器程序
2. 9. 2 初始化和取消初始化COM
2. 9. 3 用CoCreateInstance()实例化组件对象
2. 10 回顾一下COM组件的关键元素
第3章 ATL介绍
3, 1 使用ATL应用程序向导创建COM服务器程序
3. 1. 1 运行ATL应用程序向导
3. 1. 2 完成向导
3. 2 添加COM对象
3. 2. 1 线程模式
3. 2. 2 接口
3. 2. 3 聚合
3. 2. 4 支持ISupportErrorInfo
3. 2. 5 支持连接点
3. 2. 6 结束向导
3. 3 增加Stopwatch的方法和属性
3. 3. 1 声明方法和属性
3. 3. 2 添加计时代码
3. 3. 3 注册组件
3. 4 通过客户端程序访问Stopwatch组件
第4章 接口定义语言介绍
4. 1 从MIDL编译器输出
4. 2 IDL基础
4. 3 接口
4. 3. 1 接口标题属性
4. 3. 2 接口声明
4. 4 C++接口定义
4. 5 方法
4. 6 参数
4. 7 属性
4. 7. 1 属性的标志
4. 7. 2 读写属性
4. 7. 3 属性的附加参数
4. 8 定义类型库
4. 9 向Stopwatch添加Overhead属性
第5章 COM的客户端程序及智能指针的使用
5. 1 客户端程序概述
5. 2 初始化和取消初始化COM
子系统
5. 3 实例化COM对象
5. 4 将COM服务器程序定义导出到客户端程序
5. 5 智能指针
5. 6 _com_ptr_t模板类
5. 7 新类型的IStopwatch
5. 8 使用异常处理错误
5. 9 混合使用智能指针与原始接口
5. 10 跨COM边界传递接口
5. 11 另一COM客户端程序示例
第6章 处理通称为BSTR的COM字符串
6. 1 COM字符串基础
6. 1. 1 Unicode与ANSI数据类型
6. 1. 2 OLECHAR. LPOLESTR和LPCOLESTR
6. 1. 3 处理LPOLESTR
6. 1. 4 是否执行Unicode编译
6. 1. 5 TCHAR
6. 1. 6 使用BSTR处理不同大小的字符串
6. 1. 7 处理BSTR的常用API函数
6. 1. 8 跨COM边界的字符串内存管理
6. 1. 9 字符串转换函数
6. 2 CComBSTR
6. 3 bstr t
6. 4 选择字符串封装器
第7章 其他COM数据类型
7. 1 有效的COM数据类型
7. 2 使用VARIANT BOOL的Boolean值
7. 3 变量数据类型
7. 3. 1 VARIANT结构
7. 3. 2 常用变量处理API函数
7. 3. 3 CComVariant
7. 3. 4 variant t
7. 4 枚举
7. 5 可选参数
7. 6 指定默认值
7. 7 传递数组
7. 8 传递数目可变的自变量
7. 9 传递COM对象
第8章 浏览IDispatch
8. 1 创建支持双重接口的Stopwatch组件
8. 1. 1 在IDL中声明双重接口
8. 1. 2 接口继承和IDispatch
8. 1. 3 在组件内实现IDispatch
8. 1. 4 更新COM映射
8. 2 更改组件的版本
8. 2. 1 更新文件版本
8. 2. 2 更新注册表中的新CLSID和类型库版本
8. 3 测试IDispatch接口
8. 4 在C++COM客户程序中调用IDispatch接口
第9章 错误处理和组件调试
9. 1 HRESLUT结构
9. 2 使用定制HRESULT进行错误处理
9. 3 详细错误处理
9. 3. 1 IErrorlnfo接口
9. 3. 2 ISupportErrorlnfo接口
9. 3. 3 在Stopwatch项目中添加ISupportErrorInfo
9. 3. 4 在客户程序中使用详细错误处理
9. 3. 5 com error
9. 4 调试ATL代码
9. 4. 1 编写调试窗口的消息
9. 4. 2 使用ATLASSERT()验证一切正常
9. 4. 3 调试QueryInterface()和引用计数
9. 5 在调试器中运行客户程序和服务器程序
第10章 事件
10. 1 事件概述
10. 2 连接点
10. 3 创建支持事件的COM服务器程序
10. 3. 1 接口设计
10. 3. 2 添加倒计时组件并定义它的接口
10. 3. 3 实现ICountdown接口
10. 3. 4 实现连接点和激发事件
10. 3. 5 实现IProvideClasslnfo2
10. 4 接收组件的事件通知
10. 4. 1 创建ATL可执行文件
10. 4. 2 添加对话框
10. 4. 3 声明源接口实现
10. 4. 4 连接连接点
10. 4. 5 引用计数和连接点
10. 4. 6 使用内嵌监听器类避免循环引用计数
10. 4. 7 IDispEventlmpl和IDispEventSimplelmpl
第11章 ActiveX
11. 1 ActiveX控件
11. 2 开发一个ActiveX控件
11. 2. 1 创建一个空的ATL项目
11. 2. 2 添加一个控件模板
11. 2. 3 StopwatchControl对象
11. 2. 4 编译. 调试Stopwatch控件
11. 2. 5 为默认控件添加功能
11. 2. 6 添加一个按钮
11. 2. 7 添加一个定制属性页
11. 2. 8 持续性和属性包
第12章 DCOM
12. 1 为所有应用程序配置DCOM默认设置
12. 1. 1 Default Properties
12. 1. 2 Default Security
12. 1. 3 Default Protocols
12. 2 为DCOM配置一个特定的应用程序
12. 2. 1 配置客户端程序计算机
12. 2. 2 配置服务器程序计算机
12. 2. 3 运行客户端程序
12. 3 使用DCOM编程
12. 3. 1 CoCreateInstanceEx()
12. 3. 2 一个DCOM客户端程序示例
12. 4 查找DCOM故障
12. 5 COM安全API函数
12. 5. 1 使用ColnitializeSecurity()配置安全许可
12. 5. 2 扮演客户端程序的身份:ColmpersonateClient()
12. 5. 3 用CoQueryClientBlanket()确定安全设置
12. 6 调度
12. 6. 1 代理服务器和存根
12. 6. 2 定制调度
12. 6. 3 类型库调度
12. 6. 4 MIDL生成的代理服务器/存根
12. 7 DCOM小结
第13章 线程
13. 1 线程模型模拟
13. 1. 1 单一线程模型
13. 1. 2 公寓线程模型
13. 1. 3 自由线程模型
13. 1. 4 双线程模型
13. 1. 5 线程中立模型
13. 1. 6 自由线程化调度器
13. 2 跨公寓调度
13. 2. 1 拦截者--代理服务器和存根
13. 2. 2 使用工作者线程
13. 3 与ATL同步
13. 4 异步COM调用
13. 4. 1 在组件服务器程序中定义异步接口
13. 4. 2 异步地调用
13. 4. 3 异步方法完成通知
13. 4. 4 实现异步凹M服务器程序
第14章 COM+的发展过程
14. 1 为什么要用COM+
14. 2 COM+服务和术语介绍
14. 2. 1 组件服务
14. 2. 2 COM+服务
14. 2. 3 配置组件
14. 3 COM+如何工作概述
14. 3. 1 对象上下文细述
14. 3. 2 并发和活动
14. 4 COM+事务
14. 4. 1 数据一致性
14. 4. 2 调用事务支持
14. 4. 3 事务流
14. 4. 4 资源管理器和资源分发器
14. 4. 5 补偿资源管理器
14. 5 用排队组件编写分离应用程序
14. 6 发布和预定事件服务
14. 7 控制对象生存期来增加可升级性能
14. 7. 1 对象缓冲
14. 7. 2 即时激活
14. 7. 3 IObjectControl接口
14. 8 共享属性管理器
14. 9 基于角色的安全
14. 10 准备就绪
第15章 建立COM+系统
15. 1 示例程序
15. 2 创建一个可持续的组件
15. 3 建立HotelReservation. exe客户端应用程序
15. 4 COM+应用程序
15. 4. 1 COM=应用程序的两种类型
15. 4. 2 创建一个COM+应用程序
15. 4. 3 配置一个COM+应用程序
15. 5 利用COM+事件服务
15. 5. 1 创建事件类
15. 5. 2 把组件添加到ComponentServices
15. 5. 3 在ComponentServices中配置事件类
15. 5. 4 创建一个事件预定者
15. 5. 5 在ComponentServices中配置预定者
15. 5. 6 为预定者发布事件
15. 6 排队组件
15. 6. 1 创建一个可队列化组件
15. 6. 2 把组件配置为排队组件
15. 6. 3 实例化并调用排队组件
15. 6. 4 使用队列事件的分离. 异步预定者
15. 7 COM+事务
15. 7. 1 创建一个支持事务的组件
15. 7. 2 使用ObjectContext参加事务
15. 7. 3 为事务支持配置组件
15. 7. 4 通过编程在事务中包含可执行程序
15. 8 配置组件激活
15. 8. 1 对象缓冲
15. 8. 2 即时激活
15. 8. 3 利用组件内部的构造字符串
15. 8. 4 其他的Activation设置
15. 9 基于角色的安全
15. 10 调试服务器程序组件
15. 10. 1 调试配置为库应用程序的服务器程序组件
15. 10. 2 配置为服务器应用程序/从Active Workspace调试
15. 11 部署应用程序
15. 11. 1 应用程序代理服务器
15. 11. 2 服务器应用程序
15. 12 使用ATLCOMAppWizard建立一个MTS兼容的应用程序
15. 13 最后的想法