亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 205001.htm

?? 探索Windows 2000發(fā)展策略以及中介層技術(shù)設(shè)計(jì)的基本概念
?? HTM
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
<html><body><span  id=Layer1><p><font size=2 color=#3c3c3c face=arial>對(duì)於Microsoft Windows 2000,沒有任何軟體開發(fā)技術(shù)比元件物件模型還要更基本的了。幾乎每個(gè)在這個(gè)平臺(tái)上或Microsoft其它作業(yè)系統(tǒng)上撰寫的應(yīng)用程式都會(huì)使用COM。即使跨多個(gè)系統(tǒng)執(zhí)行的應(yīng)用程式也能使用增強(qiáng)型式的COM,就是所謂的分散式的COM(Distributed COM,DCOM)。</span><span  id=Layer2></font></p><p><font size=2 color=#3c3c3c face=arial>為Windows 2000撰寫軟體表示使用COM</span><span  id=Layer3></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>為Windows 2000撰寫軟體表示使用COM</span><span  id=Layer4></font></p><hr><p><font size=2 color=#3c3c3c face=arial>Windows 2000引進(jìn)了COM+,它是這個(gè)核心技術(shù)的延伸版本。本章將詳細(xì)地介紹COM的基本,大部份的技術(shù)和COM+是一樣沒有改變的。若要詳細(xì)了解COM+的特性,可參考</span><span  id=Layer5>&nbsp;<a target='_new' href=208.htm#>第八章</span><span  id=Layer6></a>&nbsp;。</span><span  id=Layer7></font></p><a name=205001><font color=#3e70d7 face=arial size=5><b>了解COM物件</span><span  id=Layer8></b></font><p><font size=2 color=#3c3c3c face=arial>在COM中,客戶端存取COM物件所提供的服務(wù)。第一個(gè)該回答的問題便是:什麼是一個(gè)COM物件?就像其它的類型的物件一樣,一個(gè)COM物件就是一個(gè)抽象的軟體,封裝兩個(gè)東西:資料與method。一個(gè)物件的資料,也稱為它的狀態(tài),就是指物件儲(chǔ)存在記憶體中的資訊,而它的method就是它的程式碼,允許物件提供它的服務(wù)。舉例來說,一個(gè)COM物件允許銷售員開出的訂單內(nèi)包含訂單明細(xì)資料,這些資料是訂單的一部份,以及訂單建立的時(shí)間。這個(gè)物件的method包含將訂單項(xiàng)目加到訂單、提交訂單、判斷訂單建立的時(shí)間...等等方法。</span><span  id=Layer9></font></p><p><font size=2 color=#3c3c3c face=arial>一個(gè)COM物件有兩樣?xùn)|西:資料和method</span><span  id=Layer10></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>一個(gè)COM物件有兩樣?xùn)|西:資料和method</span><span  id=Layer11></font></p><hr><p><font size=2 color=#3c3c3c face=arial>就類似在程式語(yǔ)言中的method一樣,一個(gè)COM物件的method可以擁有參數(shù)。舉例來說,一個(gè)新增一個(gè)項(xiàng)目到訂單的method可能夾帶一個(gè)整數(shù)參數(shù),其中包含欲新增訂單項(xiàng)目的數(shù)量。在COM中,method必須組成介面,而每個(gè)COM物件都要實(shí)作一些介面。(實(shí)際上數(shù)目上總是超過一個(gè),理由稍後再解釋。)舉例來說,剛提及的訂單物件可能會(huì)將所有建立一份訂單用到的所有method組成一個(gè)介面,所有用來處理與訂單相關(guān)資訊的method,如建立訂單,可能會(huì)組成第二個(gè)介面。介面只顯露一個(gè)物件的method,資料已封裝,只能透過物件實(shí)作的介面中的method存取。如</span><span  id=Layer12>&nbsp;<a target='_new' href=201.htm#>第一章</span><span  id=Layer13></a>&nbsp;所展示的一樣,物件提供的每一個(gè)介面在慣例上是使用一個(gè)小圈圈連結(jié)到一個(gè)物件來表示。</span><span  id=Layer14></font></p><p><font size=2 color=#3c3c3c face=arial>許多Method組成許多介面</span><span  id=Layer15></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>許多Method組成許多介面</span><span  id=Layer16></font></p><hr><p><font size=2 color=#3c3c3c face=arial>每個(gè)COM物件都有一個(gè)或多個(gè)客戶端使用它的服務(wù)之軟體。若要存取一個(gè)物件的服務(wù),客戶端必須呼叫物件所提供的method。在呼叫特定介面上的method之前,客戶端必須要求指向那個(gè)介面的介面指標(biāo)。一切端賴客戶端所使用的程式開發(fā)語(yǔ)言的不同,客戶端不一定可以看到真正的指標(biāo);不過不管它看起來像什麼樣子,它允許客戶端呼叫它所參考到的介面內(nèi)的method。就如圖5-1中顯示,客戶端握住同一個(gè)COM物件的多個(gè)介面指標(biāo)是很平常的事,每一個(gè)介面一個(gè)指標(biāo),指向它欲呼叫的介面。</span><span  id=Layer17></font></p><p><font size=2 color=#3c3c3c face=arial>客戶端使用介面指標(biāo)呼叫method</span><span  id=Layer18></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>客戶端使用介面指標(biāo)呼叫method</span><span  id=Layer19></font></p><hr><br><center><a target=_new href=imagesh/5-1.gif><img border=0 src='imagesl/5-1.gif'></a></center></span><span  id=Layer20><center><table border=0 ><td align=center><font color=#3c3c3c face=arial size=2><font size=2 face=arial color=#3e80d7><b>&nbsp;圖5-1</span><span  id=Layer21>&nbsp;</b></font>若要呼叫特定介面上的method,客戶端必須握住指向那個(gè)介面的介面指標(biāo)。</span><span  id=Layer22></td></table></font></center><p><font size=2 color=#3c3c3c face=arial>在更深入探討介面之前,得要強(qiáng)調(diào)一下COM物件可以使用許多不同的程式開發(fā)語(yǔ)言建立。事實(shí)上,一個(gè)COM物件與它的客戶端可能,或者也可能不是以同一種程式語(yǔ)言寫成的。因?yàn)镃OM定義了與語(yǔ)言獨(dú)立的一種標(biāo)準(zhǔn),以供客戶端和物件進(jìn)行互動(dòng)。COM程式設(shè)計(jì)師最普遍的選擇便是Microsoft Visual Basic、C++與Java,但現(xiàn)在幾乎所有在Windows 2000上與Microsoft其它作業(yè)系統(tǒng)的開發(fā)工具都能夠支援COM。這叁種最流行的語(yǔ)言每一種都對(duì)物件有自己的解釋。這些概念幾乎是很類似的,也和COM對(duì)物件的定義相近,但是它們并不是完全相同。撰寫使用COM的軟體需要了解COM對(duì)物件的觀點(diǎn):它們都是相同的,不管使用的程式語(yǔ)言是哪一種,然後看看這些觀點(diǎn)要如何對(duì)應(yīng)到特定的程式語(yǔ)言。</span><span  id=Layer23></font></p><p><font size=2 color=#3c3c3c face=arial>COM物件可讓許多不同的程式開發(fā)語(yǔ)言使用</span><span  id=Layer24></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>COM物件可讓許多不同的程式開發(fā)語(yǔ)言使用</span><span  id=Layer25></font></p><hr><p><font size=2 color=#3c3c3c face=arial>不用太訝異,C++的程式設(shè)計(jì)師要了解的最詳細(xì),如果選擇使用COM的話,就得很痛苦地了解COM的低階部份。他們也可以使用高階的開發(fā)工具,如現(xiàn)在流行的Microsoft ActiveX Template Library (ATL) 來隱藏許多的細(xì)節(jié)。對(duì)照之下,對(duì)Visual Basic的程式設(shè)計(jì)師而言,COM的細(xì)節(jié)已完全隱藏起來了。因此在Visual Basic中使用COM就變得很簡(jiǎn)單,但有時(shí)也令人很  氣。Visual Basic/COM的對(duì)照不見得都相同。最後,很意外地,Java對(duì)物件原生的觀點(diǎn)和COM非常類似。Microsoft的Java virtual machine (JVM)的偉大功勛便是支援Java物件到COM物件直接的對(duì)應(yīng),反之亦然。若使用Microsoft JVM,Java可能是COM程式設(shè)計(jì)師最自然的語(yǔ)言,為的就是這兩類物件最簡(jiǎn)單直覺的對(duì)應(yīng)關(guān)系了。</span><span  id=Layer26></font></p><font color=#3e72d7 face=arial size=4><b>介面(Interface)</span><span  id=Layer27></b></font><p><font size=2 color=#3c3c3c face=arial>在COM中,整體看來一個(gè)客戶端從來就不會(huì)握住一個(gè)正在執(zhí)行的物件之參考。而是客戶端盡透過呼叫介面指標(biāo)來呼叫物件的method與其互動(dòng)。從客戶端的觀點(diǎn),一個(gè)COM物件主要可視為一群介面的集合。不管用來撰寫物件的語(yǔ)言為何,COM介面永遠(yuǎn)符合一個(gè)定義在記憶體中的結(jié)構(gòu)。為了讓客戶端呼叫物件上的method,透過正確的記憶體布局,COM讓使用某一種語(yǔ)言撰寫的COM物件和其它語(yǔ)言寫的物件相互溝通。</span><span  id=Layer28></font></p><p><font size=2 color=#3c3c3c face=arial>COM定義介面在記憶體中的結(jié)構(gòu)</span><span  id=Layer29></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>COM定義介面在記憶體中的結(jié)構(gòu)</span><span  id=Layer30></font></p><hr><p><font size=2 color=#3c3c3c face=arial><font size=2 face=arial color=#3e80d7><b>&nbsp;介面的類型</span><span  id=Layer31>&nbsp;</b></font>在一個(gè)完美的世界,一個(gè)介面的樣式可以用在所有客戶端與物件的組合。然而在不完美的世界里,COM的存在就不是那麼回事了,因此便存在著叁種不同類型的COM介面。在COM的演進(jìn)過程中,每一種介面都是為了特殊的理由存在的,如果COM是在今天建立的,那麼這些差異點(diǎn)可能就不存在了。</span><span  id=Layer32></font></p><p><font size=2 color=#3c3c3c face=arial>COM擁有叁種類型的介面</span><span  id=Layer33></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>COM擁有叁種類型的介面</span><span  id=Layer34></font></p><hr><p><font size=2 color=#3c3c3c face=arial>第一個(gè)選擇,vtable介面,最原始是為C++設(shè)計(jì)的。也就是所謂的自訂介面,它們記憶體中的結(jié)構(gòu)映照到流行的C++編譯器中method呼叫的方式(包含Microsoft Visual C++)。如此在C++中實(shí)作vtable介面的動(dòng)作就變得相當(dāng)簡(jiǎn)單,并能很有效地透過vtable介面呼叫C++撰寫的物件之method。</span><span  id=Layer35></font></p><p><font size=2 color=#3c3c3c face=arial>第一種介面類型,vtable介面,最初是為C++定義的</span><span  id=Layer36></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>第一種介面類型,vtable介面,最初是為C++定義的</span><span  id=Layer37></font></p><hr><p><font size=2 color=#3c3c3c face=arial>今天,vtable介面也能夠很簡(jiǎn)單、快速,并普遍地在Visual Basic與Java中使用。不過當(dāng)COM在1993年初次發(fā)表時(shí),vtable介面并不適合Visual Basic使用。還有一點(diǎn),Visual Basic程式在呼叫使用C++導(dǎo)向的介面結(jié)構(gòu)之method時(shí)仍有一些挑戰(zhàn)。不過對(duì)Visual Basic來說這不是vtable介面帶來的唯一問題。對(duì)任何技術(shù)來說,還有一個(gè)更棘手的問題,便是如何讓以不同程式語(yǔ)言撰寫的客戶端與物件互動(dòng):如何轉(zhuǎn)換某種語(yǔ)言的資料型態(tài)到另一種語(yǔ)言定義的資料型態(tài)呢?假設(shè)一個(gè)使用C++撰寫的物件將要給Visual Basic客戶端使用,那麼若這個(gè)物件介面中其中一個(gè)method實(shí)作時(shí),以一個(gè)指標(biāo)當(dāng)做參數(shù),這會(huì)發(fā)生什麼事? Visual Basic并不支援指標(biāo),因此要從Visual Basic客戶端呼叫這個(gè)method便成為一件不可能的事。當(dāng)兩個(gè)語(yǔ)言牽涉到兩者都支援一種特殊的資料型態(tài),但卻以不同的方式來處理時(shí),一個(gè)更微妙但無傷大雅的問題就發(fā)生了。舉例來說,C++與Visual Basic兩者都支援字元字串,不過它們處理字串的方式卻有天壤之別。這些問題該怎麼解決呢?</span><span  id=Layer38></font></p><p><font size=2 color=#3c3c3c face=arial>COM一開始的答案便是定義第二類型的介面,通常稱為分派介面(dispatch interface),但更常被稱為dispinterface。dispinterface可讓Visual Basic程式能夠有效地實(shí)作COM物件,并能扮演COM物件的客戶端。Dispinterface在記憶體中的結(jié)構(gòu)與vtable的結(jié)構(gòu)有一些不同,以便讓Visual Basic更容易呼叫method。(事實(shí)上,每個(gè)dispinterface依賴於一個(gè)特定的vtable介面,稱IDispatch。)同樣地,在dispinterface中,method的參數(shù)只限定於某些資料型態(tài)。和vtable介面不一樣的地方在於,vtable介面的method能接受的參數(shù)是限定在C++中定義的型態(tài);dispinterface的資料型態(tài)基本上只限制於Visual Basic中可用的(雖然dispinterface同樣也可以在Java中使用)。因?yàn)槭褂胐ispinterface有時(shí)也稱做自動(dòng)化(automation),所以一個(gè)介面的參數(shù)型態(tài)如果遵循這個(gè)限制就可稱為自動(dòng)化相容(automation-compatible)。</span><span  id=Layer39></font></p><p><font size=2 color=#3c3c3c face=arial>第二個(gè)介面類型,dispin-terface,一開始是為了Visual Basic而定義的</span><span  id=Layer40></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>第二個(gè)介面類型,dispin-terface,一開始是為了Visual Basic而定義的</span><span  id=Layer41></font></p><hr><p><font size=2 color=#3c3c3c face=arial>當(dāng)參數(shù)傳送到一個(gè)dispinterface method,或從這個(gè)method傳出時(shí),這些參數(shù)都是包裝成一個(gè)或多個(gè)Variant。一個(gè)Variant包含任何自動(dòng)化相容型態(tài)的值,同樣的也包含一個(gè)指示,指明它的資料型態(tài)。舉例來說,一個(gè)特定的Variant可能包含某些整數(shù)值,以及一個(gè)標(biāo)注(Tag)指明它的資料是一個(gè)長(zhǎng)整數(shù)。Variant對(duì)於Visual Basic程式設(shè)計(jì)師來說是很方便的,Visual Basic會(huì)為你進(jìn)行所有將參數(shù)轉(zhuǎn)換成這個(gè)格式的動(dòng)作,反之亦然。</span><span  id=Layer42></font></p><p><font size=2 color=#3c3c3c face=arial>今天,Visual Basic又提升了,它現(xiàn)在可以讓Visual Basic的客戶端使用vtable,以及這些自動(dòng)化相容的介面來存取或?qū)嵶鰿OM物件。而第叁種可用的介面是,Dual Interface。一個(gè)Dual Interface基本上將vtable與dispinterface在記憶體中的結(jié)構(gòu)組合在一起,允許使用任一種介面的樣式來呼叫method。然而dual Interface仍是自動(dòng)化相容的,以便適用於Visual Basic與Java。事實(shí)上,使用Visual Basic建立的COM物件預(yù)設(shè)便是使用dual Interface來顯露它們的method。</span><span  id=Layer43></font></p><p><font size=2 color=#3c3c3c face=arial>第叁個(gè)介面類型,dual interface,合并了前兩種介面類型</span><span  id=Layer44></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>第叁個(gè)介面類型,dual interface,合并了前兩種介面類型</span><span  id=Layer45></font></p><hr><p><font size=2 color=#3c3c3c face=arial><font size=2 face=arial color=#3e80d7><b>&nbsp;辨識(shí)介面</span><span  id=Layer46>&nbsp;</b></font>若要呼叫特定介面上的method,客戶端必須取得指向某個(gè)執(zhí)行中的COM物件其介面的指標(biāo)。正確完成這個(gè)動(dòng)作的過程將於稍後描述,不過很明顯的,客戶端若要取得這個(gè)指標(biāo)得靠某些方式來辨識(shí)自己感興趣的介面。換句話說,介面必須擁有名稱。</span><span  id=Layer47></font></p><p><font size=2 color=#3c3c3c face=arial>每一個(gè)介面要有名稱</span><span  id=Layer48></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>每一個(gè)介面要有名稱</span><span  id=Layer49></font></p><hr><p><font size=2 color=#3c3c3c face=arial>在COM中,每個(gè)介面都擁有兩個(gè)名稱。其中一個(gè)名稱是讓人使用的,因此它只是一個(gè)字元字串。根據(jù)命名原則,COM介面的名稱都是以字母「I」開始的。舉例來說,前面提到的訂單物件可能有一個(gè)類似IOrderEntry與IOrderStatistics的名稱。當(dāng)你談?wù)摰紺OM物件,第一種樣式的名稱讓人很容易記得。</span><span  id=Layer50></font></p><p><font size=2 color=#3c3c3c face=arial>人類可以讀取的介面通常以「I」開頭</span><span  id=Layer51></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>人類可以讀取的介面通常以「I」開頭</span><span  id=Layer52></font></p><hr><p><font size=2 color=#3c3c3c face=arial>然而,這類介面的名稱并不是唯一的。有可能兩個(gè)不同的人(也完全地合法)定義兩個(gè)不同的介面,而名稱都是稱為,IMyInterface。為了要取得正確介面的介面指標(biāo),客戶端必須有某種方式來區(qū)分某個(gè)特定的介面。因此,每一個(gè)介面都需要有一個(gè)唯一可供辨別的名稱。</span><span  id=Layer53></font></p><p><font size=2 color=#3c3c3c face=arial>因?yàn)榈诙惖拿Q必需是唯一的,對(duì)使用者來說它并沒有太親切的名稱,它是要讓軟體使用的。因此每一個(gè)COM介面都指派一個(gè)值,也就是所謂的全域唯一識(shí)別碼(Universally Unique Identifier,UUID)或稱Globally Unique Identifier (GUID)。(這些術(shù)語(yǔ)通常交互使用,不過在本書中主要使用的是後者。) GUID是一個(gè)16位元組的值,在時(shí)間與空間上都是唯一的。指定到一個(gè)特定介面的GUID就是所謂的介面識(shí)別碼(interface identifier,IID)。一旦一個(gè)IID(也就是一個(gè)GUID)指定到一個(gè)介面,這個(gè)IID就可以永遠(yuǎn)用來辨識(shí)這個(gè)介面。</span><span  id=Layer54></font></p><p><font size=2 color=#3c3c3c face=arial>每個(gè)介面也擁有一個(gè)全域唯一的IID</span><span  id=Layer55></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>每個(gè)介面也擁有一個(gè)全域唯一的IID</span><span  id=Layer56></font></p><hr><p><font size=2 color=#3c3c3c face=arial>因?yàn)镚UID是全域唯一的,所以每當(dāng)你要定義一個(gè)新介面時(shí),不能單單只產(chǎn)生一個(gè)GUID。有許多不同的方式可以取得GUID。最困難也最不常用的方式便是從Microsoft要求一個(gè)GUID。最簡(jiǎn)單的方式便是在你的電腦上執(zhí)行一個(gè)簡(jiǎn)單的軟體工具。每當(dāng)使用這個(gè)工具時(shí),它便會(huì)產(chǎn)生一個(gè)新的GUID,而且保證是全域唯一的。GUID另一個(gè)重要的應(yīng)用是當(dāng)做IID,它們也可以用來當(dāng)做其他東西的命名,我們將會(huì)看得到的。</span><span  id=Layer57></font></p><p><font size=2 color=#3c3c3c face=arial>GUID一向都是使用軟體工具建立的</span><span  id=Layer58></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>GUID一向都是使用軟體工具建立的</span><span  id=Layer59></font></p><hr><p><font size=2 color=#3c3c3c face=arial>為何能讓在不同臺(tái)機(jī)器上獨(dú)立執(zhí)行的相同軟體,確能夠確保軟體產(chǎn)生的值都不相同呢?答案就在GUID所包含的東西。它的主要組成份子包含一個(gè)時(shí)間戳記(timestamp)指明建立的時(shí)間,以及安裝在GUID產(chǎn)生的這臺(tái)電腦之網(wǎng)路卡的Medium Access Control (MAC)位址。 時(shí)間戳記能確保在這臺(tái)機(jī)器上產(chǎn)生的每個(gè)GUID都是不同的,而MAC位址確保兩個(gè)同時(shí)產(chǎn)生的GUID不會(huì)相同,因?yàn)镸AC位址是由一個(gè)集中的機(jī)構(gòu)制定,每塊網(wǎng)卡的MAC位址在這個(gè)世界上都是唯一的。這使得GUID的產(chǎn)生相當(dāng)容易,但仍可以確保唯一性。若要論及所牽涉到某些公司的安全性,則Windows 2000可以產(chǎn)生GUID,將MAC位址再做個(gè)包裝,而非全封不動(dòng)地出現(xiàn)在GUID。</span><span  id=Layer60></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b>附注 </b></font><p><font size=2 color=#3c3c3c face=arial>為何能讓在不同臺(tái)機(jī)器上獨(dú)立執(zhí)行的相同軟體,確能夠確保軟體產(chǎn)生的值都不相同呢?答案就在GUID所包含的東西。它的主要組成份子包含一個(gè)時(shí)間戳記(timestamp)指明建立的時(shí)間,以及安裝在GUID產(chǎn)生的這臺(tái)電腦之網(wǎng)路卡的Medium Access Control (MAC)位址。 時(shí)間戳記能確保在這臺(tái)機(jī)器上產(chǎn)生的每個(gè)GUID都是不同的,而MAC位址確保兩個(gè)同時(shí)產(chǎn)生的GUID不會(huì)相同,因?yàn)镸AC位址是由一個(gè)集中的機(jī)構(gòu)制定,每塊網(wǎng)卡的MAC位址在這個(gè)世界上都是唯一的。這使得GUID的產(chǎn)生相當(dāng)容易,但仍可以確保唯一性。若要論及所牽涉到某些公司的安全性,則Windows 2000可以產(chǎn)生GUID,將MAC位址再做個(gè)包裝,而非全封不動(dòng)地出現(xiàn)在GUID。</span><span  id=Layer61></font></p><hr><p><font size=2 color=#3c3c3c face=arial><font size=2 face=arial color=#3e80d7><b>&nbsp;定義介面</span><span  id=Layer62>&nbsp;</b></font>一個(gè)COM介面是一個(gè)相當(dāng)簡(jiǎn)單的概念,它只定義了客戶端需要知道以便呼叫method的東西。因?yàn)镃OM使用許多方式來定義COM介面,所以你有許多種選擇。定義介面最正式也最強(qiáng)大的方式便是使用COM的介面定義語(yǔ)言(Interface Definition Language,IDL)。IDL的語(yǔ)法是由C衍生的,而COM的IDL事實(shí)上是基於Open Group的Distributed Computing Environment (DCE)定義的IDL。</span><span  id=Layer63></font></p><p><font size=2 color=#3c3c3c face=arial>IDL可以用來定義介面</span><span  id=Layer64></font></p><hr><font face=Arial Black color=#3e77d7 size=3><b></b></font><p><font size=2 color=#3c3c3c face=arial>IDL可以用來定義介面</span><span  id=Layer65></font></p><hr><p><font size=2 color=#3c3c3c face=arial>若前述的訂單項(xiàng)目的介面是一個(gè)vtable介面,它的IDL看起來可能如下:</span><span  id=Layer66></font></p><div style="background-color: #D7D7D7;"><font face=Arial size=3><pre>[ object,,	uuid(A7CD0D00-1827-11CF-9946-493655354000)]

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费视频一区二区| 中文字幕中文字幕一区二区| 久久亚洲一区二区三区明星换脸| 欧美精品一区二区三区久久久| 国产欧美日韩激情| 一区二区三区不卡在线观看 | 色婷婷一区二区| 欧美视频中文一区二区三区在线观看| 欧美一区二区三区在线观看视频| 久久在线观看免费| 亚洲激情第一区| 麻豆久久久久久| 99久久精品免费精品国产| 9191久久久久久久久久久| 国产视频一区二区在线观看| 一区二区三区在线视频播放| 久久精品免费观看| 色婷婷亚洲综合| 精品国产自在久精品国产| 亚洲欧美激情小说另类| 九九在线精品视频| 色先锋资源久久综合| 欧美大尺度电影在线| 亚洲欧美国产毛片在线| 黄色成人免费在线| 欧美日韩精品免费| 中文天堂在线一区| 免费av网站大全久久| 色婷婷av一区二区三区软件 | 国产成人在线电影| 日本丶国产丶欧美色综合| 日韩美女视频在线| 亚洲一区视频在线观看视频| 国产精品1区2区| 欧美日韩激情一区二区三区| 国产欧美日韩综合精品一区二区| 亚洲成av人片观看| 99久免费精品视频在线观看| 日韩美女一区二区三区四区| 亚洲国产成人91porn| 99天天综合性| 国产亚洲一区二区三区在线观看 | ww久久中文字幕| 日韩经典一区二区| 成人一区二区在线观看| 国产成人在线看| 精品乱人伦一区二区三区| 亚洲激情自拍偷拍| 99re在线视频这里只有精品| 精品国产1区二区| 秋霞影院一区二区| 欧美卡1卡2卡| 亚洲国产精品一区二区www在线| 成人黄色777网| 亚洲国产电影在线观看| 国产美女一区二区三区| 欧美一区二区三区视频在线观看| 色婷婷综合久色| 亚洲一区视频在线| 在线免费av一区| 中文字幕第一页久久| 久久国产麻豆精品| 欧美一区二区成人| 天天爽夜夜爽夜夜爽精品视频| 99久久亚洲一区二区三区青草| 国产三级精品视频| 国产一区二区女| 精品国产三级a在线观看| 久久精品国产99久久6| 欧美一级欧美三级在线观看| 亚洲成人av福利| 欧美亚洲综合另类| 一区二区三区欧美日韩| 在线观看欧美黄色| 亚洲一区二区三区自拍| 在线精品国精品国产尤物884a | 成人成人成人在线视频| 欧美激情中文字幕一区二区| 成人免费高清视频| 亚洲精品视频免费看| 91视频精品在这里| 一区二区三区小说| 精品视频在线免费观看| 首页综合国产亚洲丝袜| 欧美一级一级性生活免费录像| 免费看欧美女人艹b| 精品少妇一区二区三区 | 亚洲高清久久久| caoporn国产精品| 国产午夜精品一区二区三区四区| 激情文学综合网| 国产清纯在线一区二区www| 国产成人精品免费网站| 国产精品国产a级| 91国产丝袜在线播放| 婷婷六月综合网| 精品国产91久久久久久久妲己| 国产一区二区三区精品视频| 国产精品私房写真福利视频| 色综合亚洲欧洲| 日韩高清在线一区| 国产人伦精品一区二区| 色综合天天综合| 青青青爽久久午夜综合久久午夜 | 国产精品888| 亚洲欧美另类图片小说| 欧美剧情片在线观看| 蜜桃免费网站一区二区三区| 日本一区二区三区视频视频| 在线观看av一区| 狠狠色狠狠色综合日日91app| 国产女人aaa级久久久级| 日本福利一区二区| 国内精品视频666| 亚洲欧美一区二区三区久本道91| 91精品国产综合久久小美女| 国产精品66部| 亚洲国产综合视频在线观看| 精品日本一线二线三线不卡| 91在线丨porny丨国产| 日韩精品免费视频人成| 国产精品久久久久久久午夜片| 欧美日韩中文字幕一区二区| 国产高清成人在线| 婷婷六月综合亚洲| 国产精品国产三级国产普通话蜜臀| 欧美三级日韩三级国产三级| 日韩av午夜在线观看| 国产日韩av一区| 91精品国产色综合久久ai换脸 | 综合色天天鬼久久鬼色| 制服丝袜成人动漫| 不卡电影一区二区三区| 日本伊人精品一区二区三区观看方式| 国产色爱av资源综合区| 欧美久久久久中文字幕| 成人av电影在线| 九色|91porny| 午夜av一区二区| 亚洲欧洲国产日韩| 久久一夜天堂av一区二区三区| 欧美三级午夜理伦三级中视频| 国产高清精品久久久久| 日产精品久久久久久久性色| 自拍偷拍国产亚洲| 久久综合久久99| 91精品国产综合久久久久| 色哟哟欧美精品| kk眼镜猥琐国模调教系列一区二区| 蜜臀国产一区二区三区在线播放| 亚洲精品免费播放| 欧美激情中文字幕| 久久综合久久综合久久| 91精品国产丝袜白色高跟鞋| 在线免费精品视频| 91麻豆成人久久精品二区三区| 国产一区美女在线| 另类专区欧美蜜桃臀第一页| 亚洲一二三区不卡| 亚洲另类在线一区| 国产精品福利在线播放| 久久久精品影视| 欧美电视剧免费观看| 777午夜精品免费视频| 欧美综合亚洲图片综合区| 99re这里只有精品视频首页| 成人午夜视频在线观看| 国产精品一级片在线观看| 麻豆视频一区二区| 久久精品国产亚洲一区二区三区| 婷婷成人激情在线网| 亚洲成人av资源| 亚洲123区在线观看| 亚洲高清免费视频| 亚洲国产精品一区二区久久恐怖片| 日韩美女啊v在线免费观看| 国产精品国产自产拍高清av王其| 国产亚洲综合性久久久影院| 国产亚洲美州欧州综合国| 国产日韩欧美亚洲| 中文字幕欧美日本乱码一线二线| 久久嫩草精品久久久精品一| 国产日韩欧美精品电影三级在线| 久久久蜜桃精品| 国产偷国产偷精品高清尤物| 久久久久久久电影| 国产日韩一级二级三级| 国产精品网站在线| 国产精品国产成人国产三级| 中文字幕中文字幕在线一区| 亚洲三级在线免费| 亚洲精品午夜久久久| 亚洲一区欧美一区| 亚洲超碰97人人做人人爱| 日韩电影在线看| 精品亚洲欧美一区| 国产成人av资源| 91丨九色丨黑人外教| 色菇凉天天综合网| 欧美日韩夫妻久久|