COM組件技術(shù)的應(yīng)用
- 期刊名字:電腦知識(shí)與技術(shù)
- 文件大小:624kb
- 論文作者:沈樹茂
- 作者單位:蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院
- 更新時(shí)間:2020-06-12
- 下載次數(shù):次
lssN10093044E-mail:eduf@cccc.net.cnCamputer Knowledge and Technology電知識(shí)與技術(shù)VoL6, No. 7, March 2010, pp. 1718-1719Tel:+86551-56909635690964coM組件技術(shù)的應(yīng)用沈樹茂(蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇蘇州215006)摘要:COM的全名為 Component Object Model. COM是一種協(xié)議,它建立了一個(gè)軟件模塊同另一個(gè)軟件模塊之間的連接,它是許多新的 Microsoft Activex技術(shù)的基礎(chǔ),它現(xiàn)在威了 Microsoft Windows整體的一部分。不久之后,大多數(shù)的 Windows程都會(huì)涉及到CoM。兩個(gè)模塊之間就可以通過稱為“接口”的機(jī)制來(lái)進(jìn)行通訊。這些接口既不需要靜態(tài)的或動(dòng)態(tài)的連捶入口點(diǎn),也不需要鳊碼很復(fù)雜的地址,這和那些勝于啟動(dòng)通訊過程的一般COM函數(shù)有所不同。我們可以利用它的特性做一些應(yīng)用。關(guān)鍵詞:COM;OLE;自動(dòng)化中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-304(2010)07-1718-02組件可以分為進(jìn)程內(nèi)組件和進(jìn)程外組件兩類。進(jìn)程內(nèi)組件運(yùn)行效率較高,以DLL(動(dòng)態(tài)鏈接庫(kù))的形式出現(xiàn)。進(jìn)程外組件的運(yùn)行效率相對(duì)較低,但是進(jìn)程外組件可以被遠(yuǎn)程調(diào)用。當(dāng)外部程序與組件不在同一臺(tái)機(jī)器,甚至不在同一個(gè)網(wǎng)絡(luò),都可以調(diào)用進(jìn)程外組件。進(jìn)程外組件以EXE(可執(zhí)行程序)的形式出現(xiàn)。Oice自動(dòng)化 JavaScript, Google Earth屬于進(jìn)程組件的范疇。文章將具體討論進(jìn)程外組件的應(yīng)用。1 Office自動(dòng)化Ofce自動(dòng)化應(yīng)用又叫“OLE自動(dòng)化”基于COM(組件對(duì)象模型)的一項(xiàng)技術(shù)。這項(xiàng)技術(shù)可以嵌入到應(yīng)用程序中根據(jù)需要導(dǎo)出大量采集的數(shù)據(jù)并生成各類圖表。使用它可以帶來(lái)非常大的方便用戶根本不需要了解 office,就能使用 Excel,Word, PowerPoint的各種功能Oce自動(dòng)化應(yīng)用包含客戶端和服務(wù)器??蛻舳诉B接服務(wù)器才能夠使用服務(wù)器提供功能。從概念上可以知道,客戶端就是應(yīng)用程序,服務(wù)器就是Oice辦公軟件所有的 Microsoft office應(yīng)用程序都有自己的腳本語(yǔ)言。這就可以在應(yīng)用程序中用來(lái)實(shí)現(xiàn)一些我們想完成的一切功能。這種腳本語(yǔ)言就是ⅤBA( Microsoft Visual Basic for Applications)VBA程序組或宏的功能其實(shí)跟Omie自動(dòng)化應(yīng)用從外部實(shí)現(xiàn)是一樣的。所以可以把VBA翻譯成我們編寫客戶端的語(yǔ)言來(lái)實(shí)現(xiàn)自動(dòng)化1)Oice對(duì)象模型Microsoft Office程序使用可編程的對(duì)象集合來(lái)給外部使用。每一個(gè)內(nèi)容單元和功能在Oce中都是一個(gè)可編程測(cè)試和控制的對(duì)象。工作簿,文檔,表格,單元格和段落都是對(duì)象的 Microsoft Office提供的對(duì)象。2)對(duì)象,方法,屬性Microsoft Office程序每一個(gè)對(duì)象的層次結(jié)構(gòu)就像家庭樹一樣。這個(gè)結(jié)構(gòu)被稱之為對(duì)象模型。每個(gè)對(duì)象模型都有一個(gè)至高無(wú)上的對(duì)象,用來(lái)派生其它對(duì)象。一般這樣的對(duì)象代表程序的本身,取名為 Application對(duì)象Application對(duì)象擁有自己的子對(duì)象。為了讓我們更清楚地了解層次結(jié)構(gòu)。你可以看一下 Microsoft Excel提口供的對(duì)象。圖1顯示了 Excel對(duì)象部分層次結(jié)構(gòu)。□可見Exce對(duì)象的最高級(jí)別對(duì)象就是 Application, Application有兩個(gè)圖1 Excel部分對(duì)象模型和對(duì)象之間的關(guān)系子對(duì)象:工作簿集( Workbooks),工具欄集( Command Bars)。這兩個(gè)對(duì)象也包含其它的對(duì)象。 Workbooks包含多個(gè)工作簿( Workbook), Command Bars包含多個(gè)工具欄( Command Bar)。 Workbook包括兩個(gè)子對(duì)象,工作表集( Worksheets)和圖表集(Chas) Worksheet又包括范圍( Range)和形式集( Shapes)這樣的列毒還會(huì)繼續(xù)延續(xù),但這已經(jīng)能夠幫你理解對(duì)象模型的層次結(jié)構(gòu)。理解對(duì)象之間的關(guān)系是自動(dòng)化技術(shù)應(yīng)用的基礎(chǔ)個(gè)對(duì)象本身是不能做任何事情。你需要使用對(duì)象提供方法和屬性。屬性是一種用來(lái)設(shè)置和獲取對(duì)象特性的功能。方法是種用來(lái)實(shí)現(xiàn)對(duì)象特有的一些功能從 Excel對(duì)象模型可以看出什么是方法和屬性。 Range對(duì)象代表工作表中的一個(gè)或多個(gè)單元格所占區(qū)域 Range包含一些屬性:內(nèi)容數(shù)字格式,字體。這些屬性可以用 Range的性能來(lái)操作。此外還有一些方法來(lái)操作 Range: Select方法, delete方法,Copy方法。在 Visual Basic中你需要使用一個(gè)對(duì)象,必須從最高級(jí)對(duì)象開始。2 JavaScriptC+與 Javascript的相互通信需要用到 IDispatch接口, IDispatch是自H中國(guó)煤化工( marshaling))所支持CNMHG收稿日期:2010-01-021718··多體技術(shù)及其用:.4本欄目費(fèi)任編盟唐一東第6卷第7期(2010年3月Computer Knowledge and Technology電腦知識(shí)技術(shù)同時(shí)MFC庫(kù)也能很好地支持它。從組件一方來(lái)看我們需要有一個(gè)具有 IDispatch接口(當(dāng)然還要有必要的類廠)的COM類;從客戶一方來(lái)看我們使用標(biāo)準(zhǔn)COM技術(shù)來(lái)獲得 IDispatch指針。它有一個(gè)主要成員函數(shù) Invoke。MFC涉及 Invoke調(diào)用的雙方,它根據(jù)宏中定義的分發(fā)映射參數(shù),利用一種數(shù)據(jù)驅(qū)動(dòng)機(jī)制來(lái)調(diào)用組件函數(shù)。用戶自己的控制程序可能要調(diào)用的另外一個(gè)函數(shù)為ceDsurNames。從BA程序員的角度來(lái)肴,屬性和方法都有符號(hào)化的名字,而C+程序員則更喜歡使用效率更高的整型索引值。 Invoke是使用整數(shù)來(lái)指定屬性和方法的,因此,如果在編譯時(shí)無(wú)法知道索引值那么在程序開始時(shí)就可以利用 GetIDsONames來(lái)得到每個(gè)名字的索引值。我們已經(jīng)知道, IDispatch允許方法具有符號(hào)化名字另外接口也允許方法的參數(shù)為符號(hào)化的名字。 GetIdsNames函數(shù)在返回方法名的同時(shí),也會(huì)返回那些參數(shù)名。但MFC的 IDispatch實(shí)現(xiàn)不支持命名參數(shù)。3 Google EarthCoge公司為用戶提供了 Google Earth COM AP類庫(kù),其意義在于用戶可以在各種外部程序中調(diào)用 Google Earth的功能。Google Earth COM API是一個(gè)包括ll個(gè)類的類庫(kù),這些類都實(shí)現(xiàn)了 IDispatch接口。MFC為支持該技術(shù)提供一個(gè)類— cOldInpatchDriver類。在MFC中導(dǎo)人的 Google Earth COM AP類庫(kù)中的類實(shí)際上都是 COleDispatchDriver類的派生類。因?yàn)橛脩粼谑褂肎oogle Earth COM API類庫(kù)時(shí)都有可能用到 COleDispatch Driver類的屬性和函數(shù)COleDispatchDriver類的內(nèi)容比較復(fù)雜。 Create Dispatch0成員函數(shù)通過組件的CLSI值來(lái)創(chuàng)建組件對(duì)象,并返回該對(duì)象的指針Attach(0成員函數(shù)可以把當(dāng)前 COleDispatchDriver類的對(duì)象和其他自動(dòng)化對(duì)象聯(lián)系起來(lái); Detach Dispatch0函數(shù)和 AttachDispatch0函數(shù)的功能相反表1 Google Earth COM AP類庫(kù)的類Lease Dispatch0函數(shù)用來(lái)釋放所創(chuàng)建的對(duì)象。前視的方式用戶通過 COleDispatchDniver類的函數(shù)創(chuàng)建了 Google Earth的對(duì)象,進(jìn)而可以使用 Google Earth COM API類庫(kù)。該類庫(kù)的11類中 pplieationGE類<要家鼻合進(jìn)一步耶要素最為重要。 Google Earth COM API類庫(kù)中的其他類的使用,都會(huì)涉及Lppi坐標(biāo)點(diǎn)費(fèi),獲取福點(diǎn)的理坐標(biāo)cationGE類中的屬性或函數(shù)。這些類的簡(jiǎn)單介紹,如表1表示4結(jié)束語(yǔ)時(shí)要素在軟件行業(yè)蓬勃發(fā)展的今天,不同軟件之間相互利用是一個(gè)常見的事時(shí)間間限,獲取要的射司隔性情。因此,COM在當(dāng)今軟件行業(yè)是一種潮流。參考文獻(xiàn)[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開發(fā)詳解M北京:電子工業(yè)出版社,2008-1[4] Turner L. Automating Microsoft Office 97 and Office 2000( Z]. Microsoft Corporation, 2000-3(上接第1711頁(yè))3結(jié)束語(yǔ)本文提出了一種P2P方式的視頻點(diǎn)播模型 P2PVOD,大大節(jié)省了對(duì)服務(wù)器的性能的要求,改進(jìn)了P組播不能在底層支持的現(xiàn)狀,且系統(tǒng)的可擴(kuò)展性有了很大的改善。P2PVoD采用網(wǎng)絡(luò)和樹相結(jié)合的方式,具有更高的健壯性(增加了節(jié)點(diǎn)的處理能力,但個(gè)人計(jì)算機(jī)性能的發(fā)展遠(yuǎn)遠(yuǎn)能夠滿足這個(gè)要求)和擴(kuò)展性。在大量節(jié)點(diǎn)加入的情況下,服務(wù)器的性能要求持續(xù)的穩(wěn)定,同時(shí)具有網(wǎng)狀的高健壯性,又有樹的組織性。參考文獻(xiàn)[章淼徐明偉吳建平應(yīng)用層組播研究綜述電子學(xué)報(bào)2004,32(12A):22-232]陳琨陳福民點(diǎn)到點(diǎn)式視頻點(diǎn)播系統(tǒng)的研究[計(jì)算機(jī)應(yīng)用與軟件200210)8-103]黃道潁李祖鵬莊雷等分布式Per-to-Per網(wǎng)絡(luò) gnutella模型研究J計(jì)算機(jī)工程與應(yīng)用,2003,3905:17-19「4]程德強(qiáng)錢建生田雋IP網(wǎng)絡(luò)組播技術(shù)的新發(fā)展J電信科學(xué)2006228:63-675]巖延,周士波趙東升組播路由協(xié)議及其應(yīng)用微電腦世界,2002(20:82-8495中國(guó)煤化工CNMHG本欄目酬任編輯:感一東··多體技術(shù)及其應(yīng)用··1719
-
C4烯烴制丙烯催化劑 2020-06-12
-
煤基聚乙醇酸技術(shù)進(jìn)展 2020-06-12
-
生物質(zhì)能的應(yīng)用工程 2020-06-12
-
我國(guó)甲醇工業(yè)現(xiàn)狀 2020-06-12
-
石油化工設(shè)備腐蝕與防護(hù)參考書十本免費(fèi)下載,絕版珍藏 2020-06-12
-
四噴嘴水煤漿氣化爐工業(yè)應(yīng)用情況簡(jiǎn)介 2020-06-12
-
Lurgi和ICI低壓甲醇合成工藝比較 2020-06-12
-
甲醇制芳烴研究進(jìn)展 2020-06-12
-
精甲醇及MTO級(jí)甲醇精餾工藝技術(shù)進(jìn)展 2020-06-12
