COM+编程指南

COM+编程指南
作 者: Mark Michaelis 宋丽红 宋丽红
出版社: 机械工业出版社
丛编项: 软件开发技术丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: COM/DCOM/ATL/COM+
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《COM+编程指南》作者简介

内容简介

本书是一本极具价值的学习COM+的编程参考书。它循序渐进地带领读者一步步深入到COM+的核心技术,以具体生动的实例把复杂的COM+结构展示在读者面前 。书中不仅注重COM基本知识的分析,而且向读者介绍了许多在COM+服务及客户程序编写过程中常用的编程技巧和经验。本书适合那些对COM及COM+有兴趣的初、中级读者阅读,也适合各大专院校的师生学习使用。相信无论是初学者,还是有一定编程经验的开发者都会从本书中受益。

图书目录

第l章 COM+介绍

1. 1 组件的革命

1. 1. 1 两个目标

1. 1. 2 单一的大模块与组件模型的比较

1. 2 COM的产生

1. 3 什么是COM

1. 4 组件对象

1. 5 服务器程序和客户端程序

1. 6 COM怎样工作:接口和虚函数表

1. 6. 1 接口

1. 6. 2 vtable(虚函数表)

1. 7 IUnknown

1. 8 接口定义语言和类型库

1. 9 全局惟一标识

1. 10 COM API

第2章 COM基础:创建一个简单的组件和客户端程序

2. 1 创建步骤

2. 2 传统的Stopwatch实现

2. 2. 1 最初的Stopwatch的设计

2. 2. 2 建立Timers. dll库

2. 3 创建StopwatchClient. exe

2. 4 回顾一下起点

2. 5 添加IUnknown

2. 5. 1 实现IUnknown的两种方法

2. 5. 2 IUnknown必须被完全实现

2. 5. 3 添加IUnknown

2. 6 实现QueryInterface()

2. 6. 1 QueryInterface()规则

2. 6. 2 生成GUID

2. 6. 3 添加QueryInterface()

2. 6. 4 调用QueryInterface()

2. 7 引用计数

2. 7. 1 实现引用计数

2. 7. 2 使用COM引用计数

2. 8 构建一个类工厂

2. 9 使用COMAPl

2. 9. 1 注册服务器程序

2. 9. 2 初始化和取消初始化COM

2. 9. 3 用CoCreateInstance()实例化组件对象

2. 10 回顾一下COM组件的关键元素

第3章 ATL介绍

3, 1 使用ATL应用程序向导创建COM服务器程序

3. 1. 1 运行ATL应用程序向导

3. 1. 2 完成向导

3. 2 添加COM对象

3. 2. 1 线程模式

3. 2. 2 接口

3. 2. 3 聚合

3. 2. 4 支持ISupportErrorInfo

3. 2. 5 支持连接点

3. 2. 6 结束向导

3. 3 增加Stopwatch的方法和属性

3. 3. 1 声明方法和属性

3. 3. 2 添加计时代码

3. 3. 3 注册组件

3. 4 通过客户端程序访问Stopwatch组件

第4章 接口定义语言介绍

4. 1 从MIDL编译器输出

4. 2 IDL基础

4. 3 接口

4. 3. 1 接口标题属性

4. 3. 2 接口声明

4. 4 C++接口定义

4. 5 方法

4. 6 参数

4. 7 属性

4. 7. 1 属性的标志

4. 7. 2 读写属性

4. 7. 3 属性的附加参数

4. 8 定义类型库

4. 9 向Stopwatch添加Overhead属性

第5章 COM的客户端程序及智能指针的使用

5. 1 客户端程序概述

5. 2 初始化和取消初始化COM

子系统

5. 3 实例化COM对象

5. 4 将COM服务器程序定义导出到客户端程序

5. 5 智能指针

5. 6 _com_ptr_t模板类

5. 7 新类型的IStopwatch

5. 8 使用异常处理错误

5. 9 混合使用智能指针与原始接口

5. 10 跨COM边界传递接口

5. 11 另一COM客户端程序示例

第6章 处理通称为BSTR的COM字符串

6. 1 COM字符串基础

6. 1. 1 Unicode与ANSI数据类型

6. 1. 2 OLECHAR. LPOLESTR和LPCOLESTR

6. 1. 3 处理LPOLESTR

6. 1. 4 是否执行Unicode编译

6. 1. 5 TCHAR

6. 1. 6 使用BSTR处理不同大小的字符串

6. 1. 7 处理BSTR的常用API函数

6. 1. 8 跨COM边界的字符串内存管理

6. 1. 9 字符串转换函数

6. 2 CComBSTR

6. 3 bstr t

6. 4 选择字符串封装器

第7章 其他COM数据类型

7. 1 有效的COM数据类型

7. 2 使用VARIANT BOOL的Boolean值

7. 3 变量数据类型

7. 3. 1 VARIANT结构

7. 3. 2 常用变量处理API函数

7. 3. 3 CComVariant

7. 3. 4 variant t

7. 4 枚举

7. 5 可选参数

7. 6 指定默认值

7. 7 传递数组

7. 8 传递数目可变的自变量

7. 9 传递COM对象

第8章 浏览IDispatch

8. 1 创建支持双重接口的Stopwatch组件

8. 1. 1 在IDL中声明双重接口

8. 1. 2 接口继承和IDispatch

8. 1. 3 在组件内实现IDispatch

8. 1. 4 更新COM映射

8. 2 更改组件的版本

8. 2. 1 更新文件版本

8. 2. 2 更新注册表中的新CLSID和类型库版本

8. 3 测试IDispatch接口

8. 4 在C++COM客户程序中调用IDispatch接口

第9章 错误处理和组件调试

9. 1 HRESLUT结构

9. 2 使用定制HRESULT进行错误处理

9. 3 详细错误处理

9. 3. 1 IErrorlnfo接口

9. 3. 2 ISupportErrorlnfo接口

9. 3. 3 在Stopwatch项目中添加ISupportErrorInfo

9. 3. 4 在客户程序中使用详细错误处理

9. 3. 5 com error

9. 4 调试ATL代码

9. 4. 1 编写调试窗口的消息

9. 4. 2 使用ATLASSERT()验证一切正常

9. 4. 3 调试QueryInterface()和引用计数

9. 5 在调试器中运行客户程序和服务器程序

第10章 事件

10. 1 事件概述

10. 2 连接点

10. 3 创建支持事件的COM服务器程序

10. 3. 1 接口设计

10. 3. 2 添加倒计时组件并定义它的接口

10. 3. 3 实现ICountdown接口

10. 3. 4 实现连接点和激发事件

10. 3. 5 实现IProvideClasslnfo2

10. 4 接收组件的事件通知

10. 4. 1 创建ATL可执行文件

10. 4. 2 添加对话框

10. 4. 3 声明源接口实现

10. 4. 4 连接连接点

10. 4. 5 引用计数和连接点

10. 4. 6 使用内嵌监听器类避免循环引用计数

10. 4. 7 IDispEventlmpl和IDispEventSimplelmpl

第11章 ActiveX

11. 1 ActiveX控件

11. 2 开发一个ActiveX控件

11. 2. 1 创建一个空的ATL项目

11. 2. 2 添加一个控件模板

11. 2. 3 StopwatchControl对象

11. 2. 4 编译. 调试Stopwatch控件

11. 2. 5 为默认控件添加功能

11. 2. 6 添加一个按钮

11. 2. 7 添加一个定制属性页

11. 2. 8 持续性和属性包

第12章 DCOM

12. 1 为所有应用程序配置DCOM默认设置

12. 1. 1 Default Properties

12. 1. 2 Default Security

12. 1. 3 Default Protocols

12. 2 为DCOM配置一个特定的应用程序

12. 2. 1 配置客户端程序计算机

12. 2. 2 配置服务器程序计算机

12. 2. 3 运行客户端程序

12. 3 使用DCOM编程

12. 3. 1 CoCreateInstanceEx()

12. 3. 2 一个DCOM客户端程序示例

12. 4 查找DCOM故障

12. 5 COM安全API函数

12. 5. 1 使用ColnitializeSecurity()配置安全许可

12. 5. 2 扮演客户端程序的身份:ColmpersonateClient()

12. 5. 3 用CoQueryClientBlanket()确定安全设置

12. 6 调度

12. 6. 1 代理服务器和存根

12. 6. 2 定制调度

12. 6. 3 类型库调度

12. 6. 4 MIDL生成的代理服务器/存根

12. 7 DCOM小结

第13章 线程

13. 1 线程模型模拟

13. 1. 1 单一线程模型

13. 1. 2 公寓线程模型

13. 1. 3 自由线程模型

13. 1. 4 双线程模型

13. 1. 5 线程中立模型

13. 1. 6 自由线程化调度器

13. 2 跨公寓调度

13. 2. 1 拦截者--代理服务器和存根

13. 2. 2 使用工作者线程

13. 3 与ATL同步

13. 4 异步COM调用

13. 4. 1 在组件服务器程序中定义异步接口

13. 4. 2 异步地调用

13. 4. 3 异步方法完成通知

13. 4. 4 实现异步凹M服务器程序

第14章 COM+的发展过程

14. 1 为什么要用COM+

14. 2 COM+服务和术语介绍

14. 2. 1 组件服务

14. 2. 2 COM+服务

14. 2. 3 配置组件

14. 3 COM+如何工作概述

14. 3. 1 对象上下文细述

14. 3. 2 并发和活动

14. 4 COM+事务

14. 4. 1 数据一致性

14. 4. 2 调用事务支持

14. 4. 3 事务流

14. 4. 4 资源管理器和资源分发器

14. 4. 5 补偿资源管理器

14. 5 用排队组件编写分离应用程序

14. 6 发布和预定事件服务

14. 7 控制对象生存期来增加可升级性能

14. 7. 1 对象缓冲

14. 7. 2 即时激活

14. 7. 3 IObjectControl接口

14. 8 共享属性管理器

14. 9 基于角色的安全

14. 10 准备就绪

第15章 建立COM+系统

15. 1 示例程序

15. 2 创建一个可持续的组件

15. 3 建立HotelReservation. exe客户端应用程序

15. 4 COM+应用程序

15. 4. 1 COM=应用程序的两种类型

15. 4. 2 创建一个COM+应用程序

15. 4. 3 配置一个COM+应用程序

15. 5 利用COM+事件服务

15. 5. 1 创建事件类

15. 5. 2 把组件添加到ComponentServices

15. 5. 3 在ComponentServices中配置事件类

15. 5. 4 创建一个事件预定者

15. 5. 5 在ComponentServices中配置预定者

15. 5. 6 为预定者发布事件

15. 6 排队组件

15. 6. 1 创建一个可队列化组件

15. 6. 2 把组件配置为排队组件

15. 6. 3 实例化并调用排队组件

15. 6. 4 使用队列事件的分离. 异步预定者

15. 7 COM+事务

15. 7. 1 创建一个支持事务的组件

15. 7. 2 使用ObjectContext参加事务

15. 7. 3 为事务支持配置组件

15. 7. 4 通过编程在事务中包含可执行程序

15. 8 配置组件激活

15. 8. 1 对象缓冲

15. 8. 2 即时激活

15. 8. 3 利用组件内部的构造字符串

15. 8. 4 其他的Activation设置

15. 9 基于角色的安全

15. 10 调试服务器程序组件

15. 10. 1 调试配置为库应用程序的服务器程序组件

15. 10. 2 配置为服务器应用程序/从Active Workspace调试

15. 11 部署应用程序

15. 11. 1 应用程序代理服务器

15. 11. 2 服务器应用程序

15. 12 使用ATLCOMAppWizard建立一个MTS兼容的应用程序

15. 13 最后的想法