欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種調(diào)用com對象中多個接口的方法

文檔序號:6381981閱讀:829來源:國知局
專利名稱:一種調(diào)用com對象中多個接口的方法
—種調(diào)用COM對象中多個接口的方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機(jī)通訊領(lǐng)域,尤其涉及一種調(diào)用COM對象中多個接口的方法。背景技術(shù)
組件對象模型,英文為Component Object Model,縮寫COM,是一種跨應(yīng)用和語言共享二進(jìn)制代碼的方法。COM組件是遵循COM規(guī)范編寫、以Win32動態(tài)鏈接庫(DLL)或可執(zhí)行文件(EXE)形式發(fā)布的可執(zhí)行二進(jìn)制代碼,能夠滿足對組件架構(gòu)的所有需求。一個COM組件,也被稱為一個模塊,它可以是一個動態(tài)連接庫(DLL),被稱為進(jìn)程內(nèi)組件(in-of-process component),也可以是一個可執(zhí)行程序(EXE),被稱為進(jìn)程外組件(out-of-process component)。一個COM組件(也稱組件程序)可以包含一個或多個COM對象,因為COM是以COM對象為基本單元的模型,所以在COM組件與COM組件之間進(jìn)行通信時,通信的雙方應(yīng)該是COM對象,而COM組件是提供COM對象的代碼載體。COM對象是一個使用COM規(guī)格的、可以重復(fù)使用的軟件模塊,其能夠暴露任意數(shù)量的接口,一個接口是一組能夠執(zhí)行指定操作的方法;其中,COM對象必須暴露IUnknown接口,IUnknow 接口有三個函數(shù):QueryInterface, AddRef (),Release ()。目前,使用COM對象的應(yīng)用(或另一個COM對象)稱為客戶,當(dāng)客戶要使用某一COM組件中的某一 COM對象的某個接口時,首先必須調(diào)用COM庫中的API函數(shù)調(diào)用出該某一 COM對象,然后使用其IUnknow接口的QueryInterface函數(shù)查詢到所需接口并調(diào)用,由所需接口所定義的方法進(jìn)行運(yùn)算,并反饋返回值給上述客戶。由于,一次使用IUnknow接口的指令中只能查一個其他接口,如果想對某一 COM對象的多個接口進(jìn)行調(diào)用,就必須等客戶收到上一個接口的反饋值再來查詢并調(diào)用下一個接口,這樣的效率是非常低的,特別是在跨COM組件的調(diào)用COM對象的情況下。結(jié)合圖1,例如,第一 COM對象暴露了包括下面五個標(biāo)準(zhǔn)接口:IUnknow接口、+接口、-接口、X接口、+接口,其中,+接口、-接口、X接口、+接口分別對應(yīng)定義:加運(yùn)算方法(方法名為Add)、減運(yùn)算(方法名為Subtract)、乘運(yùn)算、除運(yùn)算。假設(shè)客戶現(xiàn)在要計算:1+2,1-2,I X 2,I + 2,先調(diào)用出第一 COM對象,客戶輸出使用指令“Querylnterface (“Add”,1,2) ”,通過第一 COM對象的IUnknow接口的QueryInerface函數(shù)去查詢“+接口 ”, “+接口”所定義的方法計算出返回值,第一 COM對象將返回值回傳給客戶;然后再輸出使用指令“Querylntefface ( “Subtract”, 1,2) ”去查詢接口”以得到第二個返回值,如此類推,耗時的操作是4次。

發(fā)明內(nèi)容本發(fā)明提供一種調(diào)用COM對象中多個接口的方法,其能解決調(diào)用速度慢的問題。上述技術(shù)問題通過以下技術(shù)方案實現(xiàn):
一種調(diào)用COM對象中多個接口的方法,包括以下步驟:
(I)預(yù)先對在所需調(diào)用的COM對象內(nèi)進(jìn)行創(chuàng)建自定義接口,并對該自定義接口定義方法:在COM對象內(nèi)部調(diào)用所述多個接口 ;(2)當(dāng)需要調(diào)用COM對象中所述多個接口時,調(diào)用COM庫中的API函數(shù)調(diào)用出所述COM對象,然后直接查詢并調(diào)用所述自定義接口 ;(3)所述自定義接口在執(zhí)行過程中調(diào)用多個接口。進(jìn)一步的方案是,對在所需調(diào)用的COM對象內(nèi)進(jìn)行創(chuàng)建自定義接口,具體為,創(chuàng)建實現(xiàn)自定義接口定義方法并滿足接口要求的dl I,然后注冊加載到所需調(diào)用的COM對象中。由上述方案可見,本發(fā)明通過嵌入至軟件內(nèi)部執(zhí)行代碼(即對在所需調(diào)用的COM對象內(nèi)進(jìn)行創(chuàng)建自定義接口),實現(xiàn)將原來的外部多次使用COM對象中的IUnknow接口來調(diào)用多個接口變成了外部一次使用COM對象中的IUnknow接口來調(diào)用多個接口,有效地提高數(shù)據(jù)處理速度,特別是在跨COM組件的調(diào)用COM對象的情況下,非常節(jié)省時間。同時,本方法并沒有改變COM對象原有的標(biāo)準(zhǔn)接口,因為通常的商業(yè)公司開發(fā)的COM對象是不允許其他人修改其原有的標(biāo)準(zhǔn)接口。

圖1為目前調(diào)用COM對象中多個接口的示意圖;圖2為本發(fā)明的流程圖;圖3為本發(fā)明調(diào)用COM對象中多個接口的示意圖。
具體實施方式結(jié)合圖2和圖3 所示,,一種調(diào)用COM對象中多個接口的方法,包括以下步驟:(I)預(yù)先對在所需調(diào)用的COM對象內(nèi)進(jìn)行創(chuàng)建自定義接口,并對該自定義接口定義方法:在COM對象內(nèi)部調(diào)用所述多個接口 ;(2)當(dāng)需要調(diào)用COM對象中所述多個接口時,調(diào)用COM庫中的API函數(shù)調(diào)用出所述COM對象,然后直接查詢并調(diào)用所述自定義接口 ;(3)所述自定義接口在執(zhí)行過程中調(diào)用多個接口。在COM標(biāo)準(zhǔn)中,每個接口都在完成被調(diào)用后都會反饋一返回值;自定義接口在一次性調(diào)用完多個接口并獲取它們的返回值,再將所有的返回值一起給到調(diào)用者。對在所需調(diào)用的COM對象內(nèi)進(jìn)行創(chuàng)建自定義接口,具體是:創(chuàng)建實現(xiàn)自定義接口定義方法并滿足接口要求的dll,然后注冊加載到所需調(diào)用的COM對象中以在所需調(diào)用的COM對象內(nèi)形成自定義接口。當(dāng)所需調(diào)用的COM對象在運(yùn)行時,上述dl I就會同時被加載到內(nèi)存中,以被調(diào)用,具體可按所需調(diào)用的COM對象.0bject.新增對象方法來調(diào)用。當(dāng)然,上述所需調(diào)用的COM對象對外暴露一可加載其他dll的機(jī)制。下面通過一實際使用例子來進(jìn)一步描述本發(fā)明:第一 COM對象暴露了包括下面五個標(biāo)準(zhǔn)接口:IUnknow接口、+接口、-接口、X接口、+接口,其中,+接口、-接口、X接口、+接口分別對應(yīng)定義:加運(yùn)算方法(方法名為Add)、減運(yùn)算(方法名為Subtract)、乘運(yùn)算、除運(yùn)算;假設(shè)現(xiàn)在要計算:1+2,1-2,1X2,
I+ 2 ;首先,預(yù)先要對第一 COM對象所在的軟件程序進(jìn)行改造,具體是在第一 COM對象中創(chuàng)建一個自定義接口,該自定義接口定義了以下方法,方法名為CustomArithmetic:在第一COM對象內(nèi)部調(diào)用+接口、-接口、X接口、+接口 ;然后,調(diào)用出第一 COM對象,客戶輸出使用指令“Querylnterface (“CustomArithmetic”,1,2) ”,通過第一 COM 對象的 IUnknow 接口的QueryInerface函數(shù)去查詢自定義接口,自定義接口按其所定義的方法分別調(diào)用+接口、-接口、X接口、+接口,并收集它們的返回值,第一 COM對象將所有的返回值回傳給客戶;可見,客戶只需調(diào)用一次第一COM對象的IUnknow接口,就可以一次獲得所有返回值,處理速度非???。本發(fā)明不局限于上述實施例,基于上述實施例的、未做出創(chuàng)造性勞動的簡單替換,應(yīng)當(dāng)屬于本發(fā)明揭露的范圍。
權(quán)利要求
1.一種調(diào)用COM對象中多個接口的方法,其特征在于,包括以下步驟: (1)對在所需調(diào)用的COM對象內(nèi)進(jìn)行創(chuàng)建自定義接口,并對該自定義接口定義方法:在COM對象內(nèi)部調(diào)用所述多個接口 ; (2)當(dāng)需要調(diào)用COM對象中所述多個接口時,調(diào)用COM庫中的API函數(shù)調(diào)用出所述COM對象,然后直接查詢并調(diào)用所述自定義接口 ; (3)所述自定義接口在執(zhí)行過程中調(diào)用所述多個接口。
2.按權(quán)利要求1所述的方法,其特征在于,對在所需調(diào)用的COM對象內(nèi)進(jìn)行創(chuàng)建自定義接口,具體為,創(chuàng)建實現(xiàn)自定義接口定義方法并滿足接口要求的dl I,然后注冊加載到所需調(diào)用的COM對象中。
全文摘要
本發(fā)明涉及一種調(diào)用COM對象中多個接口的方法,其特征在于,包括以下步驟(1)對在所需調(diào)用的COM對象內(nèi)進(jìn)行創(chuàng)建自定義接口,并對該自定義接口定義方法在COM對象內(nèi)部調(diào)用所述多個接口;(2)當(dāng)需要調(diào)用COM對象中所述多個接口時,調(diào)用COM庫中的API函數(shù)調(diào)用出所述COM對象,然后直接查詢并調(diào)用所述自定義接口;(3)所述自定義接口在執(zhí)行過程中調(diào)用多個接口。本發(fā)明解決了調(diào)用速度慢的問題。
文檔編號G06F9/46GK103092684SQ201210477299
公開日2013年5月8日 申請日期2012年11月21日 優(yōu)先權(quán)日2012年11月21日
發(fā)明者孔貴生, 皮霞林, 佐倫 申請人:珠海金山辦公軟件有限公司, 北京金山辦公軟件有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
长春市| 祁东县| 右玉县| 成安县| 七台河市| 阿拉善右旗| 广河县| 北碚区| 嵩明县| 翁源县| 固原市| 盘山县| 德保县| 凤山市| 巴马| 武强县| 荔浦县| 太康县| 昌乐县| 东丰县| 津市市| 利川市| 新绛县| 曲靖市| 湟源县| 政和县| 湾仔区| 宁德市| 桂东县| 临泉县| 防城港市| 钟祥市| 宜昌市| 辽阳县| 伊金霍洛旗| 望江县| 岳普湖县| 平泉县| 潼南县| 东平县| 揭东县|