根据提供的信息,“com技术内幕 -- 微软组件对象模型(inside COM.pdf)”这份文档主要聚焦于微软的组件对象模型(COM)技术。接下来,我们将详细探讨COM的基本概念、原理及其实现方式,以便更好地理解这一重要的软件开发技术。 ### 组件对象模型(COM)概述 组件对象模型(Component Object Model,简称COM)是微软提出的一种软件架构,用于定义组件如何通过接口进行交互的标准。COM是一种语言无关、进程透明的对象模型,支持在不同的编程环境中创建可复用的组件,并且这些组件可以在同一进程或跨进程甚至跨网络进行通信。 ### COM的核心特性 #### 1. 接口和实现分离 COM的核心理念之一就是将组件的接口与实现相分离。这意味着应用程序只需要知道如何调用组件的接口,而无需关心具体的实现细节。这种分离有助于提高组件的可重用性和灵活性。 #### 2. 进程透明性 COM允许组件在同一进程中运行,也可以跨进程或跨计算机运行,而无需修改组件的代码。这意味着开发者可以创建高性能的应用程序,同时保持组件的可移植性。 #### 3. 支持多种语言 COM支持多种编程语言,包括C++、Visual Basic、C#等。这种语言无关性使得开发者可以根据项目的具体需求选择最适合的语言来开发组件。 ### COM的关键概念 #### 对象和接口 在COM中,对象是实现特定功能的实体,而接口则是定义该对象如何被使用的协议。一个对象可以实现多个接口,而每个接口又定义了一组方法。通过接口,客户端可以访问对象的功能。 #### GUID 全局唯一标识符(Globally Unique Identifier,GUID)是COM中用来唯一标识接口、类和其他元素的重要机制。每一个新的接口或类都会被分配一个GUID,确保在整个系统中的唯一性。 #### 引用计数 为了管理对象的生命周期,COM采用了引用计数机制。每当有一个新引用指向某个对象时,其引用计数增加;当引用被释放时,引用计数减少。当引用计数为零时,表示没有对象引用它了,此时可以安全地销毁该对象。 #### 接口查询 客户端可以通过调用对象的`QueryInterface`方法来获取对象所支持的其他接口。这种方法使客户端能够在运行时发现对象的能力,并按需使用这些能力。 ### COM的应用场景 COM广泛应用于Windows平台上的各种应用程序开发中,尤其是在以下领域: - **办公自动化**:如Word、Excel等Office应用程序的自动化操作。 - **系统管理工具**:利用COM组件可以轻松构建强大的系统管理和监控工具。 - **多媒体应用**:DirectX等多媒体技术也是基于COM构建的。 ### COM的局限性 尽管COM具有许多优点,但它也存在一些局限性,例如对多线程的支持较为复杂、调试困难等问题。随着.NET框架的出现,很多新项目开始转向使用.NET中的组件模型(CLSID),但这并不意味着COM已经过时,在许多现有的系统中仍然大量依赖于COM技术。 微软的组件对象模型(COM)是一项极其重要的技术,它不仅极大地推动了软件工程的发展,而且至今仍活跃在各种应用场景中。对于想要深入了解COM及其应用的开发者来说,这份“com技术内幕 -- 微软组件对象模型(inside COM.pdf)”文档将会是非常有价值的资源。
2025-10-16 14:22:28 9.39MB 技术内幕
1
由 Dale Rogerson 撰写的《COM技术内幕——微软组件对象模型》(Inside COM)一书附带的源码适合在Visual C++ 6.0下编译,同样的源码拿到 Visual Studio 2010 下面进行编译,会报告很多错误。因此本人对源码中的错误进行了纠正,使得修改后的源码能够在 Visual Studio 2010 命令行下编译通过,获得的exe程序能够执行。将修改过的源码在这里发布一下,希望能对这本书的读者有所帮助。发布的源码中缺少书中第13章的源码,因为能找到的第13章 Tangram 的源码在编译时都报告缺少一些文件,始终无法编译通过。所以这里发布的源码是书中第2章至第12章的源码。VS 2010 下编译源码使用的命令、对原始源码所做的修改说明也随源码一起发布,详情见每一章源码目录下的“编译命令.txt”文件。
2023-03-22 09:18:52 27.76MB COM
1
COM技术内幕——微软组件对象模型(附加源代码).pdf 我用它入门的书籍,非常好!
1
两本经典书籍对ATL和COM编程初学者来说必不可少
2021-12-23 13:19:58 23.22MB ATL编程指南 COM微软组件对象模型
1
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《COM技术内幕——微软组件对象模型》一书的随书源代码 COM技术内幕——微软组件对象模型 基本信息 原书名: Inside COM: Microsoft's Component Object Model with Cdrom 原出版社: Microsoft Press 作者: (美)Dale Rogerson 译者: 杨秀章 丛书名: 微软版权图书 出版社:清华大学出版社 ISBN:730203320X 上架时间:2001-10-11 出版日期:1999 年3月 页码:293 版次:1-1 所属分类:计算机 > 软件与程序设计 > COM/DCOM/ATL/COM+ 内容简介    微软公司的组件对象模型(COM)作为一种重要的工具已崭露头角,它是微软迈向分布式计算的基础。不论现在还是将来,它都是定制应用程序的一种强大的方法。并且它是OLE和ActiveX 的基础。COM帮助你理解未来的程序开发技术,而这本书帮助你理解COM。在本书中你将发现:构建优美的COM组件的清晰、简单、实用的规则;COM是如何易学易用,特虽是对那些熟练掌握C++ 的人;循序渐进地介绍COM设计;以代码形式给出的大量实例。    《COM技术内幕》适合于中、高级C++程序员;COM、ActiveX和OLE程序员;对组件设计感兴趣的研究人员;以及那些当COM移植到UNIX、MVS和其他环境时想要使用到COM的程序员。 编辑推荐    微软公司的组件对象模型(COM)作为一种重要的工具已崭露头角,它是微软迈向分布式计算的基础。不论现在还是将来,它都是定制应用程序的一种强大的方法。并且它是OLE和ActiveX 的基础。COM帮助你理解未来的程序开发技术,而这本书帮助你理解COM。在本书中你将发现:构建优美的COM组件的清晰、简单、实用的规则;COM是如何易学易用,特虽是对那些熟练掌握C++ 的人;循序渐进地介绍COM设计;以代码形式给出的大量实例。 目录 封面 -17 扉页 -16 版权 -15 译者前言 -14 目录 -13 引言 -6 第1章 组件 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 COM 6 1.3.1 COM组件是…… 7 1.3.2 COM不是…… 7 1.3.3 COM库 8 1.3.4 COM方法 8 1.3.5 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 接口理论:第二部分 20 2.3.1 接口的不变性 20 2.3.2 多态 20 2.4 接口的背后 21 2.4.1 虚拟函数表 21 2.4.2 vtbl指针及实例数据 23 2.4.3 多重实例 24 2.4.4 不同的类,相同的vtbl 24 2.5 本章小结 26 第3章 QueryInterface函数 27 3.1 接口查询 28 3.1.1 关于IUnknown 28 3.1.2 IUnknown指针的获取 29 3.1.3 关于QueryInterface 29 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 同一IUnknown 40 3.3.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 隐含
2021-07-01 14:07:40 430KB COM 技术内幕 微软 组件对象模型
1