第一章 COM 1
1.1 几个基本概念 2
1.2 客户与服务器 3
1.3 认识GUID、CLSID、IID 4
1.4 引用计数 4
1.5 虚拟方法表 5
1.6 IUnKnown接口 5
1.7 创建In-Process COM服务器 6
1.8 创建Out-of-Process COM服务器 11
第二章 对象接口 12
2.1 接口的文法 13
2.1.1 如何声明接口 13
2.1.2 祖先接口 15
2.1.3 接口标识符 15
2.1.5 如何实现接口 16
2.1.4 前问声明 16
2.1.6 映射 17
2.1.7 方法解析子句 18
2.1.8 委托一个特性来实现接口 20
2.2 分派接口 21
2.3 双重接口 23
2.4 对接口的引用 25
2.4.1 用赋值语句获得接口引用 25
2.4.2 赋值相容和类型强制转换 27
2.4.3 对派生接口的引用 28
2.4.4 接口查询 29
2.4.5 TInterfacedObject 29
2.5 使用接口的规则 30
2.6 用接口实现代码重用 34
第三章 ActiveX框架 36
3.1 什么是ActiveX框架 37
3.3 TComObject 38
3.2 TInterfacedObject 38
3.4 TTypedComObject 40
3.5 TAutoObject 40
3.6 TAutoIntfObject 41
3.7 TActiveXControl 42
3.8 TComServerObject 45
3.9 TComServer 46
3.10 TActiveForm 48
3.11 TPropertyPage 49
3.12 TComObjectFactory 50
3.13 TTypedComObjectFactory 53
3.14 TActiveXPropertyPageFactory 54
3.15 TAutoObjectFactory 54
3.16 TActiveXControlFactory 55
3.17 TActiveFormFactory 57
第四章 类型库 58
4.1 概述 59
4.2 “Type Library”编辑器的基本操作 60
4.2.1 创建一个新的类型库 60
4.2.2 打开一个已有的类型库 61
4.2.3 刷新类型库 61
4.2.4 保存和注册类型库 62
4.2.5 把类型库引入到当前项目中 62
4.2.6 引出类型库 63
4.2.7 发布类型库 64
4.3 “Type Library”编辑器的窗口 64
4.4 类型库的一般信息 65
4.5 接口 67
4.6 在接口中加入成员 68
4.7 分派接口 70
4.8 类型库枚举 71
4.9 组件类 72
4.10 别名、记录、联合和模块 73
4.11.1 属性表述 74
4.11 IDL文法 74
4.11.2 接口的文法 75
4.11.3 分派接口的文法 76
4.11.4 组件类的文法 76
4.11.5 枚举的文法 77
4.11.6 别名的文法 77
4.11.7 记录的文法 78
4.11.8 联合的文法 78
4.11.9 模块的文法 79
第五章ActiveX控件 80
5.1 创建ActiveX控件 81
5.1.1 如何转换基于TGraphicControl的控件 81
5.1.2 ActiveX控件向导 82
5.2.1 项目文件 84
5.2 向导创建了哪些文件 84
5.2.2 类型库的接口源文件 85
5.2.3 类型库接口的实现文件 90
5.2.4 About框的源文件 96
5.2.5 许可文件 97
5.3 编辑类型库 98
5.3.1 在接口中加入新的成员 98
5.3.2 加入新的特性 100
5.3.3 加入新的方法 100
5.3.4 加入新的事件 101
5.4 数据绑定 103
5.5 创建特性页 104
5.6 注册和安装ActiveX控件 108
5.7 使用ActiveX控件 110
5.8 ActiveForm 111
5.9.1 Project页 128
5.9 在Web上发布ActiveX 128
5.9.2 Packages页 129
5.9.3 Additional Files页 130
5.10 与Web浏览器交互 130
第六章 OLE Automation 142
6.1 引入Automation服务器的类型库 143
6.2 Olevariant类型 145
6.3 用Olevariant操纵Automation对象 149
6.3.1 创建Automation对象的实例 149
6.3.2 访问Automation对象的特性 151
6.3.3 访问Automation对象的方法 151
6.3.4 为什么会访问失败 152
6.4 创建Automation服务器的实例 153
6.5 Automation对象的类型库 154
6.5.1 类型库的接口描述文件 154
6.5.2 类型库接口的实现文件 159
6.5.3 编辑类型库 161
6.5.4 加入新的特性 162
6.5.5 加入新的方法 163
6.5.6 加入新的事件 164
6.6 注册和调试Automation服务器 165
6.7 一个典型的Automation客户 165
6.8 一个典型的Automation服务器 168
第七章 MTS 177
7.1 MTS组件 178
7.2 管理资源 179
7.3 基于角色的安全检查 181
7.4 资源分配器 181
7.5 基客户 183
7.6 MTS与COM、DCOM 183
7.7 创建MTS对象的一般步骤 184
7.8 向导生成了哪些文件 185
7.8.1 类型库的接口源文件 185
7.8.2 接口的实现单元 190
7.8.3 MTS对象的类型库 191
7.9 把MTS对象安装到MTS包中 191
7.10 MTS Explorer 192
7.11 TMtsAutoObject 193
7.12 建立事务对象 195
第八章 CORBA 197
8.1 CORBA应用程序的体系结构 198
8.2 Stub、Skeleton和Smart Agent 199
8.3 激活CORBA服务器 199
8.4 创建CORBA服务器的一般步骤 200
8.5 定义对象接口 201
8.6 自动生成的代码 203
8.7 在接口库中注册接口 210
8.8.1 使用Stub 211
8.8 CORBA客户程序 211
8.8.2 使用DII 212
8.9 自定义CORBA应用程序的行为 213
8.9.1 在客户程序中显示CORBA对象的名称 213
8.9.2 表露或隐藏CORBA对象 214
8.9.3 传递客户信息给服务器 214
8.10 分发CORBA应用程序 215
8.11 配置Smart Agent 215
8.11.1 启动Smart Agent 215
8.11.2 配置ORB域 216
8.11.3 连接不同局域网上的Smart Agent 216
第九章 Active Server Page 218
9.1 创建ASP对象 219
9.2 ASP对象的类型库 220
9.2.1 类型库的接口描述文件 220
9.2.2 ASP对象的接口实现单元 226
9.2.4 编辑ASP对象的类型库 227
9.2.3 ASP文档 227
9.2.5 加入新的特性 228
9.2.6 加入新的方法 229
9.3 在脚本中创建ASP对象的实例 230
9.4 注册和调试含有ASP对象的Automation服务器 231
第十章 WinSock 232
10.1 关于Socket的概述 233
10.2 建立服务器端Socket 233
10.3 建立客户端Socket 234
10.4 如何在网络上传输数据 235
10.5 在客户端使用多线程技术 236
10.6 在服务器端使用多线程技术 237
10.7 TCustomWinSocket 238
10.8 TClientWinSocket 244
10.9 TServerWinSocket 245
10.10 TServerClientWinSocket 249
10.11 TWinSocketStream 250
10.12 一个网上交谈(Chat)程序 252
第十一章 Internet协议 256
11.1 TPowersock 257
11.2 FTP 267
11.3 UDP 273
11.4 HTTP 277
11.5 SMTP 281
11.6 POP3 285
11.7 NNTP 289
第十二章 Web服务器应用程序 297
12.1 WWW是如何工作的 298
12.2 Web服务器扩展 299
12.3 Web服务器应用程序的逻辑结构 299
12.4 静态的HTML页面 300
12.5 动态的HTML页面 304
12.6 Web模块 305
12.7 Web调度器 307
12.8 Web动作项 308
12.9 HTTP请求消息 311
12.9.1 HTTP请求消息是如何传递的 311
12.9.2 TWebRequest对象 312
12.9.3 TISAPIRequest对象 320
12.9.4 TCGIRequest对象 321
12.9.5 TWinCGIRequest对象 321
12.9.6 一个例子 322
12.10 HTTP响应消息 323
12.10.1 建立HTTP响应消息 324
12.10.2 HTTP响应消息是如何传递的 324
12.10.3 自己传递HTTP响应消息 324
12.10.4 TWebResponse对象 325
12.10.5 TISAPIResponse对象 331
12.11 Cookie 332
12.10.7 TWinCGIResponse对象 332
12.10.6 TCGIResponse对象 332
12.12 重定向到另一个Web站点 334
12.13 数据流 335
12.14 与客户交互 337
12.15 网页生成器 340
12.15.1 建立HTML模板 340
12.15.2 指定HTML模板 342
12.15.3 返回转换后的结果 343
12.15.4 OnHTMLTag事件 343
12.15.5 TDataSetPageProducer 345
12.16 基于Web的数据库应用程序 345
12.16.1 用TSession管理数据库连接 345
12.16.2 建立数据集 345
12.16.3 把数据集转换为HTML页面 346
12.16.4 把HTML表格传给客户 346
12.17 TDataSetTableProducer元件 347
12.18 TQueryTableProducer元件 352
12.19 操纵Web服务器应用程序 353
12.19.1 TWebApplication对象 354
12.19.2 TCGIIApplication对象 356
12.19.3 TISAPIApplication对象 356
12.20 调试Web服务器应用程序 356
19.20.1 调试ISAPI或NSAPI类型的Web服务器应用程序 357
19.20.2 调试CGI或Win-CGI类型的Web服务器应用程序 358
12.21 两个典型的Web服务器应用程序 358
第十三章 MIDAS Web应用程序 366
13.1 以ActiveX控件或ActiveForm作为客户端 367
13.2 创建MIDAS Server for InternetExpress 368
13.3 创建MIDAS Web应用程序 371
13.4 使用JavaScript库 373
13.5 授权启动和访问MIDAS Server 373
13.6 使用XML Broker 374
13.7 MIDAS网页生成器 380
13.8 Web网页编辑器 383
13.9 在运行期操纵Web组件 385
13.9.1 TWebComponentList 385
13.9.2 TWebForm 387
13.9.3 TDataForm 387
13.9.4 TQueryForm 387
13.9.5 TWebControlGroup 388
13.9.6 TLayoutGroup 388
13.9.7 TXMLDisplayGroup 389
13.9.8 TDataGrid 389
13.9.9 TDataNavigator 390
13.9.10 TFieldGroup 391
13.9.11 TQueryButtons 391
13.9.12 TQueryFieldGroup 391
13.10 自定义HTML模板 391