一种com组件的注册方法及装置的制作方法

文档序号:6584681阅读:178来源:国知局
专利名称:一种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组件的组件文件中可以以注册宏的形式存 在,注册宏具体可以为定义的一种组件的数据结构。其中,所述组件类型、注册类型等可以通过字符串、整数值等表征,例如,注册一种 用于视频解码的组件,其组件类型为视频解码组件;注册类型则设定为具体能解码的流 类型,可以通过具体的整数值来进行不同流类型的区分。实例化函数接口是实例化组件的 地址,向所述系统架构指示相应的实例化组件,该实例化函数接口值在步骤202执行后根 据步骤202转换得到的实例化函数确定。所述操作系统在将注册信息发送给系统架构时,可以先将注册信息组成一个数据 结构,形成注册信息块,将该组件的所有注册信息形成链表形式,之后,将该链表的函数名 (例如PoModuleMakerList)发送给系统架构。步骤204 系统架构获取操作系统发来的所述COM组件的注册信息并保存。具体的,当操作系统通过例如PoModuleMakerList的函数名向系统架构返回注册 信息时,本步骤中所述获取操作系统发来的所述COM组件的注册信息具体可以为系统架 构通过调用操作系统相应的API函数查找该函数名的接口,从而查找到对应的函数,通过 调用该函数获得COM组件的注册信息。
系统架构可以建立用于保存COM组件注册信息的组件信息表,此时,本步骤中系 统架构将会将接收到的注册信息写入该组件信息表中。之后,系统架构即可以根据所述注册信息构建并使用相应的COM组件了。例如上 述的视频解码组件注册完成后,系统架构可以根据注册信息中的流类型以及实例化的函数 接口等信息,直接调用所述实例化函数,传入附加参数即可获得构造好的视频解码实例化 组件。图3为本发明实施例COM组件的自动注册装置结构示意图,如图3所示,包括查找单元310,用于所述装置所属的系统架构初始化时,在所述系统架构所属的操 作系统中查找得到COM组件所对应的组件文件;获取单元320,用于从操作系统获取COM组件的注册信息;所述注册信息由操作系 统从查找得到的所述组件文件中获取得到;存储单元330,用于保存获取到的所述注册信息。优选地,如图3所示,该装置还可以进一步包括加载单元340,用于加载查找到的所述COM组件所对应的组件文件,得到COM组件 对应的实例化函数。优选地,所述获取单元320具体可以用于接收操作系统发来的函数名称,调用操 作系统相应的API函数根据所述函数名称查找得到相应的函数,从该函数中获取COM组件 的注册信息;所述函数名称对应的函数由操作系统在从所述组件文件中获取到COM组件的 注册信息后根据所述注册信息建立。优选地,所述存储单元330具体可以用于将所述注册信息写入所述系统架构的 组件信息表中,以为系统架构构建com组件提供相应的注册信息。图3所示的注册装置,由查找单元310使用COM组件的系统架构在初始化时,查找 对应的组件文件,获取单元320从操作系统获取COM组件的注册信息后由存储单元330进 行保存,从而实现了 COM组件的自动注册,无需如现有技术般在使用COM组件时手工注册, 提高了注册效率,简化了用户操作。本领域普通技术人员可以理解,实现上述实施例COM组件注册方法的过程可以通 过程序指令相关的硬件来完成,所述的程序可以存储于可读取存储介质中,该程序在执行 时执行上述方法中的对应步骤。所述的存储介质可以如R0M/RAM、磁碟、光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人 员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应 视为本发明的保护范围。
权利要求
一种组件式对象模型COM组件的注册方法,其特征在于,包括使用COM组件的系统架构初始化时,所述系统架构从系统架构所属的操作系统中查找得到COM组件所对应的组件文件;所述系统架构从操作系统获取COM组件的注册信息;所述注册信息由操作系统从查找得到的所述组件文件中获取得到;所述系统架构保存获取到的所述注册信息。
2.根据权利要求1所述的方法,其特征在于,所述查找与所述获取之间进一步包括系统架构加载查找到的所述COM组件所对应的组件文件,得到COM组件对应的实例化函数,将所述实例化函数对应的实例化函数接口添加到所述注册信息中。
3.根据权利要求2所述的方法,其特征在于,所述注册信息包括C0M组件的类型、注册 类型以及实例化函数接口。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述系统架构保存获取到的所 述注册信息具体为所述系统架构将所述注册信息写入所述系统架构的组件信息表中,所述组件信息表用 于为系统架构构建COM组件提供相应的注册信息。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述系统架构从操作系统获取 COM组件的注册信息具体为系统架构接收操作系统发来的函数名称,其中,所述函数名称对应的函数由操作系统 根据操作系统获取到的所述COM组件的注册信息建立;系统架构根据所述函数名称查找得到该函数名称对应的函数,从该函数中获取COM组 件的注册信息。
6.根据权利要求1至3任一项所述的方法,其特征在于,所述系统架构为应用程序。
7.—种COM组件的注册装置,其特征在于,包括查找单元,用于在所述装置所属的系统架构初始化时,从所述系统架构所属的操作系 统中查找得到COM组件所对应的组件文件;获取单元,用于从操作系统获取COM组件的注册信息,所述注册信息由操作系统从查 找得到的所述组件文件中获取得到;存储单元,用于保存获取到的所述注册信息。
8.根据权利要求7所述的装置,其特征在于,还包括加载单元,用于加载查找到的所述COM组件所对应的组件文件,得到COM组件对应的实 例化函数,将所述实例化函数对应的实例化函数接口添加到所述注册信息中。
9.根据权利要求8所述的装置,其特征在于,所述注册信息包括C0M组件的类型、注册 类型以及实例化函数接口。
10.根据权利要求7至9任一项所述的装置,其特征在于,所述存储单元具体用于将 所述注册信息写入所述系统架构的组件信息表中,所述组件信息表用于为系统架构构建 com组件提供相应的注册信息。
11.根据权利要求7至9任一项所述的装置,其特征在于,所述获取单元具体用于接 收操作系统发来的函数名称,根据所述函数名称查找得到相应的函数,从该函数中获取COM 组件的注册信息,其中,所述函数名称对应的函数由操作系统根据操作系统获取到的所述COM组件的注册信息建立。
全文摘要
本发明公开了一种组件式对象模型COM组件的注册方法及装置,所述方法包括使用COM组件的系统架构初始化时,所述系统架构在所属的操作系统中查找得到COM组件所对应的组件文件;系统架构从操作系统获取COM组件的注册信息;所述注册信息由操作系统从查找得到的所述组件文件中获取得到;所述系统架构保存获取到的所述注册信息。所述方法及装置在使用COM组件的系统架构初始化时自动注册COM组件,提高了注册效率。
文档编号G06F9/44GK101876898SQ20091023785
公开日2010年11月3日 申请日期2009年11月12日 优先权日2009年11月12日
发明者熊轲 申请人:北京东方网力科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1