使用javascript中的OLE Automation
2. 什麼是綁定
在你適用一個對象模型的屬性、方法和事件之前,你必需首先創建一個計劃性的引用給包含了你想適用的屬性、方法或者事件的類。你可以通過聲明一個局部對象變量以保留一個引用給這個對象來實現這個目的。然後,你要為局部變量指定一個對象的應用。
VB和VBScript使用CreateObject()函數,來實現在Jscript使用這個ActiveXObject()構造函數的時候為一個Automation對象允許並返回一個引用。
實際上,綁定是指Visual Basic代碼訪問在其它的應用程序對象的方法。當你從一個應用程序使用Automation來處理另外一個應用程序中對象的時候,你編寫Visaul Basic代碼的應用程序就是一個Automation控制器。這個你正在處理對象的應用程序是Automation服務器。當一個Automation控制器創建一個指向由Automation服務器提供對象的變量,Visual Basic 必需驗證對象是否存在以及使用對象的任何屬性和方法是正確指定的。這個驗證過程就所謂的”綁定”。有兩種Visual Basic程序開發人員使用的綁定類型要注意: late binding(遲綁定) 和 early binding(早綁定)。
遲綁定
遲綁定是發生在運行時間並且比早綁定要慢。在遲綁定Automation代碼中,Visual Basic在每次執行包括那個對象的行代碼時必需查詢對象以及它的方法和屬性。為了驗證這個對象以及它的方法和屬性是否正確指定,Visual Basic 必需利用操作系統和支持對象的應用來檢查。下面看看一段Visual Basic 代碼:
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
這個wdApp變量被定義為一般類型的對象。當這個變量被聲明了,Visual Basic 並不知道它是屬於什麼類型的對象,所以你必須要為這個對象留出一定量的內存。既然特定對象引用是被指定到普通變量的,所以應用程序沒有辦法知道對象的界面是由什麼組成的。只有在運行時間,應用程序才綁定到用戶界面上。因此,不管你是什麼時候引用新的對象,Visual Baisc必須檢查系統注冊以獲得對象的信息。
早綁定
早綁定是一個解決慢Automation性能的好的解決方法。早綁定發生在編譯的時候而不是在運行的時候,所以如果你的代碼是在編譯階段保存的,在代碼運行之前已經綁定結束了。當使用早綁定,Visual Basic 不需要連續驗證對象信息,而是在應用程序執行的過程中使用對象。
另外,不是所有的Automation服務器都支持早綁定。這個Automation服務器必須支持一個類型庫,這個類型庫包含了關於服務器對象、方法和屬性的信息。為了利用早綁定,你必須為Automation服務器的類型庫設置一個引用。Visual Basic裝載類型庫到內存中,這使得它可以識別這些對象並且在代碼編譯的時候綁定它們。以下的代碼段顯示了怎樣為對象創建一個早綁定界面:
Dim wdApp As Word.Application
Set wdApp = CreateObject("Word.Application")