小苏子
小苏子PDF在线图书

COM技术内幕 微软组件对象模型 内容简介

COM技术内幕 微软组件对象模型 内容简介

COM技术内幕 微软组件对象模型 目录

COM技术内幕 微软组件对象模型 精彩文摘

微软公司的组件对象模型(COM)作为一种重要的工具已崭露头角,它是微软迈向分布式计算的基础。不论现在还是将来,它都是定制应用程序的一种强大的方法。并且它是OLE和ActiveX的基础。COM帮助你理解未来的程序开发技术,而这本书帮助你理解COM。在本书中你将发现:构建优美的COM组件的清晰、简单、实用的规则;COM是如何易学易用,特虽是对那些熟练掌握C++的人;循序渐进地介绍COM设计;以代码形式给出的大量实例。 《COM技术内幕》适合于中、高级C++程序员;COM、ActiveX和OLE程序员;对组件设计感兴趣的研究人员;以及那些当COM移植到UNIX、MVS和其他环境时想要使用到COM的程序员。引言第1章 组件1.1 使用组件的优点1.1.1 应用程序定制1.1.2 组件库1.1.3 分布式组件1.2 对组件的需求1.2.1 动态链接1.2.2 信息封装1.3 COM1.3.1 COM组件是1.3.2 COM不是1.3.3 COM库1.3.4 COM方法1.3.5 COM超越了用户的需要1.4 本章小结第2章 接口2.1 接口的作用2.1.1 可复用应用程序架构2.1.2 COM接口的其他优点2.2 COM接口的实现2.2.1 编码约定2.2.2 一个完整的例子2.2.3 非接口通信2.2.4 实现细节2.3 接口理论:第二部分2.3.1 接口的不变性2.3.2 多态2.4 接口的背后2.4.1 虚拟函数表2.4.2 vtbl指针及实例数据2.4.3 多重实例2.4.4 不同的类, 相同的vtbl2.5 本章小结第3章 QueryInterface函数3.1 接口查询3.1.1 关于IUnknown3.1.2 IUnknown指针的获取3.1.3 关于QuerInterface3.1.4 QuerInterface的使用3.1.5 QuerInterface的实现3.1.6 关于类型转换3.1.7 一个完整的例子3.2 关于QuerInterface的实现规则3.2.1 同一IUnknown3.2.2 客户可以获取曾经得到过的接口3.2.3 可以再次获取已经拥有的接口3.2.4 客户可以从任何接口返回到起始接口3.2.5 若能够从某接口获取某特定接口, 则从任意接口都将能够获取此接口3.3 QuerInterface定义了组件3.3.1 接口集3.4 新版本组件的处理3.4.1 何时需要建立一个新版本3.4.2 不同版本接口的命名3.4.3 隐含合约3.5 本章小结第4章 引用计数4.1 生命期控制4.2 引用计数简介4.2.1 引用计数简介4.2.2 AddRef和Release的实现4.3 何时进行引用计数4.3.1 引用计数的优化4.3.2 引用计数规则4.4 本章小结第5章 动态链接5.1 组件的创建5.1.1 从DLI中输出函数5.1.2 DLL的装载5.2 客户和组件的划分5.2.1 程序清单5.3 对象串5.4 本章小结第6章 关于HRESULT. GUID. 注册表及其他细节6.1 HRESULT 6.1.1 HRESULT值的查找6.1.2 HRESULT值的使用6.1.3 用户自己代码的定义6.2 GUID6.2.1 为什么要使用GUID6.2.2 GUID的声明和定义6.2.3 GUID的比较6.2.4 将GUID作为组件标识符6.2.5 通过引用传递GUID值6.3 Windows注册表6.3.1 注册表的组织6.3.2 注册表编辑器6.3.3 CLSID关键字结构6.3.4 关于注册表的其他细节6.3.5 ProgID6.3.6 自注册6.3.7 组件类别6.3.8 OleView6.4 COM库函数6.4.1 COM库的初始化6.4.2 内存管理6.4.3 将字符串转化成GUID6.5 本章小结第7章 类厂7.1 CoCreateInstance7.1.1 CoCreateInstance的声明7.1.2 CoCreateInstance的使用7.1.3 类上下文7.1.4 客户程序清单7.1.5 CoCreateInstance的不灵活性7.2 类厂7.2.1 CoCetClassObject7.2.2 IClassFactory7.2.3 CoCreateInstance与CoGetClassObject的比较7.2.4 类厂的若干特性7.3 类厂的实现7.3.1 DllGetClassObject的使用7.3.2 组件的创建过程7.3.3 组件代码清单7.3.4 流程控制7.3.5 组件的注册7.4 同一DLL中的多个组件7.4.1 类厂实现的复用7.5 DLL的卸载7.5.1 DllCanUnloadNow的使用7.5.2 LockServer7.6 本章小结第8章 组件复用:包容与聚合8.1 包容和聚合8.1.1 包容简介8.1.2 聚合简介8.1.3 包容与聚合的比较8.2 包容的实现8.2.1 接口扩展8.3 聚合的实现8.3.1 QueryInterface的实现8.3.2 不正确的IUnknown8.3.3 聚合的未知接口8.3.4 内部组件的创建8.3.5 外部组件中指向内部组件接口的指针8.4 一个完整的例子8.4.1 盲目聚合8.5 现实世界中的聚合和包容8.5.1 组件的内部状态信息8.5.2 虚拟函数的模拟8.6 本章小结第9章 编程工作的简化9.1 客户端的简化9.1.1 智能接口指针9.1.2 C++包装类9.2 服务器端的简化9.2.1 未知接口基类9.2.2 类厂基类9.2.3 CUnknown和CFactory的使用9.2.4 集成步骤9.3 本章小结第10章 EXE中的服务器10.1 不同的进程10.1.1 本地过程调用10.1.2 调整10.1.3 代理/残根DLL10.2 IDL/MIDL简介10.2.1 关于IDL10.2.2 IDL接口描述举例10.2.3 MIDL编译器10.3 本地服务器的实现10.3.1 示例程序的运行10.3.2 去掉入口点函数10.3.3 类厂的启动10.3.4 对LockServer的修改10.4 远程访问能力10.4.1 DCOMCNFG.EXE所完成的工作10.4.2 工作机理10.4.3 其他DCOM信息10.5 本章小结第11章 调度接口与自动化11.1 一种新的通信方式11.1.1 旧的通信方式11.1.2 IDispatch接口11.2 IDispatch的使用11.2.1 Inuoke函数的参数11.2.2 示例11.2.3 VARIANT类型11.2.4 BSTR数据类型11.2.5 SAFEARRAY类型11.3 类型库11.3.1 类型库的创建11.3.2 类型库的使用11.3.3 注册表中的类型库11.4 IDispatch接口的实现11.4.1 异常的引发11.4.2 参数调整11.5 本章小结第12章 多线程12.1 COM线程模型12.1.1 WIN32线程12.1.2 COM线程12.1.3 套间12.1.4 套间线程12.1.5 自由线程12.1.6 调整与同步12.2 套间线程的实现12.2.1 自动调整12.2.2 手工调整12.2.3 编码12.2.4 对套间线程例子的说明12.3 自由线程的实现12.3.1 对自由线程例子的说明12.3.2 自由线程参数调整的优化12.4 关于线程模型的注册表关键字12.5 本章小结第13章 一个完整的例子13.1 Tangram程序13.1.1 Tangram的运行13.1.2 所用的组件13.1.3 客户程序13.1.4 TangramModel组件13.1.5 TangramGdiVisual和TangramGLVisual组件13.1.6 TangramGdiWorld和TangramGLWorld组件13.2 展示13.3 IDL文件13.3.1 DLIDATA.C文件13.4 循环引用计数13.4.1 不调用AddRef13.4.2 使用显示终止13.4.3 使用一个单独的组件13.5 事件和连接点13.5.1 IEnumXXX13.6 本章小结结束语第1章 组件一个应用程序通常是由单个的二进制文件组成的。当编译器生成此应用程序后,在对下一版本重新编译并发行新生成的版本之前,应用程序一般不会发生任何变化。

赞(0)
未经允许不得转载:小苏子图书 » COM技术内幕 微软组件对象模型 内容简介