COM+开发人员参考库

COM+开发人员参考库
作 者: David Iseminger 宋丽红 叶小松
出版社: 机械工业出版社
丛编项: 微软公司核心技术书库
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: COM/DCOM/ATL/COM+
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《COM+开发人员参考库》作者简介

内容简介

卷1:本书是“COM+开发人员参考库”套书的第1卷,详细介绍了COM+开发过程的关键技术和相关工具、即时(JIT)激活、使用微软接口定义语言(MIDL)来实现分布式应用程序中使用的接口等内容。本书实例丰富,讲述清晰,是广大计算机开发人员的自学指导书和技术参考书。卷2:这是一本关于COM+的参考书,全书共分为三个部分:第一部分是概述,介绍了本卷在此套“COM+开发人员参考库”中的地位,并对如何使用该参考库做了简要的说明,对其他各卷的内容也做了简单的介绍,最后给出了简单对象访问协议(SOAP)的一套规范说明;第二部分和第三部分是全书的核心,第二部分是COM+参考,内容包括管理对象、管理集合、管理接口、COM+对象、COM+接口、COM+函数和COM+枚举;第三部分是COM+工具编程参考,内容包括事务、对象、DTC接口、CRM接口、资源分配器接口、COM+测试接口、MTS支持接口、函数。卷3:本书是“COM+开发人员参考库”的第3卷。全面提供了COM编程的指导和应用程序开发的资料。组件对象模型(COM)是平台无关的、分布式、面向对象系统,它使软件组织能跨进程和跨机器进行互操作。本书适合Windows应用程序开发人员阅读。卷4:本书介绍COM+中的自动化技术(Automation),主要内容包括:自动化技术概述、提供ActiveX对象、访问ActiveX对象、标准对象及命名规则、分发接口及API函数、数据类型、结构和枚举、转换和操作函数、类型库及对象说明语言、类型说明接口、类型创建接口、错误处理接口、用户定义的数据类型以及API级格式化例程等。本书内容翔实,结构严谨,并包含了大量的VB、VC范例代码,读者可以结合代码前后的概念阐述,更加深入地理解自动化技术的工作原理和编程思路。卷5:本书是“COM+开发人员参考库”的第5卷,提供了关于结构化存储和ActiveX的必要编程信息,这两项技术都建立在COM基础之上。本卷还包括关于接口、函数、结构和枚举类型的详细内容。本书适合Windows应用程序开发人员阅读。

图书目录

卷1:

第一部分 概述

第1章 欢迎使用“COM+开发人员参考库”

1.1 “COM+开发人员参考库”的组织方式

1.2 本书的组织方式

第2章 充分利用微软开发人员资源之一

2.1 比较MSDN和MSDN在线

2.2 MSDN订阅

2.3 MSDN的使用

2.4 使用MSDN在线

第3章 “COM+开发人员参考库”使用指南

3.1 本卷内容

3.2 其他各卷内容

3.3 获得更多信息

第4章 理解Windows DNA 2000及COM+所处的位置

4.1 Windows DNA定义

4.2 关于Windows DNA

4.3 关于Windows DNA 2000

4.4 N层开发模型

4.4.1 从两层到N层应用程序

4.4.2 用户服务层和Windows DNA

4.4.3 业务服务层

4.4.4 数据服务层

第二部分 COM+编程指南

第5章 COM+应用程序概述

5.1 COM+应用程序的概念

5.2 COM+应用程序类型

5.3 COM+应用程序的组成部分

5.4 开发COM+应用程序

第6章 设计COM+应用程序

6.1 COM+设计理念和原则

6.2 创建分布式应用程序的微软工具

6.3 使用UML设计COM+应用程序

6.3.1 概念模型:应用程序的需求

6.3.2 逻辑模型:应用程序的定义和规划

6.3.3 物理模型:应用程序的体系结构

6.4 常用的COM+设计技巧

6.4.1 可扩展性设计

6.4.2 可用性设计

6.4.3 安全性设计

6.4.4 部署设计

6.5 特殊情况的高级COM+技术

6.6 优化COM+业务逻辑层之间的交互

6.6.1 优化COM+业务逻辑层与表示层之间的交互

6.6.2 优化COM+业务逻辑层与数据层之间的交互

第7章 COM+服务入门

7.1 第1步:创建一个事务组件

7.2 第2步:跨多组件扩展一个事务

7.3 第3步:重用组件

第8章 COM+提供的服务

8.1 上下文

8.1.1 激活

8.1 2 跨上下文调用的侦听

8.2 事务处理

8.2.1 事务基础

8.2.2 分布式事务

8.2.3 贯穿COM+的自动事务

8.2.4 事务编程

8.3 并发性

8.3.1 组件和线程

8.3.2 同步

8.4 COM+中的安全性

8.4.1 基于角色的安全性

8.4.2 验证客户

8.4.3 扮演客户

8.4.4 保证库应用程序的安全性

8.4.5 保证多层应用程序的安全

8.4.6 组件编程的安全性

8.5 对象缓冲

8.5.1 对象缓冲池的工作原理

8.5.2 用对象缓冲改善性能

8.5.3 对可缓冲对象的要求

8.5.4 缓冲池事务对象

8.5.5 控制对象的生命期和状态

8.5.6 使用对象构造器字符串

8.6 即时激活

8.6.1 设置完成位

8.6.2 事务和JIT激活

8.6.3 对象缓冲和JIT激活

8.7 排队组件

8.7.1 排队组件的体系结构

8.7.2 消息解决方案

8.7.3 排队处理的好处

8.7.4 使用队列

8.7.5 事务消息排队

8.7.6 排队组件的例子

8.7.7 开发限制

8.7.8 开发排队组件

8.7.9 启动排队组件

8.7.10 标识排队组件

8.7.11 激活排队组件

8.7.12 例外处理

8.7.13 使用排队组件的安全性

8.7.14 排队组件的相互依赖性

8.8 COM+事件

8.8.1 COM+事件模型

8.8.2 COM+事件体系结构

8.8.3 产生事件

8.8.4 投递事件

8.8.5 使用排队组件构造事件

8.8.6 过滤事件

8.8.7 COM+事件例子

8.9 共享属性管理器

8.10 补偿资源管理器

第9章 编写COM+应用程序组件

9.1 编写事务组件

9.2 编写安全组件

9.3 编写可缓冲组件

9.4 编写排队组件

9.5 编写COM+事件组件

9.6 处理COM+中的错误

9.6.1 COM+错误处理策略

9.6.2 COM+怎样修改返回值

9.6.3 错误隔离和错误快速处理策略

9.6.4 找到错误的来源

9.6.5 错误代码解释

9.6.6 故障诊断

9.6.7 联系支持

9.7 调试COM+应用程序

9.7.1 调试用C++编写的组件

9.7.2 调试用Visual Basic编写的组件

第10章 创建和配置COM+应用程序

10.1 创建COM+应用程序

10.1.1 创建新的COM+应用程序

10.1.2 安装新组件

10.1.3 导入组件

10.1.4 从COM+应用程序中删除组件

10.1.5 删除COM+应用程序

10.2 配置COM+应用程序

10.2.1 配置事务

10.2.2 配置同步

10.2.3 安全设置

10.2.4 配置对象缓冲

10.2.5 配置JIT激活

10.2.6 配置队列

10.2.7 配置COM+事件

10.2.8 配置库应用程序

10.2.9 在调用者上下文中实施激活

10.3 从MTS包到COM+应用程序的转换

10.3.1 MTS的自动转换

10.3.2 MTS的人工转换

10.3.3 COM+转换的结果和问题

10.4 自动化COM+管理

10.4.1 COMAdmin对象概述

10.4.2 在COM+目录中检索集合

10.4.3 在COM+目录中设置属性和保存更改

10.4.4 处理管理错误

10.4.5 事务内的管理操作

10.4.6 MTS管理库

第11章 COM+应用程序的部署和注册

11.1 部署COM+应用程序

11.2 部署应用程序代理

11.3 COM+目录

11.4 COMREPL复制工具

11.4.1 COMREPL的使用

11.4.2 从复制中能得到什么

11.4.3 复制的步骤

11.4.4 文件管理

11.4.5 日志和错误报告

第三部分 COM+工具编程指南

第12章 微软分布式事务协调器

12.1 事务属性

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.4.1 创建BYOT对象

12.4.2 继承人工事务

12.5 其他事务标准

12.5.1 X/Open分布式事务处理标准

12.5.2 OLE 事务与X/Open DTP之间的不同

12.5.3 遵循X/Open DTP XA标准产品互操作性

12.5.4 使用带有X/Open兼容的事务处理监视器的OLE事务兼容资源管理器

12.5.5 OSI事务处理格式和协议

12.6 OLE事务模型

12.7 使用微软分布式事务协调器

12.8 在应用程序中使用事务

12.8.1 应用程序是怎样初始化一个事务的

12.8.2 使用应用程序更新两个SQL服务器数据库

12.8.3 事务传递:从应用程序到应用程序

12.8.4 事务提交

12.8.5 事务终止

12.9 开发OLE事务资源管理器

12.9.1 资源管理器显式地初始化事务

12.9.2 SQL Server怎样显式地初始化一个事务

12.9.3 资源管理器隐式地初始化事务

12.9.4 SQL Server怎样隐式地初始化一个事务

12.9.5 事务从应用程序到资源管理器的传递

12.10 事务的生命期

12.10.1 资源管理器的启动

12.10.2 客户应用程序的启动

12.10.3 事务初始化

12.10.4 资源管理器的加入

12.10.5 创建一个输出对象Ⅰ

12.10.6 创建一个输出对象Ⅱ

12.10.7 输出事务Ⅰ

12.10.8 输出事务Ⅱ

12.10.9 加入事务Ⅰ

12.10.10 加入事务Ⅱ

12.10.11 事务提交阶段1—准备Ⅰ

12.10.12 事务提交阶段1—准备Ⅱ

12.10.13 事务提交阶段2—提交Ⅰ

12.10.14 事务提交阶段2—提交Ⅱ

12.10.15 事务恢复

12.11 实现一个资源管理器

12.11.1 开发环境

12.11.2 实现接口

12.11.3 由进程内应用程序组件初始化的事务

12.11.4 事务传递

12.11.5 获取whereabouts

12.11.6 从事务中获得事务分配器

12.11.7 参与两阶段提交协议

12.12 开发XA兼容的资源管理器

12.12.1 把OLE事务映射到XA协议

12.12.2 事务状态

12.12.3 实现算法

12.12.4 XA事务生命期的步骤

12.12.5 XA恢复过程

12.12.6 映射XA接口

12.13 使用XA兼容事务管理器应用程序

12.14 开发缓冲资源管理器

12.15 使用带有其他TIP事务管理器的MS DTC

12.15.1 TIP扩展的背景

12.15.2 TIP到OLE事务的扩展

12.15.3 使用方案

第13章 补偿资源管理器

13.1 使用CRM

13.1.1 安装CRM组件

13.1.2 启动和恢复

13.2 开发一个CRM

13.2.1 在CRM中的一般操作

13.2.2 在CRM中恢复

13.2.3 在CRM中的错误处理

13.3 高级CRM主题

13.3.1 注册设置

13.3.2 CRM日志文件

13.3.3 监视

13.3.4 隔离性

13.3.5 对象缓冲

13.3.6 集群

13.4 CRM故障诊断

13.5 设计建议

13.6 CRM接口

13.7 监视接口

13.8 使用监视接口

第14章 资源分配器

14.1 资源

14.2 分配管理器

14.3 资源持有者

14.4 资源分配器请求

14.5 把资源分配器作为一个COM组件实现

14.6 线程问题

14.7 库存统计管理器

14.8 资源缓冲

14.8.1 在非加入的库存中的资源

14.8.2 在加入的库存中的资源

14.8.3 处于非加入的使用状态的资源

14.8.4 处于加入的使用状态的资源

14.9 分配资源

14.10 加入到事务中

14.11 自动回收资源

14.12 跟踪资源

14.13 销毁不活动的资源

14.14 非事务的资源

14.15 在没有COM+的情况下进行操作

14.16 资源分配器的启动和关闭

14.17 实现资源分配器

14.18 类型

第15章 COM+工具

15.1 COM+度规概述

15.2 COM+度规过滤

15.3 Visual Studio Analyzer COM+ Event Bridge示例

15.4 收集COM+度规

第四部分 Microsoft接口定义语言

第16章 使用MIDL编译器

16.1 调用MIDL编译器

16.2 响应文件

16.3 C预处理器需求和选项

16.3.1 C预处理器对于MIDL的需求

16.3.2 验证预处理器选项

16.4 C编译器的需求和选项

16.4.1 C编译器对于MIDL的需求

16.4.2 C编译器对于Microsoft Windows 3.x中的回调需求

16.4.3 C编译器关于代理/存根的定义

16.5 使用_midl预定义常量

16.6 MIDL和RPC

16.6.1 为RPC接口生成的文件

16.6.2 为指定32位平台锁定存根

16.7 MIDL和COM

16.7.1 为COM接口生成文件

16.7.2 调度OLE数据类型

16.8 MIDL和ODL

16.8.1 用MIDL产生类型库

16.8.2 产生类型库所需的其他文件

16.8.3 MIDL和MkTypLib的区别

16.8.4 MIDL中ODL语言的特点

16.8.5 由单个IDL文件生成代理DLL和类型库

第17章 接口定义和类型库

17.1 分布式对象中的接口

17.2 COM、DCOM和类型库

17.3 接口定义(IDL)文件

17.4 IDL属性

17.4.1 别名和调度属性

17.4.2 异步属性

17.4.3 数组和有大小的指针属性

17.4.4 数据类型属性

17.4.5 方向属性

17.4.6 函数调用属性

17.4.7 接口头属性

17.4.8 性能属性

17.4.9 指针类型属性

17.4.10 结构和共同体属性

17.4.11 类型库属性

17.5 应用程序配置文件

17.6 ACF属性

17.6.1 绑定ACF属性

17.6.2 存根优化ACF属性

17.6.3 类型转换和调度ACF属性

17.6.4 内存管理ACF属性

17.6.5 错误和例外处理ACF属性

17.6.6 在IDL文件中使用ACF属性

17.7 MIDL数据类型

17.7.1 MIDL基类型

17.7.2 MIDL数组

17.7.3 MIDL类型定义

17.7.4 MIDL枚举类型

17.7.5 MIDL结构

17.7.6 MIDL共同体

17.7.7 MIDL绑定处理

17.8 导入文件和类型库

17.9 导入系统头文件

第18章 MIDL命令行参考

18.1 常用MIDL命令行语法

18.2 响应文件命令

第19章 MIDL语言参考

第20章 MIDL编译器错误和警告

20.1 错误和警告消息格式

20.2 预处理器错误

20.3 编译器错误

COM+词汇表

卷2:

译者序

第一部分 概述

第1章 欢迎使用“COM+开发人员参考库”

1.1 “COM+开发人员参考库”的组织方式

1.2 本书的组织方式

第2章 充分利用微软开发人员资源之二

2.1 开发人员支持

2.2 在线资源

2.3 教学产品

2.4 会议

2.5 其他资源

第3章 “COM+开发人员参考库”使用指南

3.1 本卷内容

3.2 其他各卷内容

3.3 获得更多的信息

第4章 简单对象访问协议(SOAP)

4.1 关于SOAP

4.2 SOAP FAQ

4.3 SOAP 规范 1.1

第二部分 COM+ 参 考

第5章 管理对象

5.1 COMAdminCatalog对象

5.2 COMAdminCatalogCollection对象

5.3 COMAdminCatalogObject对象

第6章 管理集合

6.1 ApplicationCluster 集合

6.2 Applications 集合

6.3 Componentes集合

6.4 ComputerList集合

6.5 DCOMProtocols集合

6.6 ErrorInfo集合

6.7 InprocServers集合

6.8 InterfacesForComponent集合

6.9 LocalComputer集合

6.10 MethodsForInterface集合

6.11 PropertyInfo集合

6.12 PublisherProperties集合

6.13 RelatedCollectionInfo集合

6.14 Roles集合

6.15 RolesForComponent集合

6.16 RolesForInterface集合

6.17 RolesForMethod集合

6.18 Root集合

6.19 SubscriberProperties集合

6.20 SubscriptionsForComponent集合

6.21 TransientSubscriptions集合

6.22 UserInRole集合

第7章 管理接口

7.1 ICOMAdminCatalog接口

7.2 ICatalogCollection接口

7.3 ICatalogObject接口

第8章 COM+对象

8.1 ContextInfo

8.2 SharedProperty对象

8.3 SharedPropertyGroup对象

8.4 SharedPropertyGroupManager对象

8.5 ObjectContext对象

8.6 ObjectControl对象

8.7 SecurityIdentity对象

8.8 SecurityProperty 对象

8.9 SecurityCallContext对象

8.10 SecurityCallers对象

8.11 TransactionContext对象

第9章 COM+接口

9.1 IContextState

9.2 IEnumEventObject

9.3 IEventClass

9.4 IEventControl

9.5 IEventObjectChange

9.6 IEventObjectCollection

9.7 IEventSubscription

9.8 IEventSystem

9.9 IFiringControl

9.10 IMessageMover

9.11 IMultiInterfaceEventControl

9.12 IMultiInterfacePublisherFilter

9.13 IObjectContext

9.14 IObjectContextActivity

9.15 IObjectContextInfo

9.16 IObjectControl

9.17 IObjectConstruct

9.18 IObjectConstructString

9.19 IPlaybackControl

9.20 IPublisherFilter

9.21 ISecurityCallContext

9.22 ISecurityCallersColl

9.23 ISecurityIdentityColl

9.24 ISecurityProperty

9.25 ISharedProperty

9.26 ISharedPropertyGroup

9.27 ISharedPropertyGroupManager

9.28 ITransactionContextEx

9.29 ITxProperty

9.30 ITxPropertyGroup

9.31 ITxPropertyGroupManager

第10章 COM+函数

10.1 GetObjectContext

10.2 GetSecurityCallContext

10.3 SafeRef

第11章 COM+枚举

11.1 EOC_ChangeType

11.2 tagTransactionVote

第三部分 COM+工具编程参考

第12章 事务

12.1 OLE事务参考

12.2 OLE事务和COM的差异

12.3 对象、接口、函数小结

第13章 对象

13.1 OLE 事务对象

13.2 MS DTC 代理服务器核心对象

13.3 事务对象

13.4 事务选项对象

13.5 导出对象

13.6 支持对象

13.7 投票者对象

13.8 资源管理器对象

13.9 事务零阶段支持对象

13.10 XA双管道资源管理器伪对象

13.11 XA单管道资源管理器对象

13.12 XA单管道资源管理器伪对象

第14章 DTC接口

14.1 ICreateWithTIPTransaction接口

14.2 ICreateWithTransaction接口

14.3 IDtcToXaMapper接口

14.4 IDtcToXaHelperFactory接口

14.5 IDtcToXaHelper接口

14.6 IDtcToXaHelperSinglePipe接口

14.7 IGetDispenser接口

14.8 IPrepareInfo接口

14.9 IResourceManager接口

14.10 IResourceManager2接口

14.11 IResourceManagerFactory接口

14.12 IResourceManagerFactory2接口

14.13 IResourceManagerSink接口

14.14 ITipHelper接口

14.15 ITipPullSink接口

14.16 ITipTransaction接口

14.17 ITransaction接口

14.18 ITransaction2接口

14.19 ITransactionCloner接口

14.20 ITransactionDispenser接口

14.21 ITransactionImport接口

14.22 ITransactionImportWhereabouts接口

14.23 ITransactionExport接口

14.24 ITransactionExportFactory接口

14.25 ITransactionOptions接口

14.26 ITransactionOutcomeEvents接口

14.27 ITransactionResourceAsync接口

14.28 ITransactionPhase0Factory接口

14.29 ITransactionPhase0EnlistmentAsync接口

14.30 ITransactionPhase0NotifyAsync接口

14.31 ITransactionEnlistmentAsync接口

14.32 ITransactionVoterFactory2接口

14.33 ITransactionVoterBallotAsync接口

14.34 ITransactionVoterNotifyAsync 接口

第15章 CRM接口

15.1 ICrmCompensator接口

15.2 ICrmCompensatorVariants接口

15.3 ICrmLogControl接口

15.4 ICrmMonitor接口

15.5 ICrmMonitorClerks接口

15.6 ICrmMonitorLogRecords接口

15.7 ICrmFormatLogRecords接口

第16章 资源分配器接口

16.1 IDispenserManager接口

16.2 IDispenserDriver接口

16.3 IHolder 接口

第17章 COM+测试接口

17.1 IComActivityEvents

17.2 IComAppEvents

17.3 IComCRMEvents

17.4 IComExceptionEvents

17.5 IComIdentityEvents

17.6 IComInstanceEvents

17.7 IComMethodEvents

17.8 IComObjectConstructionEvents

17.9 IComObjectEvents

17.10 IComObjectPoolEvents

17.11 IComObjectPoolEvents2

17.12 IComQCEvents

17.13 IComResourceEvents

17.14 IComSecurityEvents

17.15 IComThreadEvents

17.16 IComTrasactionEvents

17.17 IComUserEvent

17.18 Event 结构

第18章 MTS 支持接口

18.1 IMtsEventInfo接口

18.2 IMtsEvents 接口

18.3 IMtsGrp 接口

18.4 IMtsLocator接口

第19章 函数

19.1 DtcGetTransactionManager函数

19.2 DtcGetTransactionManagerEx函数

19.3 GetDispenserManager函数

19.4 GetXaSwitch函数

COM+词汇表

卷3:

译者序

第一部分 概述

第1章 欢迎使用“COM+开发人员参考库”

1.1 “COM+开发人员参考库”的组织方式

1.2 本书的组织方式

第2章 充分利用微软开发人员资源之三

2.1 介绍

2.2 动机

2.2.1 异步客户程序

2.2.2 其他应用

2.3 体系结构

2.3.1 Async_uuid和具有非阻断方法调用能力的代理/占位对象

2.3.2 客户端

2.3.3 服务器端

2.4 实现

2.4.1 简单的异步服务器

2.4.2 客户端程序的例子

2.4.3 服务器端

2.5 限制和陷阱

2.5.1 限制

2.5.2 陷阱

2.6 结论

第3章 “COM+开发人员参考库”使用指南

3.1 本卷内容

3.2 其他各卷内容

3.3 获得更多信息

第4章 C和C++设计考虑

4.1 组件对象:C嵌套结构

4.2 组件对象:C++嵌套类

4.3 多重继承

第二部分 COM编程基础

第5章 组件对象模型

5.1 COM对象和接口

5.1.1 接口和接口的实现

5.1.2 接口指针和接口

5.1.3 IUnknown和接口继承

5.2 使用和实现IUnknown接口

5.2.1 QueryInterface:在对象中查询

5.2.2 实现QueryInterface的规则

5.2.3 通过引用计数控制对象的生存期

5.3 对象的重用

5.3.1 封装/代理

5.3.2 聚合

5.4 COM库

5.5 管理内存分配

5.5.1 OLE内存分配器

5.5.2 内存管理规则

5.5.3 调试内存分配

第6章 进程、公寓和线程

6.1 选择线程模型

6.2 单线程公寓

6.3 多线程公寓

6.4 单/多线程通信

6.5 进程内服务器线程问题

6.6 跨公寓访问接口

6.6.1 创建全局接口表

6.6.2 什么时候使用全局接口表

第7章 COM客户程序和服务器

7.1 通过类对象创建对象

7.1.1 COM类对象和CLSID

7.1.2 定位远程对象

7.1.3 实例创建辅助函数

7.2 COM服务器的职责

7.2.1 实现IClassFactory

7.2.2 许可和IClassFactory2

7.2.3 注册COM服务器

7.2.4 进程外服务器实现辅助

7.2.5 GUID创建和优化

7.3 持续对象状态

7.3.1 持续对象接口

7.3.2 初始化持续对象

7.4 提供类信息

7.5 内部对象通信

第8章 生成和处理异步调用

8.1 生成和取消异步调用

8.1.1 生成异步调用

8.1.2 在异步调用中的客户安全性

8.1.3 扮演和异步调用

8.1.4 取消异步调用

8.2 取消方法调用

8.3 调用同步

第9章 定义COM接口

9.1 接口调度

9.2 剖析IDL文件

9.3 MIDL编译器

9.4 MIDL编译选项

9.5 加载和注册类型库

9.6 建立和注册代理DLL

9.7 接口设计规则

9.7.1 设计远程接口

9.7.2 使用COM接口

第10章 注册COM应用程序

10.1 注册表分层结构

10.2 类和服务器

10.3 将组件分类

10.4 使用OleView

10.5 注册表编辑器

10.6 注册组件

10.7 检查注册

10.8 未知用户类型

10.9 COM注册键

第11章 COM中的安全

11.1 确定安全需求

11.2 默认COM安全

11.3 激活安全

11.4 安全值

11.4.1 委派和扮演

11.4.2 应用程序身份

11.4.3 引用跟踪

11.5 为COM应用程序设置安全

11.5.1 为计算机修改安全默认值

11.5.2 设置进程范围安全

11.5.3 在接口代理级设置安全

11.6 打开和关闭安全

11.6.1 关闭安全

11.6.2 使用DCOMCNFG开启COM安全

11.7 COM和安全包

11.8 NTLMSSP

11.9 Kerberos

11.10 SChannel

11.11 Snego

11.12 服务器端的安全

11.13 安全性覆盖协商

11.14 COM安全、Windows 95和Windows 98

11.14.1 Windows95和Windows98中的调用级安全

11.14.2 Windows95和Windows98中的远程连接和激活

11.14.3 仅含Windows95和Windows 98网络的安全

第12章 错误处理

12.1 COM错误码的结构

12.2 FACILITY_ITF中的码

12.3 使用宏来进行错误处理

12.4 在Java和Visual Basic中的错误处理

12.4.1 返回错误信息

12.4.2 检索错误信息

12.5 错误处理策略

12.5.1 HRESULT

12.5.2 Win32和网络错误

12.6 处理未知错误

第13章 COM处理程序

13.1 OLE处理程序

13.2 轻便的客户端处理程序

13.2.1 实现和激活一个没有附加服务器数据的处理程序

13.2.2 实现和激活一个有附加服务器数据的处理程序

13.2.3 QueryInterface的代理

第14章 DLL代理

14.1 DLL服务器需求

14.1.1 代理共享

14.1.2 为激活代理而注册DLL服务器

14.2 使用系统提供的代理

14.3 定制代理

第15章 moniker

15.1 moniker客户程序

15.2 moniker提供者

15.3 OLE moniker的实现

15.3.1 文件moniker

15.3.2 复合moniker

15.3.3 项目moniker

15.3.4 反moniker

15.3.5 指针moniker

15.3.6 类moniker

15.3.7 异步moniker

15.3.8 URL moniker

第16章 COM中的事件

16.1 可连接对象的体系结构

16.2 可连接对象接口

第17章 实现组件目录管理

17.1 根据组件的能力来分类

17.2 根据容器的能力来分类

17.3 组件目录管理器

17.4 默认类和关联

17.5 定义组件目录

17.6 将图标与组件目录相关联

第三部分 COM 参 考

第18章 COM接口

18.1 IAccessControl

18.2 IAuthenticate

18.3 IBindCtx

18.4 ICallFactory

18.5 ICancelMethodCalls

18.6 ICatInformation

18.7 ICatRegister

18.8 IClassActivator

18.9 IClassFactory

18.10 IClassFactory2

18.11 IClientSecurity

18.12 IConnectionPoint

18.13 IConnectionPointContainer

18.14 IContinueCallback

18.15 IEnumXXXX

18.16 IEnumConnectionPoints

18.17 IEnumConnections

18.18 IEnumString

18.19 IEnumUnknown

18.20 IEventProperty

18.21 IEventPublisher

18.22 IExternalConnection

18.23 IGlobalInterfaceTable

18.24 IInternalUnknown

18.25 IMalloc

18.26 IMallocSpy

18.27 IMarshal

18.28 IMarshal—默认实现

18.29 IMessageFilter

18.30 IMoniker

18.31 IMoniker—反Moniker实现

18.32 IMoniker—类 moniker实现

18.33 IMoniker—文件moniker实现

18.34 IMoniker—一般复合moniker实现

18.35 IMoniker—项目moniker实现

18.36 IMoniker—OBJREF moniker实现

18.37 IMoniker—指针moniker实现

18.38 IMoniker—URL moniker实现

18.39 IMultiQI

18.40 IOleItemContainer

18.41 IParseDisplayName

18.42 IPersist

18.43 IPersistFile

18.44 IPersistMoniker

18.45 IPersistStorage

18.46 IPersistStream

18.47 IPersistStream - URL moniker实现

18.48 IPersistStreamInit

18.49 IPipeByte

18.50 IPipeDouble

18.51 IPipeLong

18.52 IProgressNotify

18.53 IProvideClassInfo

18.54 IProvideClassInfo2

18.55 IProvideMultipleClassInfo

18.56 IROTData

18.57 IRunnableObject

18.58 IRunningObjectTable

18.59 IServerSecurity

18.60 IStdMarshalInfo

18.61 ISurrogate

18.62 ISynchronize

18.63 ISynchronizeContainer

18.64 ISynchronizeEvent

18.65 ISynchronizeHandle

18.66 IUnknown

第19章 COM函数

第20章 COM 结构

第21章 COM枚举类型数据

第22章 COM注册项目

22.1 HKEY_LOCAL_MACHINE\SOFTWARE\Classes

22.2 AppID 键

22.3 CLSID键

22.4 ProgID键

22.5 VersionIndependentProgID键

22.6 File Extension 键

22.7 (Non-Compound) FileType键

22.8 Interface键

22.9 HKEY_LOCAL_MACHINE\Software\Microsoft\OLE

COM+词汇表

卷4:

译者序

第一部分 概述

第1章 欢迎使用“COM+开发人员参考库”

1.1 “COM+开发人员参考库”的组织方式

1.2 本书的组织方式

第2章 “COM+开发人员参考库”使用指南

2.1 本卷内容

2.2 其他各卷内容

2.3 获得更多信息

第二部分 自动化指南

第3章 自动化概述

3.1 为什么提供对象

3.2 什么是ActiveX对象

3.3 什么是ActiveX客户程序

3.4 客户程序与对象如何交互

3.5 什么是类型库

第4章 提供ActiveX对象

4.1 提供对象

4.1.1 初始化被提供的对象

4.1.2 实现被提供的对象

4.1.3 实现类工厂

4.1.4 提供Application对象

4.1.5 创建注册文件

4.1.6 释放OLE和对象

4.1.7 检索对象

4.1.8 返回对象

4.1.9 关闭对象

4.2 应用程序设计注意事项

4.2.1 创建可编程接口

4.2.2 创建IUnknown接口

4.2.3 创建IDispatch接口

4.2.4 实现双重接口

4.2.5 注册接口

4.2.6 创建类标识符

4.2.7 传递格式化数据

4.2.8 实现IEnumVARIANT 接口

4.2.9 实现_NewEnum属性

4.3 类型库

4.3.1 创建类型库

4.3.2 构建类型库

4.3.3 注册类型库

4.3.4 返回错误

4.4 Hello示例

4.5 Lines示例

4.6 支持多种本地语言

4.6.1 为支持多种语言的应用程序实现IDispatch

4.6.2 实现IDispatch成员函数

4.6.3 创建独立的类型库

4.6.4 定义场合ID

4.6.5 加载类型信息

4.6.6 定义基于场合ID的自变量和字符串

第5章 访问ActiveX对象

5.1 使用Visual Basic创建脚本

5.1.1 访问远程对象

5.1.2 操作对象

5.2 创建访问对象的应用程序和工具

5.2.1 通过VTBL访问成员

5.2.2 通过IDispatch访问成员

5.3 创建类型信息浏览器

第6章 标准对象和命名规则

6.1 使用标准对象

6.1.1 对象属性

6.1.2 集合对象属性

6.1.3 在类型库中使用Application对象

6.1.4 Document对象属性

6.1.5 Documents集合对象

6.1.6 Font对象

6.1.7 Picture对象

6.1.8 属性框架对象

6.2 命名习惯

6.2.1 使用完整的词和音节

6.2.2 使用混合大小写

6.2.3 使用界面中与通常用法相同的单词

6.2.4 使用正确的类名称单复数

6.3 可编程接口

6.3.1 访问包含文档

6.3.2 访问包含应用程序

第三部分 自动化参考

第7章 分发接口及API函数

7.1 IDispatch接口

7.2 创建分发的API函数

7.3 CreateDispTypeInfo

7.4 CreateStdDispatch

7.5 DispGetIDsOfNames

7.6 DispGetParam

7.7 DispInvoke

7.8 使用API函数注册活动对象

7.9 GetActiveObject

7.10 RegisterActiveObject

7.11 RevokeActiveObject

7.12 IEnumVARIANT接口

第8章 数据类型、结构和枚举

8.1 IDispatch数据类型和结构

8.2 ITypeLib结构和枚举

8.3 ITypeComp结构和枚举

第9章 转换和操作函数

9.1 数组操作API函数

9.2 变量操作API函数

9.3 数据类型转换函数

9.4 BSTR和Vector转换函数

9.5 日期和时间转换函数

9.6 变量计算

9.7 小数计算

9.8 货币计算

9.9 异类支持函数

第10章 类型库和对象说明语言

10.1 类型库的内容

10.2 使用MIDL和MkTypLib

10.2.1 向IDL定义添加ODL

10.2.2 MIDL和MkTypLib之间的区别

10.3 MkTypLib:类型库创建工具

10.4 ODL文件语法

10.4.1 ODL文件举例

10.4.2 源文件内容

10.5 ODL参考

10.5.1 属性说明

10.5.2 ODL语句和指令

第11章 类型说明接口

11.1 概述

11.2 ITypeLib 接口

11.3 ITypeLib2接口

11.4 ITypeInfo 接口

11.5 ITypeInfo2接口

11.6 ITypeComp接口

11.7 类型编译及库函数概述

11.8 LHashValOfName

11.9 LHashValOfNamesSys

11.10 LoadTypeLib

11.11 LoadTypeLibEx

11.12 LoadRegTypeLib

11.13 RegisterTypeLib

11.14 UnRegisterTypeLib

11.15 QueryPathOfRegTypeLib

第12章 类型创建接口

12.1 ICreateTypeInfo接口

12.2 ICreateTypeInfo2接口

12.3 CreateTypeLib API

12.4 ICreateTypeLib接口

12.5 CreateTypeLib2 API

12.6 ICreateTypeLib2接口

第13章 错误处理接口

13.1 返回错误信息

13.2 检索错误信息

13.3 IErrorInfo接口

13.4 ICreateErrorInfo接口

13.5 ISupportErrorInfo接口

13.6 错误处理API函数

13.7 CreateErrorInfo

13.8 GetErrorInfo

13.9 SetErrorInfo

第14章 用户定义的数据类型

14.1 传递UDT

14.1.1 在IDL文件中说明UDT

14.1.2 获取IRecordInfo接口

14.1.3 传递单个UDT

14.1.4 传递UDT的安全数组

14.2 用户定义数据类型的支持方法

14.3 GetRecordInfoFromTypeInfo

14.4 GetRecordInfoFromGuids

14.5 IRecordInfo接口

第15章 API级格式化例程

15.1 VarTokenizeFormatString

15.2 VarFormat

15.3 VarFormatDateTime

15.4 VarFormatNumber

15.5 VarFormatPercent

15.6 VarFormatCurrency

15.7 VarWeekdayName

15.8 VarMonthName

15.9 VarFormatFromTokens

COM+词汇表

自动化词汇表

卷5:

译者序

第一部分 概述

第1章 欢迎使用“COM+开发人员参考库”

1.1 “COM+开发人员参考库”的组织方式

1.2 本书的组织方式

第2章 “COM+开发人员参考库”使用指南

2.1 本卷内容

2.2 其他各卷内容

2.3 获得更多信息

第3章 ActiveX控件介绍

3.1 概述

3.2 ActiveX控件

3.3 通用指南

第二部分 ActiveX

第4章 ActiveX控件

4.1 ActiveX控件结构

4.2 ActiveX控件接口

4.3 属性和方法

4.3.1 控件属性

4.3.2 控件方法

4.4 控件事件

4.5 可视化表示

4.6 控件的键盘处理

4.7 持续性

4.8 注册和验证

第5章 属性页和属性表

5.1 属性表和属性页

5.2 通过IPropertyNotifySink实现的数据绑定

第6章 ActiveX控件和控件容器指南

6.1 控件和控件容器指南概述

6.1.1 为什么ActiveX控件和控件容器指南很重要

6.1.2 当无法获得需要的接口时该怎么力、

6.1.3 控件和控件容器指南中有什么新的东西

6.2 控件

6.2.1 控件的自注册

6.2.2 支持一个接口意味着什么

6.2.3 持续性接口

6.2.4 控件接口中的可选方法

6.2.5 类工厂选项

6.2.6 属性

6.2.7 方法

6.2.8 控件中的事件

6.2.9 属性页

6.2.10 控件的环境属性

6.2.11 使用容器的功能

6.3 容器

6.3.1 必需的接口

6.3.2 可选方法

6.3.3 各种状态位支持

6.3.4 控件中的键盘处理

6.3.5 存储接口

6.3.6 环境属性

6.3.7 扩展属性、事件和方法

6.3.8 消息映射

6.3.9 自动剪切

6.3.10 缺少某个接口的情况下平滑地降级

6.4 组件类别

6.4.1 什么是组件类别并且它们是如何工作的

6.4.2 简单框架位置容器

6.4.3 简单数据绑定

6.4.4 高级数据绑定

6.4.5 VisualBasic私有接口

6.4.6 Internet可识别对象

6.4.7 无窗口控件

6.5 通用指南

6.5.1 重载IPropertyNotifySink

6.5.2 容器特定私有接口

6.5.3 多线程问题

6.5.4 事件冻结

6.5.5 容器控件

6.5.6 控件中的WS_GROUP和WS_TABSTOP标记

6.5.7 单个DLL中的多个控件

6.5.8 IOleContaincr:: EnumObjects方法

6.5.9 增强的元文件

6.5.10 许可

6.5.11 双重接口

6.5.12 IPropertyBag和IPersistPropertyBag

6.6 事件坐标转化

6.7 标准DISPIDS

6.8 数据绑定

第7章 ActiveX接口

7.1 IFont

7.2 IFont---Ole实现

7.3 IFontDisp

7.4 IFontDisp--Ole实现

7.5 IOleControl

7.6 IOleControlSite

7.7 IPerPropertyBrowsing

7.8 IPicture

7.9 IPicture-Ole实现

7.10 IPictureDisp

7.11 IPictureDisp-Ole实现

7.12 IPointerInactive

7.13 IPrint

7.14 PropertyNotifySink

7.15 IPropertyPage

7.16 IPropertyPage2

7.17 IPropertyPageSite

7.18 IPropertyPageSite--Ole实现

7.19 IQuickActivate

7.20 ISimpleFrameSite

7.21 ISpecifyPropertyPages

第8章 ActiveX函数

8.1 OleCreatePropertyFrame

8.2 OleCreatePropertyFrameIndirect

8.3 OleLoadPicturePath

8.4 OleTranslateColor

第9章 ActiveX结构

9.1 CADWORD

9.2 CALPOLESTR

9.3 CAUUID

9.4 CONIROLINFO

9.5 FONTDESC

9.6 UCINFO

9.7 OCPFIPARAMS

9.8 PAGERANGE

9.9 PAGESET

9.10 PICTDESC

9.11 PROPPAGEINFO

9.12 QACONTAINER

9.13 QACONTROL

第10章 ActiveX枚举

10.1 GUIDKIND

10.2 KEYMODIFIERS

10.3 PICTURE

10.4 PICTYPE

10.5 POINTERINACTIVE

10.6 QACONTAINERFLAGS

第三部分 结构化存储

第11章 关于结构化存储

11.1 结构化存储的好处

11.1.1 文件系统的演变

11.1.2 存储和流

11.1.3 复合文件

11.2 结构化存储基础

11.2.1 存储对象命名约定

11.2.2 结构化存储接口

11.2.3 结构化存储API函数

11.2.4 属性和属性集

11.2.5 结构化存储串行属性集格式

第12章 异步存储

12.1 存储模式

12.2 异步复合文件

12.3 异步绑定和存储是如何工作的

12.4 复合文件优化

第13章 使用结构化存储

13.1 COM对象中的存储

13.2 管理属性

13.3 COM中的属性集实现

13.3.1 属性集考虑事项

13.3.2 管理属性集

13.3.3 存储属性集

13.3.4 性能特征

13.3.5 实现概述信息属性集

13.3.6 IPropertySetStorage实现考虑事项

第14章 结构化存储接口

14.1 复合文件实现限制

14.2 IDirectWriterLock

14.3 IEnumSTATPROPSETSTG

14.4 IEnumSTATPROPSTG

14.5 iEnumSTATSTG

14.6 IFillLockBvtes

14.7 ILayoutStorage

14.8 ILockBytes

14.9 IPropertySetStorage

14.10 IPropertyStorage

14.11 IRootStorage

14.12 ISequentialStream

14.13 IStorage

14.14 IStream

第15章 结构化存储函数

15.1 CreatLockBytesOnHGlobal

15.2 CreateStreamOnHGlobal

15.3 FmtIdToPropStgName

15.4 FreePropVariantArray

15.5 GetConvertStg

15.6 GetHGlobalFromILock Bvtes

15.7 GetHGlobalFromStream

15.8 OleConvertIStorageToOLESTREAM

15.9 OleConvertIStorageToOLESTREAMEx

15.10 OleConvertOLESTREAMToIStorage

15.11 OleConvertOLESTREAMToIStorageEx

15.12 PropStgNameToFmtId

15.13 PropVariantClear

15.14 PropVariantCopy

15.15 PropVariantInit

15.16 ReadClassStg

15.17 ReadClassStm

15.18 ReadFmtUserTypeStg

15.39 SetConvertStg

15.20 StgCreateDocfile

15.21 StgCreateDocfileOnILockBytes

15.22 StgCreatePropSetStg

15.23 StgCreatePropStg

15.14 StgCreateStorageEx

15.25 StgGetIFillLockBytesOnFile

15.26 StgGetIFillLockBytesOnILockBytes

15.27 StgIsStorageFile

15.28 StgIsStorageILockBytes

15.29 StgOpenAsyncDocfileOnIFillLockBytes

15.30 StgOpenLayoutDocfile

15.31 StgOpenPropStg

15.32 StgOpenStorage

15.33 StgOpenStorageEx

15.34 StgOpenStorageOnILockBytes

15.35 StgSetTimes

15.36 WriteClassStg

15.37 WriteClassStm

15.38 WriteFmtUserTypeStg

第16章 结构化存储结构

16.1 PROPSPEC

16.2 PROPVARIANT

16.3 RemSNB

16.4 SNB

16.5 STATPROPSETSTG

16.6 STATPROOPSTG

16.7 STATSTG

16.8 STGOPTIONS

16.9 StorageLayout

第17章 结构化存储枚举类型

17.1 LOCKTYPE

17.2 PROPSETFLAG

17.3 STATFLAG

17.4 STGC

17.5 STGFMT

17.6 STGM

17.7 STGMOVE

17.8 STGTY

17.9 STREAM SEEK

17.10 范例

COM+词汇表