《COM原理与应用》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:潘爱民
  • 出 版 社:北京:清华大学出版社
  • 出版年份:1999
  • ISBN:7302022682
  • 页数:457 页
图书介绍:内容简介 本书不仅介绍了C0M的基本原理及其扩展知识,还讲述了MTS及COM+的一些知识。全书分为三 部分,第一部分为C0M基础,第二部分为C0M扩展,第三部分为COM 应用与发展,介绍了组件化程序设 计思想以及多层软件结构模型。读者在学习了COM 的基本原理之后,结合MTS和C0M+所倡导的一些 概念,就可以从更高的层次来理解和使用C0M及C0M+了。

引言 1

第1部分 COM原理 9

第1章 概述 9

1.1 COM的起源 9

1.1.1 OLE的发展历史 10

1.1.2 组件的产生 10

1.1.3 面向对象的组件模型——COM 11

1.2.1 对象与接口 12

1.2 COM结构 12

1.2.2 客户/服务器模型 13

1.2.3 COM库 14

1.3 COM特性 15

1.3.1 语言无关性 15

1.3.2 进程透明特性 16

1.3.3 可重用性 17

1.4 COM的发展前景 17

1.4.1 COM与Windows操作系统 17

1.4.2 COM与数据库 18

1.4.3 COM与Intranet应用 19

1.4.4 COM与Internet 19

第2章 COM对象和接口 21

2.1 COM对象 21

2.1.1 COM对象的标识——CLSID 22

2.1.2 COM对象与C++对象的比较 23

2.2 COM接口 25

2.2.1 从API到COM接口 25

2.2.2 接口定义和标识 26

2.2.3 用C++语言定义接口 28

2.2.4 接口描述语言IDL 29

2.2.5 接口的内存模型 30

2.2.6 接口的一些特点 32

2.3 IUnknown接口 33

2.3.1 引用计数 34

2.3.2 实现引用计数 35

2.3.3 使用引用计数规则 39

2.3.4 接口查询 41

2.3.5 COM对象的接口原则 42

2.3.6 QueryInterface成员函数的实现 43

2.3.7 COM对象和接口图示法 45

2.4 字典组件例子程序 45

2.4.1 组件程序DictComp 46

2.4.2 客户程序DictCtrl 51

第3章 COM的实现 55

3.1 进程内组件和进程外组件 55

3.1.1 进程内组件 56

3.1.2 进程外组件 58

3.2.1 注册表结构 60

3.2 通过注册表管理COM对象 60

3.2.2 COM组件注册信息 61

3.2.3 COM组件的注册操作 63

3.3 类厂(class factory) 65

3.3.1 类厂和DllGetObjectClass函数 65

3.3.2 COM库与类厂的交互 66

3.3.3 类厂的实现 69

3.3.4 类厂对组件生存期的控制 73

3.4.1 COM库的初始化 74

3.4 COM库 74

3.4.2 COM库的内存管理 75

3.4.3 组件程序的装载和卸载 77

3.4.4 常用函数和HRESULT 79

3.5 COM实现过程 83

3.5.1 进程内组件与客户的协作过程 83

3.5.2 进程外组件与客户的协作过程 85

3.6.1 字典组件类厂的实现 87

3.6.2 字典对象的实现 87

3.6 字典组件例子程序的实现 87

3.6.3 全局引出函数的实现 88

3.6.4 客户程序DictCtrl 89

第4章 COM特性 92

4.1 可重用性:包容和聚合 92

4.1.1 包容和聚合 93

4.1.2 包容实现 95

4.1.3 聚合实现 99

4.1.4 聚合例子程序 108

4.2 进程透明性 110

4.2.1 列集(marshaling) 111

4.2.2 自定义列集 112

4.2.3 标准列集 116

4.2.4 标准列集的实现 121

4.2.5 进程外组件例子程序 125

4.3 安全性 126

4.3.1 Windows NT安全机制 127

4.3.2 激活安全性 128

4.3.3 调用安全性 131

4.4 多线程特性 132

4.4.1 Win32线程和COM线程 132

4.4.2 列集和同步 134

4.4.3 套间线程 135

4.4.4 自由线程 136

4.4.5 进程内组件的线程模型 137

第5章 用Visual C++开发COM应用 139

5.1 Win32 SDK和MFC介绍 139

5.1.1 Win32 SDK 140

5.1.2 MFC基础:应用类和窗口类 144

5.1.3 MFC应用结构 146

5.1.4 MFC库结构 148

5.2 MFC对COM应用的支持 149

5.2.1 用嵌套类实现COM接口 150

5.2.2 接口映射表 153

5.2.3 CCmdTarget类实现IUnknown 157

5.2.4 COM引出函数和类厂实现 159

5.3 用Visual C++开发COM应用 161

5.2.5 MFC对COM支持小结 161

5.3.1 利用AppWizard创建COM程序工程框架 162

5.3.2 利用ClassWizard添加COM对象类 164

5.3.3 ATL介绍 166

5.4 Visual C++与ActiveX应用 170

5.4.1 MFC对自动化的支持 170

5.4.2 MFC对 ActiveX控制的支持 171

5.4.3 MFC对复合文档的支持 172

第6章 可连接对象 175

第2部分 COM扩展 175

6.1 可连接对象结构模型 176

6.1.1 客户与可连接对象的关系 176

6.1.2 可连接对象的基本结构 177

6.1.3 客户方基本结构 178

6.2 实现可连接对象(源对象) 178

6.2.1 枚举器 179

6.2.3 连接点和IConnectionPoint接口 180

6.2.2 源对象和IConnectionPointContainer接口 180

6.2.4 建立连接过程 182

6.3 客户-源对象-接收器的协作过程 182

6.3.1 接收器的实现 183

6.3.2 事件的激发和处理 184

6.3.3 与出接口有关的类型信息 185

6.4 可连接对象的程序实现 186

6.4.1 用IDispatch接口作为出接口 187

6.4.2 MFC对连接和事件的支持 189

6.4.3 用MFC实现源对象 192

6.4.4 用MFC在客户程序中实现接收器 195

第7章 结构化存储 202

7.1 结构化存储基础 202

7.1.1 从文件系统进展到结构化存储 203

7.1.2 存储对象和流对象 205

7.1.3 用结构化存储设计应用 210

7.2 结构化存储特性 212

7.2.1 访问模式 212

7.2.2 事务机制 214

7.2.4 增量访问 216

7.2.3 命名规则 216

7.3 结构化存储实现:复合文档 217

7.3.1 LockBytes对象和ILockBytes接口 218

7.3.2 复合文档API函数介绍 219

7.3.3 零内存保存特性和IRootStorage接口 222

7.3.4 存储对象、流对象和文件的CLSID信息 222

7.3.5 复合文档与结构化存储 224

7.4 永久对象实现 224

7.4.1 永久接口 225

7.4.2 永久对象的存储特性 226

7.4.3 永久对象例子程序 228

7.4.4 复合文档例子程序 232

7.5 本章小结 238

第8章 命名和绑定技术 239

8.1 名字技术基础 239

8.1.1 COM名字对象 240

8.1.2 使用名字对象:绑定过程 240

8.2 IMoniker接口 242

8.2.1 名字管理 243

8.2.2 利用IMoniker实现绑定 244

8.2.3 管理复合名字对象 245

8.2.4 名字解析 246

8.3 复合名字对象 248

8.3.1 复合名字对象结构 248

8.3.2 ROT和绑定环境对象 249

8.3.3 复合名字对象绑定过程的剖析 253

8.3.4 IOleItemContainer接口 255

8.4.1 COM提供的系统名字对象 257

8.4 COM名字对象分类 257

8.4.2 URL名字对象 263

8.4.3 自定义名字对象 266

8.5 COM名字对象的应用 267

8.5.1 服务程序中名字对象的应用 268

8.5.2 客户程序中名字对象的应用 269

第9章 统一数据传输 272

9.1 统一数据传输基础 272

9.1.1 数据交换与传输协议的分离 272

9.1.2 应用:剪贴板和拖-放 274

9.2 数据传输机制 275

9.2.1 数据结构FORMATETC和STGMEDIUM 275

9.2.2 数据对象和IDataObject接口 279

9.2.3 通报连接机制 282

9.2.4 有关数据对象的小结 285

9.3 通过剪贴板传输数据 287

9.3.1 剪贴板协议机理和用法 287

9.3.2 MFC对剪贴板的支持 290

9.3.3 支持剪贴板操作的例子程序 293

9.4 拖-放数据传输协议 295

9.4.1 OLE拖-放传输协议 296

9.4.2 MFC对拖-放特性的支持 299

9.4.3 支持拖-放特性的例子程序 300

第10章 分布式COM(DCOM) 302

10.1 DCOM基本结构 302

10.1.1 从COM转向DCOM 303

10.1.2 DCOM对象的定位 304

10.1.3 列集(marshaling) 305

10.1.5 DCOM特性 306

10.1.4 对象RPC 306

10.2 对象激活 308

10.2.1 创建DCOM组件(一) 308

10.2.2 创建DCOM组件(二) 310

10.2.3 远程创建进程内组件:代理进程(surrogate) 313

10.2.4 如何连接到指定的远程对象实例 314

10.3 连接管理 316

10.3.1 更好地控制远程对象的生存期 316

10.3.3 连接点管理 317

10.3.2 pinging机制 317

10.3.4 连接传递 318

10.4 并发管理 318

10.4.1 线程模型 319

10.4.2 消息过滤器 321

10.5 DCOM安全模型 325

10.5.1 安全性策略 325

10.5.2 安全性配置 327

10.6 本章小结 330

11.1 自动化对象基础 333

第3部分 COM应用与发展 333

第11章 自动化(Automation)对象 333

11.1.1 自动化产生与发展 334

11.1.2 属性和方法 334

11.1.3 类型库和ODL 335

11.1.4 IDispatch接口 337

11.1.5 自动化兼容的数据类型 339

11.1.6 参数顺序、可选参数和命名参数 342

11.1.7 IDispatchEx接口 344

11.2 自动化对象实现 345

11.2.1 类型库支持 346

11.2.2 Invoke函数实现 350

11.2.3 异常处理 353

11.2.4 多语种——本地化 355

11.2.5 用CreateStdDispatch函数实现自动化对象 355

11.3 自动化对象应用 357

11.3.1 双接口 357

11.3.2 迟绑定和早绑定 359

11.3.3 自动化集合对象 360

11.3.4 以IDispatch作为出接口 361

11.3.5 自动化控制器 362

11.4 自动化对象编程 364

11.4.1 MFC对自动化对象的支持 364

11.4.2 COleDispatchDriver类 367

11.4.3 在Visual Basic中使用自动化对象 368

11.5 例子程序 370

11.5.1 例子程序1——具有计算器功能的自动化对象 370

11.5.2 例子程序2——自动化客户程序 371

11.5.3 例子程序3——在Excel中使用计算器对象 373

第12章 ActiveX控制 376

12.1 ActiveX控制基础 377

12.1.1 实地激活 377

12.1.2 属性页 380

12.1.3 属性变化通知 384

12.2 ActiveX控制结构 385

12.2.1 ActiveX控制基本结构 385

12.2.2 包容器基本结构 387

12.2.3 IOleObject和IOleClientSite接口 389

12.2.4 IOleControl和IOleControlSite接口 391

12.2.5 用于ActiveX控制的标准分发ID 394

12.2.6 ActiveX控制的其他一些特点 397

12.3 ActiveX控制与Internet 399

12.3.1 从桌面环境转向Internet 399

12.3.2 包装ActiveX控制 402

12.3.3 许可证管理 405

12.3.4 Web页面中ActiveX控制的初始化 407

12.3.5 脚本支持与初始化安全性 408

12.4 ActiveX控制开发和应用 409

12.4.1 用MFC实现ActiveX控制——Smile例子程序 410

12.4.2 用MFC实现ActiveX控制包容器——Smiley例子程序 412

第13章 基于COM的程序设计 415

13.1 组件化程序设计 415

13.1.1 面向对象程序设计方法 415

13.1.2 组件的概念和特点 417

13.1.3 基于COM的组件化程序设计方法 418

13.2.1 MTS基本结构 420

13.2 MTS介绍 420

13.2.2 MTS程序设计概念 422

13.2.3 MTS管理程序 424

13.2.4 MTS特性 426

13.3 多层软件结构 427

13.3.1 应用结构的发展 427

13.3.2 多层应用软件结构 429

13.3.3 多层结构的优点 432

13.4.1 Web应用基本结构 433

13.4 用COM设计Web应用 433

13.4.2 ASP与COM组件 434

13.5 本章小结 437

第14章 COM发展——COM+ 439

14.1 COM+基本介绍 439

14.1.1 Windows DNA策略 440

14.1.2 COM+基本结构 441

14.1.3 对象环境 443

14.2 COM+系统服务介绍 444

14.2.1 COM+队列组件 445

14.2.2 COM+事件模型 446

14.2.3 负载平衡 447

14.2.4 内存数据库(IMDB) 448

14.2.5 对其他服务的增强 449

14.3 COM+应用开发 451

14.3.1 应用开发支持 451

14.3.2 基于属性的C++编程语言 452

14.4 本章小结 453

附录:部分术语英汉对照表 455