前言页 1
第1章 绪论:使用对象 1
1.1 概念和定义 1
1.2 组件对象模型 3
1.3 IUnknown接口 4
1.4 GUID和UUID 6
1.5 HRESULT 8
1.6 使用第一个COM对象 8
1.7 编写第一个COM对象 12
1.8 练习 19
第2章 对象服务器 23
2.1 为何提供COM对象 23
2.2 在客户端创建对象 26
2.3 服务器注册 28
2.4 类工厂 30
2.5 服务器的生存期 36
2.6 进程内服务器和进程外服务器 38
2.7 练习 40
第3章 自定义接口 41
3.1 VTBL接口和调度接口 41
3.2 接口的抽象定义 42
3.3 通过代理和占位程序的标准汇集 47
3.4 标准汇集与类型库 52
3.5 双接口 55
3.6 多重继承和错误处理 56
3.7 练习 63
4.1 概念和定义 65
第4章 自动化 65
4.2 基本的客户功能 68
4.3 基本的服务器功能 79
4.4 练习1:自动化客户 83
4.5 练习2:自动化服务器 84
第5章 类型库 87
5.1 概念和定义 87
5.2 构建类型库 89
5.3 类型库中描述的对象类型 90
5.4 部署和注册类型库 93
5.5 读取类型库 95
5.6 练习 106
6.1 概念和定义 107
第6章 线程和COM 107
6.2 线程单元 108
6.3 单线程单元的例子 113
6.4 多线程单元的例子 116
6.5 单元间对象汇集 122
6.6 线程和.EXE服务器 124
6.7 注册表条目ThreadingModel的值为Both的情况 131
6.8 练习 132
第7章 分布式COM(DCOM) 135
7.1 概念和定义 135
7.2 创建远程对象 137
7.3 启动安全性 143
7.4 远程客户身份 147
7.5 调用安全性和身份验证 153
7.6 DCOM中的性能 159
7.7 全局运行对象范例 160
7.8 练习 165
第8章 永久对象 167
8.1 概念和定义 167
8.2 使用永久对象 170
8.3 实现永久对象 174
8.4 练习 179
第9章 Moniker 181
9.1 概念和定义 181
9.2 Moniker的类型 185
9.3 创建Moniker 186
9.4 绑定Moniker 188
9.5 编写自定久Moniker 190
9.6 复杂的绑定层次结构 196
9.7 练习 198
第10章 异步COM 199
10.1 概念和定义 199
10.2 声明异步接口 201
10.3 最简单的异步范例 202
10.4 完成后回调 209
10.5 练习 212
第11章 VC++对COM的支持 215
11.1 智能指针 215
11.2 用于C++客户的、使用类型库的包装类 222
11.3 对BSTR的支持 229
11.4 ANSI和双字节字符之间的转换 230
11.5 练习 232
第12章 活动模板库(ATL) 235
12.1 概念和定义 235
12.2 ATL对象服务器 236
12.3 ATL对象 239
12.4 ATL对象方法和属性 247
12.5 ATL对象的内部结构 252
12.6 调试ATL对象 257
12.7 练习 258
第13章 VB对COM的支持 259
13.1 概念和定义 259
13.2 VB对COM客户的支持 260
13.3 VB对COM服务器的支持 265
13.4 VB对COM错误的处理 272
13.5 VB中的COM线程 273
13.6 练习 275
第14章 VJ对COM的支持 277
14.1 概念和定义 277
14.2 使用Java编写COM客户 279
14.3 使用Java创建COM服务器 287
14.4 Java对COM错误的处理 292
14.5 在Jave中使用COM API 294
14.6 Java 中的COM线程 298
14.7 练习 300
附录A 包容聚集 301
A.1 概念和定义 301
A.2 包容 301
A.3 聚集 304