COM组件技术的应用 COM组件技术的应用

COM组件技术的应用

  • 期刊名字:电脑知识与技术
  • 文件大小:624kb
  • 论文作者:沈树茂
  • 作者单位:苏州大学计算机科学与技术学院
  • 更新时间:2020-06-12
  • 下载次数:
论文简介

lssN10093044E-mail:eduf@cccc.net.cnCamputer Knowledge and Technology电知识与技术VoL6, No. 7, March 2010, pp. 1718-1719Tel:+86551-56909635690964coM组件技术的应用沈树茂(苏州大学计算机科学与技术学院,江苏苏州215006)摘要:COM的全名为 Component Object Model. COM是一种协议,它建立了一个软件模块同另一个软件模块之间的连接,它是许多新的 Microsoft Activex技术的基础,它现在威了 Microsoft Windows整体的一部分。不久之后,大多数的 Windows程都会涉及到CoM。两个模块之间就可以通过称为“接口”的机制来进行通讯。这些接口既不需要静态的或动态的连捶入口点,也不需要鳊码很复杂的地址,这和那些胜于启动通讯过程的一般COM函数有所不同。我们可以利用它的特性做一些应用。关键词:COM;OLE;自动化中图分类号:TP311文献标识码:A文章编号:1009-304(2010)07-1718-02组件可以分为进程内组件和进程外组件两类。进程内组件运行效率较高,以DLL(动态链接库)的形式出现。进程外组件的运行效率相对较低,但是进程外组件可以被远程调用。当外部程序与组件不在同一台机器,甚至不在同一个网络,都可以调用进程外组件。进程外组件以EXE(可执行程序)的形式出现。Oice自动化 JavaScript, Google Earth属于进程组件的范畴。文章将具体讨论进程外组件的应用。1 Office自动化Ofce自动化应用又叫“OLE自动化”基于COM(组件对象模型)的一项技术。这项技术可以嵌入到应用程序中根据需要导出大量采集的数据并生成各类图表。使用它可以带来非常大的方便用户根本不需要了解 office,就能使用 Excel,Word, PowerPoint的各种功能Oce自动化应用包含客户端和服务器。客户端连接服务器才能够使用服务器提供功能。从概念上可以知道,客户端就是应用程序,服务器就是Oice办公软件所有的 Microsoft office应用程序都有自己的脚本语言。这就可以在应用程序中用来实现一些我们想完成的一切功能。这种脚本语言就是ⅤBA( Microsoft Visual Basic for Applications)VBA程序组或宏的功能其实跟Omie自动化应用从外部实现是一样的。所以可以把VBA翻译成我们编写客户端的语言来实现自动化1)Oice对象模型Microsoft Office程序使用可编程的对象集合来给外部使用。每一个内容单元和功能在Oce中都是一个可编程测试和控制的对象。工作簿,文档,表格,单元格和段落都是对象的 Microsoft Office提供的对象。2)对象,方法,属性Microsoft Office程序每一个对象的层次结构就像家庭树一样。这个结构被称之为对象模型。每个对象模型都有一个至高无上的对象,用来派生其它对象。一般这样的对象代表程序的本身,取名为 Application对象Application对象拥有自己的子对象。为了让我们更清楚地了解层次结构。你可以看一下 Microsoft Excel提口供的对象。图1显示了 Excel对象部分层次结构。□可见Exce对象的最高级别对象就是 Application, Application有两个图1 Excel部分对象模型和对象之间的关系子对象:工作簿集( Workbooks),工具栏集( Command Bars)。这两个对象也包含其它的对象。 Workbooks包含多个工作簿( Workbook), Command Bars包含多个工具栏( Command Bar)。 Workbook包括两个子对象,工作表集( Worksheets)和图表集(Chas) Worksheet又包括范围( Range)和形式集( Shapes)这样的列毒还会继续延续,但这已经能够帮你理解对象模型的层次结构。理解对象之间的关系是自动化技术应用的基础个对象本身是不能做任何事情。你需要使用对象提供方法和属性。属性是一种用来设置和获取对象特性的功能。方法是种用来实现对象特有的一些功能从 Excel对象模型可以看出什么是方法和属性。 Range对象代表工作表中的一个或多个单元格所占区域 Range包含一些属性:内容数字格式,字体。这些属性可以用 Range的性能来操作。此外还有一些方法来操作 Range: Select方法, delete方法,Copy方法。在 Visual Basic中你需要使用一个对象,必须从最高级对象开始。2 JavaScriptC+与 Javascript的相互通信需要用到 IDispatch接口, IDispatch是自H中国煤化工( marshaling))所支持CNMHG收稿日期:2010-01-021718··多体技术及其用:.4本栏目费任编盟唐一东第6卷第7期(2010年3月Computer Knowledge and Technology电脑知识技术同时MFC库也能很好地支持它。从组件一方来看我们需要有一个具有 IDispatch接口(当然还要有必要的类厂)的COM类;从客户一方来看我们使用标准COM技术来获得 IDispatch指针。它有一个主要成员函数 Invoke。MFC涉及 Invoke调用的双方,它根据宏中定义的分发映射参数,利用一种数据驱动机制来调用组件函数。用户自己的控制程序可能要调用的另外一个函数为ceDsurNames。从BA程序员的角度来肴,属性和方法都有符号化的名字,而C+程序员则更喜欢使用效率更高的整型索引值。 Invoke是使用整数来指定属性和方法的,因此,如果在编译时无法知道索引值那么在程序开始时就可以利用 GetIDsONames来得到每个名字的索引值。我们已经知道, IDispatch允许方法具有符号化名字另外接口也允许方法的参数为符号化的名字。 GetIdsNames函数在返回方法名的同时,也会返回那些参数名。但MFC的 IDispatch实现不支持命名参数。3 Google EarthCoge公司为用户提供了 Google Earth COM AP类库,其意义在于用户可以在各种外部程序中调用 Google Earth的功能。Google Earth COM API是一个包括ll个类的类库,这些类都实现了 IDispatch接口。MFC为支持该技术提供一个类— cOldInpatchDriver类。在MFC中导人的 Google Earth COM AP类库中的类实际上都是 COleDispatchDriver类的派生类。因为用户在使用Google Earth COM API类库时都有可能用到 COleDispatch Driver类的属性和函数COleDispatchDriver类的内容比较复杂。 Create Dispatch0成员函数通过组件的CLSI值来创建组件对象,并返回该对象的指针Attach(0成员函数可以把当前 COleDispatchDriver类的对象和其他自动化对象联系起来; Detach Dispatch0函数和 AttachDispatch0函数的功能相反表1 Google Earth COM AP类库的类Lease Dispatch0函数用来释放所创建的对象。前视的方式用户通过 COleDispatchDniver类的函数创建了 Google Earth的对象,进而可以使用 Google Earth COM API类库。该类库的11类中 pplieationGE类<要家鼻合进一步耶要素最为重要。 Google Earth COM API类库中的其他类的使用,都会涉及Lppi坐标点费,获取福点的理坐标cationGE类中的属性或函数。这些类的简单介绍,如表1表示4结束语时要素在软件行业蓬勃发展的今天,不同软件之间相互利用是一个常见的事时间间限,获取要的射司隔性情。因此,COM在当今软件行业是一种潮流。参考文献[1]David J. Kruglinski. Inside Visual C++[M]. 4th Edtion. Microsoft Press, 1997.[2] Negrino, t& D. Smith. JavaScript Ajax Sixth Edition( M). Peachpit Press, 2007-9[3]江宽龚小鹏. Google API开发详解M北京:电子工业出版社,2008-1[4] Turner L. Automating Microsoft Office 97 and Office 2000( Z]. Microsoft Corporation, 2000-3(上接第1711页)3结束语本文提出了一种P2P方式的视频点播模型 P2PVOD,大大节省了对服务器的性能的要求,改进了P组播不能在底层支持的现状,且系统的可扩展性有了很大的改善。P2PVoD采用网络和树相结合的方式,具有更高的健壮性(增加了节点的处理能力,但个人计算机性能的发展远远能够满足这个要求)和扩展性。在大量节点加入的情况下,服务器的性能要求持续的稳定,同时具有网状的高健壮性,又有树的组织性。参考文献[章淼徐明伟吴建平应用层组播研究综述电子学报2004,32(12A):22-232]陈琨陈福民点到点式视频点播系统的研究[计算机应用与软件200210)8-103]黄道颍李祖鹏庄雷等分布式Per-to-Per网络 gnutella模型研究J计算机工程与应用,2003,3905:17-19「4]程德强钱建生田隽IP网络组播技术的新发展J电信科学2006228:63-675]岩延,周士波赵东升组播路由协议及其应用微电脑世界,2002(20:82-8495中国煤化工CNMHG本栏目酬任编辑:感一东··多体技术及其应用··1719

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。