图书介绍
COM技术内幕 微软组件对象模型PDF|Epub|txt|kindle电子书版本网盘下载
![COM技术内幕 微软组件对象模型](https://www.shukui.net/cover/3/34873674.jpg)
- (美)(D.罗杰森)Dale Rogerson著;杨秀章译 著
- 出版社: 北京:清华大学出版社
- ISBN:730203320X
- 出版时间:1999
- 标注页数:294页
- 文件大小:36MB
- 文件页数:319页
- 主题词:COM/DCOM/ATL/COM+
PDF下载
下载说明
COM技术内幕 微软组件对象模型PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一章 组件1
1.1 使用组件的优点2
1.1.1 应用程序定制2
1.1.2 组件库3
1.1.3 分布式组件3
1.2 对组件的需求4
1.2.1 动态链接4
1.2.2 信息封装5
1.3 COM6
1.3.1 COM组件是7
1.3.2 COM不是7
1.3.5 COM超越了用户的需要8
1.3.4 COM方法8
1.3.3 COM库8
1.4 本章小结9
第2章 接口11
2.1 接口的作用11
2.1.1 可复用应用程序架构12
2.1.2 COM接口的其他优点13
2.2 COM接口的实现13
2.2.1 编码约定14
2.2.2 一个完整的例子15
2.2.3 非接口通信18
2.2.4 实现细节18
2.3.1 接口的不变性20
2.3.2 多态20
2.3 接口理论:第二部分20
2.4 接口的背后21
2.4.1 虚拟函数表21
2.4.2 vtbl指针及实例数据23
2.4.3 多重实例24
2.4.4 不同的类,相同的vtbl24
2.5 本章小结26
第3章 QueryInterface函数27
3.1 接口查询28
3.1.1 关于IUnknown28
3.1.2 IUnknown指针的获取29
3.1.3 关于QueryInterface29
3.1.4 QueryInterface的使用30
3.1.5 QueryInterface的实现31
3.1.6 关于类型转换32
3.1.7 一个完整的例子35
3.2 关于QueryInterface的实现规则40
3.2.1 同一个IUnknown40
3.2.2 客户可以获取曾经得到过的接口41
3.2.3 可以再次获取已经拥有的接口41
3.2.4 客户可以从任何接口返回到起始接口42
3.2.5 若能够从某接口获取某特定接口,则从任意接口都将能够获取此接口42
3.3 QueryInterface定义了组件43
3.3.1 接口集44
3.4 新版本组件的处理44
3.4.1 何时需要建立一个新版本46
3.4.2 不同版本接口的命名46
3.4.3 隐含合约46
3.5 本章小结47
第4章 引用计数48
4.1 生命期控制48
4.2 引用计数简介49
4.2.1 引用计数接口52
4.2.2 AddRef和Release的实现53
4.3 可时进行引用计数60
4.3.1 引用计数的优化60
4.3.2 引用计数规则63
4.4 本章小结65
第5章 动态链接66
5.1 组件的创建66
5.1.1 从DLL中输出函数67
5.1.2 DLL的装载69
5.2 客户和组件的划分71
5.2.1 程序清单72
5.3 对象串77
5.4 本章小结78
第6章 关于HRESULT、GUID、注册表及其他细节79
6.1 HRESULT79
6.1.1 HRESULT值的查找81
6.1.2 HRESULT值的使用83
6.1.3 用户自己代码的定义84
6.2 GUID86
6.2.1 为什么要使用GUID86
6.2.2 GUID的声明和定义87
6.2.3 GUID的比较89
6.2.4 将GUID作为组件标识符89
6.3.2 注册表编辑器90
6.3.1 注册表的组织90
6.2.5 通过引用传递GUID值90
6.3 Windosw注册表90
6.3.3 CLSID关键字结构91
6.3.4 关于注册表的其他细节92
6.3.5 ProgID93
6.3.6 自注册95
6.3.7 组件类别96
6.3.8 OleView97
6.4 COM库函数98
6.4.1 COM库的初始化98
6.4.2 内存管理98
6.4.3 将字符串转化成GUID99
6.5 本章小结101
7.1 CoCreateInstance102
第7章 类厂102
7.1.1 CoCreateInstance的声明103
7.1.2 CoCreateInstance的使用103
7.1.3 类上下文104
7.1.4 客户程序清单105
7.1.5 CoCreateInstance的不灵活性107
7.2 类厂107
7.2.1 CoGetClassObject107
7.2.2 ICLassFactory108
7.2.3 CoCreateInstance与CoGetClassObject的比较109
7.2.4 类厂的若干特性110
7.3 类厂的实现110
7.3.2 组件的创建过程111
7.3.1 DIIGetClassObject的使用111
7.3.3 组件代码清单112
7.3.4 流程控制119
7.3.5 组件的注册120
7.4 同一DLL中的多个组件121
7.4.1 类厂实现的复用122
7.5 DLL的卸载123
7.5.1 DIICanUnloaiINow的使用123
7.5.2 LockServer123
7.6 本章小结124
第8章 组件复用:包容与聚合125
8.1 包容和聚合126
8.1.1 包容简介126
8.1.3 包容与聚合的比较127
8.1.2 聚合简介127
8.2 包容的实现128
8.2.1 接口扩展131
8.3 聚合的实现132
8.3.1 QueryInterface的实现133
8.3.2 不正确的Iunknown135
8.3.3 聚合的未知接口136
8.3.4 内部组件的创建140
8.3.5 外部组件中指向内部组件接口的指针143
8.4 一个完整的例子145
8.4.1 盲目聚合161
8.5 现实世界中的聚合和包容163
8.5.1 组件的内部状态信息163
8.5.2 虚拟函数的模拟165
8.6 本章小结166
第9章 编程工作的简化167
9.1 客户端的简化167
9.1.1 智能接口指针168
9.1.2 C ++包装类179
9.2 服务器端的简化180
9.2.1 未知接口基类181
9.2.2 类厂基类185
9.2.3 CUnknown和CFastory的使用191
9.2.4 集成步骤196
9.3 本章小结197
第10章 EXE中的服务器198
10.1 不同的进程198
10.1.1. 本地过程调用199
10.1.2 调整200
10.1.3 代理/残根DLL200
10.2 IDL/MIDL简介202
10.2.1 关于IDL202
10.2.2 IDL接口描述举例203
10.2.3 MIDL编译器208
10.3 本地服务器的实现212
10.3.1 示例程序的运行212
10.3.2 去掉入口点函数213
10.3.3 类厂的启动213
10.3.4 对LockServer的修改217
10.4 远程访问能力219
10.4.1 DCOMCNFG.EXE所完成的工作220
10.4.2 工作机理221
10.4.3 其他DCOM信息222
10.5 本章小结224
第11章 调度接口与自动化225
11.1 一种新的通信方式226
11.1.1 旧的通信方式226
11.1.2 IDispatch接口226
11.2 IDispatch的使用230
11.2.1 Invoke函数的参数232
11.2.2 示例237
11.2.3 VARIANT类型239
11.2.4 BSTR数据类型241
11.2.5 SAFEARRAY类型242
11.3 类型库243
11.3.1 类型库的创建243
11.3.2 类型库的使用246
11.3.3 注册表中的类型库247
11.4 IDispatch接口的实现248
11.4.1 异常的引发250
11.4.2 参数调整251
11.5 本章小结252
第12章 多线程253
12.1 COM线程模型254
12.1.1 Win32线程254
12.1.2 COM线程254
12.1.3 套间255
12.1.4 套间线程257
12.1.5 自由线程258
12.1.6 调整与同步258
12.2 套间线程的实现260
12.2.1 自动调整261
12.2.2 手工调整261
12.2.3 编码262
12.2.4 对套间线程例子的说明263
12.3 自由线程的实现270
12.3.1 对自由线程例子的说明271
12.3.2 自由线程参数调整的优化276
12.4 关于线程模型的注册表关键字278
12.5 本章小结278
第13章 一个完整的例子280
13.1 Tangram程序281
13.1.1 Tangram的运行281
13.1.3 客户程序282
13.1.2 所用的组件282
13.1.4 TangramModel组件283
13.1.5 TangramGdiVisual和TangramGLVisual组件284
13.1.6 TangramGdiWorld和TangramGLWorld组件285
13.2 展示286
13.3 IDL文件286
13.3.1 DLIDATA.C文件287
13.4 循环引用计数287
13.4.1 不调用AddRet288
13.4.2 使用显示终止288
13.4.3 使用一个单独的组件289
13.5 事件和连接点290
13.5.1 IEnumXXX292
13.6 本章小结293
结束语294