我们将详细介绍COM规范,尤其是COM对接口使用的约定,这部分内容
是COM标准的核心。COM接口是建立在二进制一级的标准。COM的一些高级特
性如多线程模型、分布式COM等都以此为基础。
2.1 COM对象
COM是面向对象的组件模型。COM提供给客户的是以对象形式封装起来
的实体。
2.1.1 COM对象的标志--CLSID
COM组件的位置对客户来说是透明的,因为客户并不直接去访问COM组件,
客户程序通过一个全局标志符进行对象的创建和初始化工作。但如何在没有
中心机构管理的情况下保证唯一性是解决标志符的要点。为此,COM采用了128
位全局唯一标志符。下面是一个GUID的例子
{54bef6567-1007-11d1-b0aa-4445535540000}
随机性由两方面的特性保证:一方面是空间,另一方面是时间。COM库为
我们提供了如下API函数可以产生GUID:
HRESULT CoCreateGuid (GUID *pguid);.CLSID是用来标志COM对象的GUID。
2.1.1 COM对象与C++对象的比较
1.封装特性
在COM对象中,数据是完全封装在对象内部,外部不可能直接访问对象的数
据属性。通过COM对象和客户程序提供的接口成员函数访问对象的属性。COM对象
的数据成员的封装性是以组件为最终边界的,对于对象用户是完全透明的、不可
见的;而C++对象的封装特性只是语义上的封装,对于对象用户是可见的。
2.可重用性
COM对象的可重用性表现在COM对象的包容和聚合,一个对象可以完全使用另
一个对象的所有功能;而C++对象的可重用性表现在C++类的继承性,派生类可以
调用其父类的非私有成员函数。
2.2 COM接口
组件之间的接口至关重要。COM规范的核心内容是关于接口的定义。
2.2.1 从API到COM接口
2.2.2 接口定义和标志
接口是包含了一组函数的数据结构,通过这组数据结构,客户代码可以调用
组件对象的功能。客户程序使用一个接口数据结构的指针来调用接口成员函数。接口
指针实际上又指向另一个指针,这第二个指针指向一组函数,成为接口函数表。接口
函数表中每一项为4个字节的函数指针,每个函数指针与对象的具体实现联系起来。
COM接口也采用了全局唯一标志符,它被称为接口标志符(IID,interface identifier)
2.2.3 用C++语言定义接口
2.2.4 接口描述语言IDL
COM规范在采用OSF的DCE规范描述远程调用接口IDL(interface description language)
的基础上,进行扩展形成了COM接口的描述语言。
2.2.5 接口的内存模型
2.2.6 接口的一些特点
1.二进制特性
2.接口不变性
3.继承性(扩展性)
4.多态性--运行过程中的多态性
相关推荐
Com原理及應用——Com對象和接口
1、COM对象的理解 COM对象类似于C++语言中类的概念,类的每个实例代表一个COM对象,它也包括属性(即状态)和方法(即操作),状态反映对象的存在,方法就是接口。 2、COM对象的标识-CLSID GUID是一个128位的随机数,重复概率极低。它的值来源于两部分:空间值(网卡地址或随机数)和时间值。 获得GUID值可以使用VC++提供的工具:GUIDGen.exe 和 UU
COM组件的接口和对象
一、 前言 在COM规范中,最基本的两个要素就是对象与接口,因为COM就是由这两者来共同实现的。COM对象在组件中是被封装起来的,客户代码只能通过接口来访问COM对象并享受其服务,由于客户与COM直接打交道的是COM接口,所以COM接口是COM最关键的要素。COM规范的核心内容就是对接口的定义,甚至可以说“在COM中接口就是一切”。组件与组件之间、组件与客户之间都要通过接口进行交互。接口成员函数
基于STM32F334C8T6的四开关Buck-Boost双向DC-DC电源设计与实现(附源码、仿真与计算书)
本文详细介绍了基于STM32F334C8T6的四开关Buck-Boost双向DC-DC电源设计方案。该设计利用STM32的高分辨率定时器(HRTIM)实现精确PWM控制,支持Buck、Boost和Buck-Boost三种工作模式自动切换,具备双向能量流动能力。通过PSIM仿真和Mathcad计算书进行参数优化,实测效率达95.8%,适用于新能源系统和电池管理等场景。
《COM原理及应用》学习笔记之第二章
第二章 COM对象和接口 1、COM对象的理解 COM对象类似于C++语言中类的概念,类的每个实例代表一个COM对象,它也包括属性(即状态)和方法(即操作),状态放映对象的存在,方法就是接口。 2、COM对象的标识-CLSID GUID是一个128位的随机数,重复概率极低。它的值来源于两部分:空间值(网卡地址或随机数)和时间值。 获得
深入解析TMC2209 UART寄存器配置:从基础指令到高级参数调优
本文深入解析TMC2209 UART寄存器配置,从基础指令到高级参数调优,涵盖电流控制、微步细分等关键设置。通过实战案例和优化技巧,帮助开发者高效配置步进电机驱动,提升系统性能和稳定性。特别介绍了UART通信协议和CRC校验实现,确保数据传输可靠性。
解决Docker拉取镜像报错:Get https://registry-1.docker.io/v2/: 报错
解决Docker拉取镜像报错: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection问题描述Get "https://registry-1.docker.io/v2/"是docker官方的镜像源,下载很慢的,一般会自己指定国内映射的加速镜像源。
COM技术内幕的源码笔记2.2.2
COM技术内幕的源码笔记2.2.2
Redis简介和项目应用
内存优先架构简介Redis的读写操作都是在内存中执行的,计算机内存的读写速度极快,比机械硬盘的读写快很多,因此也会比MySql采用机械读写的方式性能更高。但是这样会产生一个问题,当Redis重启之后,内存中的数据就会丢失,为了保证数据不会因为服务器重启而丢失,Redis实现了数据持久化的机制,这个机制会把数据存储到磁盘中,当服务器重启的时候,能够从磁盘中恢复原有的数据。
COM原理及应用----COM对象和接口
1、COM对象的理解 COM对象类似于C++语言中类的概念,类的每个实例代表一个COM对象,它也包括属性(即状态)和方法(即操作),状态反映对象的存在,方法就是接口。 2、COM对象的标识-CLSID GUID是一个128位的随机数,重复概率极低。它的值来源于两部分:空间值(网卡地址或随机数)和时间值。 获得GUID值可以使用VC++提供的工具:GUIDGen.exe
2月底速申!国家超算互联网免费算力全攻略|编程小白零消耗实操首测_2026-02-26
2月底速申!国家超算互联网免费算力全攻略|编程小白零消耗实操首测作为一名编程小白,我目前正在学习编译和运行 Qt 框架,也在逐步摸索开发环境的配置方法,目标是打造一款属于自己的个人效率工具。就在这时,我挖到了一个国家级硬核福利:国家超算互联网核心节点开放免费试运行!哪怕是零基础如我,也能申领到 100 卡时异构加速卡算力,关键是——2 月底前申请更稳妥,早占位早使用。
31、工程中不确定性量化与优化的全面解析
本文全面解析了工程中不确定性量化与优化的关键方法。针对数据充足与不足两种情况,分别介绍了概率理论和非概率方法在不确定性建模中的应用;系统阐述了采样方法、FORM/SORM、泰勒级数近似等不确定性传播技术;深入比较了RBDO与RDO两种主流优化框架的原理、步骤及适用场景,并通过两杆桁架案例展示了具体实现过程。文章旨在为工程师提供一套完整的从不确定性分析到优化设计的方法论,提升工程系统的可靠性与稳健性。
COM 对象 和 接口
COM Objects and Interfaces 一个对象实现一个接口,他的意思就是该对象使用代码实现了接口的每个方法并且为这些函数通向com库提供了com的二进制指针。然后com使这些函数运行在请求了一个指向该接口的任何客户端。 Interfaces and Interface Implementations COM 在接口的定义和实现上有根本的差别。一个接口
ardupilot开发 --- Remote ID 篇
适配ardupilot的Remote ID模块研发,远程标识模块研发。Remote ID模块可以通过蓝牙或wifi向外广播无人机的状态信息、位置信息、任务信息等,并可以通过蜂窝数据向国家无人驾驶航空器一体化综合监管服务平台上报这些信息。Remote ID功能是21年起国家出台的民用无人机适航飞行的基本要求!
第二章 COM对象和接口
第二章 COM对象和接口 1、COM对象的理解 COM对象类似于C++语言中类的概念,类的每个实例代表一个COM对象,它也包括属性(即状态)和方法(即操作),状态放映对象的存在,方法就是接口。 2、COM对象的标识-CLSID GUID是一个128位的随机数,重复概率极低。它的值来源于两部分:空间值(网卡地址或随机数)和时间值。 获得
从 SAP GUI 到 API 自动化,为什么 SAP 团队必须把 API 拉到路线图中央
摘要: SAP项目正从传统手工操作转向API驱动,以应对业务敏捷性需求。API不仅是技术接口,更是核心业务能力的标准化封装,助力自动化、低代码、AI集成和系统升级。通过SAP Business Accelerator Hub等工具,企业可复用标准API替代定制开发,减少技术债。API还赋能自动化平台、实时集成和AI Agent执行,确保安全治理与审计追踪。未来,API将成为企业系统与AI交互的核心桥梁,缺乏API将迫使业务依赖脆弱的UI自动化方案。
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
com原理与运用 chapter 2 com对象和接口
chapter 2 com对象和接口1,通常情况下把com对象简称为对象,把com接口简称为接口。客户程序与com组件程序进行交互的实体是com对象。2,记住这个结构typedef struct _GUID {DWORD data1; // 32 位WORD data2; // 16 位WORD data3;
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
《COM原理与应用》学习笔记二——COM对象和COM接口的实现
COM对象是给用户提供服务的封装的实体。这个应该和C++中类的对象理解起来是相似的。但是有时候也把COM对象当作提供服务的那个类。COM对象也对数据进行了封装,然后也提供了接口。不过和类还是有一些不一样的。类中的数据可以申明为public,然后让用户能够直接访问这些数据成员。但是用户不能对COM对象的数据进行直接访问,只能通过接口(如果有提供这种接口的话)来对数据进行间接的访问。一般...
android 蓝牙通讯demo
android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
【COM原理和应用】2、COM对象和接口
1、COM对象 在客户程序与组件交互的过程中,COM组件将以COM对象形式封装的实体提供给客户程序。与C++等面向对象语言中类的概念类似,COM对象也包含其成员属性和成员方法,前者反应COM对象的状态,后者是对象提供给外界的接口。这种封装特性也是COM对象的基本特性。 1.1、COM对象的标识——CLSI...
COM原理及应用之COM对象和接口
1、COM对象的理解 COM对象类似于C++语言中类的概念,类的每个实例代表一个COM对象,它也包括属性(即状态)和方法(即操作),状态反映对象的存在,方法就是接口。 2、COM对象的标识-CLSID GUID是一个128位的随机数,重复概率极低。它的值来源于两部分:空间值(网卡地址或随机数)和时间值。 获得GUID值可以使用VC++提供的工具:GUIDGen...
COM原理及应用---- COM对象和接口
1、COM对象的理解 COM对象类似于C++语言中类的概念,类的每个实例代表一个COM对象,它也包括属性(即状态)和方法(即操作),状态反映对象的存在,方法就是接口。 2、COM对象的标识-CLSID GUID是一个128位的随机数,重复概率极低。它的值来源于两部分:空间值(网卡地址或随机数)和时间值。 获得GUID值可以使用VC++提供的工具:GUIDGen.e
2136



被折叠的 条评论
为什么被折叠?



