COM組件技術(shù)的應用 COM組件技術(shù)的應用

COM組件技術(shù)的應用

  • 期刊名字:電腦知識與技術(shù)
  • 文件大?。?24kb
  • 論文作者:沈樹(shù)茂
  • 作者單位:蘇州大學(xué)計算機科學(xué)與技術(shù)學(xué)院
  • 更新時(shí)間:2020-06-12
  • 下載次數:次
論文簡(jiǎn)介

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

論文截圖
版權:如無(wú)特殊注明,文章轉載自網(wǎng)絡(luò ),侵權請聯(lián)系cnmhg168#163.com刪除!文件均為網(wǎng)友上傳,僅供研究和學(xué)習使用,務(wù)必24小時(shí)內刪除。
欧美AAAAAA级午夜福利_国产福利写真片视频在线_91香蕉国产观看免费人人_莉莉精品国产免费手机影院