|
使用JavaScript中的OLE Automation
2. 什么是綁定
在你適用一個(gè)對(duì)象模型的屬性、方法和事件之前,你必需首先創(chuàng)建一個(gè)計(jì)劃性的引用給包含了你想適用的屬性、方法或者事件的類(lèi)。你可以通過(guò)聲明一個(gè)局部對(duì)象變量以保留一個(gè)引用給這個(gè)對(duì)象來(lái)實(shí)現(xiàn)這個(gè)目的。然后,你要為局部變量指定一個(gè)對(duì)象的應(yīng)用。
VB和VBScript使用CreateObject()函數(shù),來(lái)實(shí)現(xiàn)在Jscript使用這個(gè)ActiveXObject()構(gòu)造函數(shù)的時(shí)候?yàn)橐粋(gè)Automation對(duì)象允許并返回一個(gè)引用。
實(shí)際上,綁定是指Visual Basic代碼訪(fǎng)問(wèn)在其它的應(yīng)用程序?qū)ο蟮姆椒。?dāng)你從一個(gè)應(yīng)用程序使用Automation來(lái)處理另外一個(gè)應(yīng)用程序中對(duì)象的時(shí)候,你編寫(xiě)Visaul Basic代碼的應(yīng)用程序就是一個(gè)Automation控制器。這個(gè)你正在處理對(duì)象的應(yīng)用程序是Automation服務(wù)器。當(dāng)一個(gè)Automation控制器創(chuàng)建一個(gè)指向由Automation服務(wù)器提供對(duì)象的變量,Visual Basic 必需驗(yàn)證對(duì)象是否存在以及使用對(duì)象的任何屬性和方法是正確指定的。這個(gè)驗(yàn)證過(guò)程就所謂的”綁定”。有兩種Visual Basic程序開(kāi)發(fā)人員使用的綁定類(lèi)型要注意: late binding(遲綁定) 和 early binding(早綁定)。
遲綁定
遲綁定是發(fā)生在運(yùn)行時(shí)間并且比早綁定要慢。在遲綁定Automation代碼中,Visual Basic在每次執(zhí)行包括那個(gè)對(duì)象的行代碼時(shí)必需查詢(xún)對(duì)象以及它的方法和屬性。為了驗(yàn)證這個(gè)對(duì)象以及它的方法和屬性是否正確指定,Visual Basic 必需利用操作系統(tǒng)和支持對(duì)象的應(yīng)用來(lái)檢查。下面看看一段Visual Basic 代碼:
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
這個(gè)wdApp變量被定義為一般類(lèi)型的對(duì)象。當(dāng)這個(gè)變量被聲明了,Visual Basic 并不知道它是屬于什么類(lèi)型的對(duì)象,所以你必須要為這個(gè)對(duì)象留出一定量的內(nèi)存。既然特定對(duì)象引用是被指定到普通變量的,所以應(yīng)用程序沒(méi)有辦法知道對(duì)象的界面是由什么組成的。只有在運(yùn)行時(shí)間,應(yīng)用程序才綁定到用戶(hù)界面上。因此,不管你是什么時(shí)候引用新的對(duì)象,Visual Baisc必須檢查系統(tǒng)注冊(cè)以獲得對(duì)象的信息。
早綁定
早綁定是一個(gè)解決慢Automation性能的好的解決方法。早綁定發(fā)生在編譯的時(shí)候而不是在運(yùn)行的時(shí)候,所以如果你的代碼是在編譯階段保存的,在代碼運(yùn)行之前已經(jīng)綁定結(jié)束了。當(dāng)使用早綁定,Visual Basic 不需要連續(xù)驗(yàn)證對(duì)象信息,而是在應(yīng)用程序執(zhí)行的過(guò)程中使用對(duì)象。
另外,不是所有的Automation服務(wù)器都支持早綁定。這個(gè)Automation服務(wù)器必須支持一個(gè)類(lèi)型庫(kù),這個(gè)類(lèi)型庫(kù)包含了關(guān)于服務(wù)器對(duì)象、方法和屬性的信息。為了利用早綁定,你必須為Automation服務(wù)器的類(lèi)型庫(kù)設(shè)置一個(gè)引用。Visual Basic裝載類(lèi)型庫(kù)到內(nèi)存中,這使得它可以識(shí)別這些對(duì)象并且在代碼編譯的時(shí)候綁定它們。以下的代碼段顯示了怎樣為對(duì)象創(chuàng)建一個(gè)早綁定界面:
Dim wdApp As Word.Application
Set wdApp = CreateObject("Word.Application")
|
溫馨提示:喜歡本站的話(huà),請(qǐng)收藏一下本站!