一种COM组件的注册方法及装置制造方法及图纸

技术编号:4252278 阅读:297 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种组件式对象模型COM组件的注册方法及装置,所述方法包括:使用COM组件的系统架构初始化时,所述系统架构在所属的操作系统中查找得到COM组件所对应的组件文件;系统架构从操作系统获取COM组件的注册信息;所述注册信息由操作系统从查找得到的所述组件文件中获取得到;所述系统架构保存获取到的所述注册信息。所述方法及装置在使用COM组件的系统架构初始化时自动注册COM组件,提高了注册效率。

【技术实现步骤摘要】

本专利技术涉及组件集成技术,尤其涉及一种C0M(C0MpOnent ObjectModel,组件式对象模型)组件的注册方法及装置。
技术介绍
COM提供了一种在不同的应用程序和语言之间共享二进制代码的规范。COM规范 定义了软件组件互相通讯的方式。作为一种二进制和网络标准,COM允许任意两个组件互 相通讯,而不管所述任意两个组件是在什么计算机上运行(只要计算机是相连的),也不管 计算机运行的是什么操作系统(只要该操作系统支持COM),也不管该组件是用什么语言编 写的。COM还提供了位置透明性,即所述COM组件可以是进程内D11、本地exe或者也可以 是位于其他计算机上的组件等。COM不是一种面向对象的语言,而是一种与源代码无关的二进制标准。COM所建立 的是一个软件模块与另一个软件模块之间的链接,而当这种链接建立之后,模块间就可以 通过称之为“接口,,的机制来进行通信。COM标准增加了保障系统和组件完整的安全机制, 并扩展到分布式环境,例如,基于分布式环境下的COM被称为DCOM(Distributed COM,分布 式组件对象模型)等。在操作系统如Windows下,在使用某COM组件之前,一般需要手工运行相应的外部 程序如 regsvr32. exe,所述外部程序调用 Windows 的 API 函数 DllRegisterServerJf COM 组件的注册信息写入注册表中,之后,当需要使用COM组件时,操作系统根据注册表中的注 册信息构建实例化组件进行使用。通过以上描述可知现有技术中需要手动进行COM组件的注册,注册效率低。
技术实现思路
有鉴于此,本专利技术要解决的技术问题是,提供一种COM组件的注册方法及装置,在 使用COM组件的系统架构初始化时自动注册COM组件,提高了注册效率。为此,本专利技术实施例采用如下技术方案本专利技术实施例提供一种组件式对象模型COM组件的注册方法,包括使用COM组件的系统架构初始化时,所述系统架构从系统架构所属的操作系统中 查找得到COM组件所对应的组件文件;所述系统架构从操作系统获取COM组件的注册信息;所述注册信息由操作系统从 查找得到的所述组件文件中获取得到;所述系统架构保存获取到的所述注册信息。其中,所述查找与所述获取之间进一步包括系统架构加载查找到的所述COM组件所对应的组件文件,得到COM组件对应的实 例化函数,将所述实例化函数对应的实例化函数接口添加到所述注册信息中。所述注册信息包括C0M组件的类型、注册类型以及实例化函数接口。所述系统架构保存获取到的所述注册信息具体为所述系统架构将所述注册信息写入所述系统架构的组件信息表中,所述组件信息 表用于为系统架构构建COM组件提供相应的注册信息。所述系统架构从操作系统获取COM组件的注册信息具体为系统架构接收操作系统发来的函数名称,其中,所述函数名称对应的函数由操作 系统根据操作系统获取到的所述COM组件的注册信息建立;系统架构根据所述函数名称查找得到该函数名称对应的函数,从该函数中获取 COM组件的注册信息。所述系统架构为应用程序。本专利技术实施例还提供一种COM组件的注册装置,包括查找单元,用于在所述装置所属的系统架构初始化时,从所述系统架构所属的操 作系统中查找得到COM组件所对应的组件文件;获取单元,用于从操作系统获取COM组件的注册信息,所述注册信息由操作系统 从查找得到的所述组件文件中获取得到;存储单元,用于保存获取到的所述注册信息。其中,还包括加载单元,用于加载查找到的所述COM组件所对应的组件文件,得到COM组件对应 的实例化函数,将所述实例化函数对应的实例化函数接口添加到所述注册信息中。所述注册信息包括C0M组件的类型、注册类型以及实例化函数接口。所述存储单元具体用于将所述注册信息写入所述系统架构的组件信息表中,所 述组件信息表用于为系统架构构建com组件提供相应的注册信息。所述获取单元具体用于接收操作系统发来的函数名称,根据所述函数名称查找 得到相应的函数,从该函数中获取COM组件的注册信息,其中,所述函数名称对应的函数由 操作系统根据操作系统获取到的所述COM组件的注册信息建立。对于上述技术方案的技术效果分析如下 使用COM组件的系统架构在初始化时,查找COM组件对应的组件文件,进而从操作 系统获取COM组件的注册信息并保存,从而实现了 COM组件的自动注册,无需如现有技术般 在使用COM组件时手工注册,提高了注册效率,简化了用户操作。附图说明图1为本专利技术实施例一种COM组件的注册方法流程示意图;图2为本专利技术实施例另一种COM组件的注册方法流程示意图;图3为本专利技术实施例一种COM组件的注册装置结构示意图。具体实施例方式以下,结合附图详细说明本专利技术实施例COM组件的注册方法及装置的实现。图1为本专利技术实施例COM组件的注册方法流程示意图,如图1所示,包括步骤101 使用COM组件的系统架构初始化时,在所述系统架构所属的操作系统中 查找得到COM组件所对应的组件文件。所述使用COM组件的系统架构可以为使用COM组件的应用程序等。所述系统架构 所属的操作系统可以为Wind0WS、Linux等操作平台等,这里并不限定,只要该操作平台支 持COM即可。步骤102 系统架构从操作系统获取COM组件的注册信息;所述注册信息由操作系 统从查找得到的所述组件文件中获取得到。步骤103 所述系统架构保存获取到的所述注册信息。图1所示的本专利技术实施例中,由使用COM组件的系统架构在初始化时,查找对应的 组件文件,进而从操作系统获取COM组件的注册信息并保存,从而实现了 COM组件的自动注 册,无需如现有技术般在使用COM组件时手工注册,提高了注册效率,简化了用户操作。图2为本专利技术实施例另一种COM组件的注册方法流程示意图,如图2所示,包括步骤201 使用COM组件的系统架构(下文简称为系统架构)在初始化时,所述 系统架构在所属的操作系统中查找得到COM组件所对应的组件文件。其中,所述查找可以通过系统架构调用操作系统中相应的API函数完成。另外,可 以将所有COM组件的组件文件保存于同一目录下,之后,当查找某一 COM组件的组件文件 时,系统架构只需调用相应的API函数到所述同一目录下查找特定文件即可。另外,所述组件文件可以设置特定的后缀,以与其他类型的文件进行区分。例如 可以将所述组件文件的后缀设置为po等。步骤202 系统架构加载查找到的所述组件文件,得到COM组件对应的实例化函 数,将所述实例化函数对应的实例化函数接口添加到所述注册信息中。其中,所述加载可以为系统架构读取组件文件到对应的内存中,并将所述组件文 件转换为可执行程序,形成COM组件对应的实例化函数。步骤203 操作系统从查找到的所述组件文件中获取所述COM组件的注册信息,将 获取到的所述注册信息发送给所述系统架构。所述注册信息主要包括组件类型、注册类型(关键字)、实例化的函数接口,还可 以包括可能的附加参数。所述注册信息在COM组件的组件文件中可以以注册宏的形式存 在,注册宏具体可以为定义的一种组件的数据结构。其中,所述组件类型、注册类型等可以通过字符串、整数值等表征,例如,注册一种 用于视频解码的组件,其组件类型为视频解码组件;注册类型则设定为具本文档来自技高网...

【技术保护点】
一种组件式对象模型COM组件的注册方法,其特征在于,包括:使用COM组件的系统架构初始化时,所述系统架构从系统架构所属的操作系统中查找得到COM组件所对应的组件文件;所述系统架构从操作系统获取COM组件的注册信息;所述注册信息由操作系统从查找得到的所述组件文件中获取得到;所述系统架构保存获取到的所述注册信息。

【技术特征摘要】
一种组件式对象模型COM组件的注册方法,其特征在于,包括使用COM组件的系统架构初始化时,所述系统架构从系统架构所属的操作系统中查找得到COM组件所对应的组件文件;所述系统架构从操作系统获取COM组件的注册信息;所述注册信息由操作系统从查找得到的所述组件文件中获取得到;所述系统架构保存获取到的所述注册信息。2.根据权利要求1所述的方法,其特征在于,所述查找与所述获取之间进一步包括系统架构加载查找到的所述COM组件所对应的组件文件,得到COM组件对应的实例化函数,将所述实例化函数对应的实例化函数接口添加到所述注册信息中。3.根据权利要求2所述的方法,其特征在于,所述注册信息包括C0M组件的类型、注册 类型以及实例化函数接口。4.根据权利要求1至3任一项所述的方法,其特征在于,所述系统架构保存获取到的所 述注册信息具体为所述系统架构将所述注册信息写入所述系统架构的组件信息表中,所述组件信息表用 于为系统架构构建COM组件提供相应的注册信息。5.根据权利要求1至3任一项所述的方法,其特征在于,所述系统架构从操作系统获取 COM组件的注册信息具体为系统架构接收操作系统发来的函数名称,其中,所述函数名称对应的函数由操作系统 根据操作系统获取到的所述COM组件的注册信息建立;系统架构根据所述函数名称查找得到该函数名称对应的函数,从该函数中获取COM组 ...

【专利技术属性】
技术研发人员:熊轲
申请(专利权)人:北京东方网力科技有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1