版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國]-OLE

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

Object Linking and Embedding,對(duì)象連接與嵌入,簡(jiǎn)稱OLE技術(shù)。OLE 不僅是桌面應(yīng)用程序集成,而且還定義和實(shí)現(xiàn)了一種允許應(yīng)用程序作為軟件“對(duì)象”(數(shù)據(jù)集合和操作數(shù)據(jù)的函數(shù))彼此進(jìn)行“連接”的機(jī)制,這種連接機(jī)制和協(xié)議稱為組件對(duì)象模型(COM)。OLE可以用來創(chuàng)建復(fù)合文檔,復(fù)合文檔包含了創(chuàng)建于不同源應(yīng)用程序,有著不同類型的數(shù)據(jù),因此它可以把文字、聲音、圖像、表格、應(yīng)用程序等組合在一起。

微軟APIOLE(Object Linking and Embedding,對(duì)象連接與嵌入),是一種面向?qū)ο蟮募夹g(shù),利用這種技術(shù)可開發(fā)可重復(fù)使用的軟件組件(COM)。OLE從多媒體借鑒而來,是Windows的一組服務(wù)功能,提供了一種以源于不同應(yīng)用軟件的信息建立復(fù)合文檔的強(qiáng)有力方法。在對(duì)象連接和嵌入系統(tǒng)中,對(duì)象可以是幾乎所有的數(shù)據(jù)類型,例如文字、點(diǎn)陣圖像和矢量圖形,甚至于聲音、注解和錄像剪輯等均可。對(duì)象被賦予了智能屬性,即參與連接和嵌人的對(duì)象本身帶有計(jì)算機(jī)指令。1

OLE 是在客戶應(yīng)用程序間傳輸和共享信息的一組綜合標(biāo)準(zhǔn)。允許創(chuàng)建帶有指向應(yīng)用程序的鏈接的混合文檔以使用戶修改時(shí)不必在應(yīng)用程序間切換的協(xié)議。OLE基于組件對(duì)象模型(COM) 并允許開發(fā)可在多個(gè)應(yīng)用程序間互操作的可重用即插即用對(duì)象。該協(xié)議已廣泛用于商業(yè)上,在商業(yè)中電子表格、字處理程序、財(cái)務(wù)軟件包和其他應(yīng)用程序可以通過客戶服務(wù)器體系共享和鏈接單獨(dú)的信息。

關(guān)于 OLE ,業(yè)界早就在抱怨它的緩慢和龐大,對(duì)市場(chǎng)敏感的 Microsoft 需要對(duì)那些 API 函數(shù)提出一種新的術(shù)語以適應(yīng)未來的操作系統(tǒng)和Internet技術(shù)。有趣的是 Microsoft 已經(jīng)宣布 OLE 不再代表對(duì)象鏈接與嵌入,而只是一個(gè)過去的名詞而已。

OLE的版本迄今為止,有兩種版本的OLE:OLE1.0和OLE2.0。當(dāng)用戶在OLE1.0 服務(wù)器中激活OLE對(duì)象,服務(wù)器程序在前臺(tái)打開自己的窗體,并獲得焦點(diǎn)。OLE窗體失去焦點(diǎn),存在于單獨(dú)的窗體之中。

OLE2.0服務(wù)器采用“本地”(in place)激活方式。本地激活意味著服務(wù)器菜單與應(yīng)用程序菜單要進(jìn)行融合,服務(wù)器的狀態(tài)條更換應(yīng)用程序狀態(tài)條,服務(wù)器的工具條更換應(yīng)用程序工具條。OLE對(duì)象在應(yīng)用程序窗體中進(jìn)行編輯,但所有過程均由服務(wù)器處理。

創(chuàng)建OLE對(duì)象的服務(wù)器決定了OLE的激活方式。如果一個(gè)OLE1.0的對(duì)象在OLE2.0 編譯的應(yīng)用程序中打開,它將采用OLE1.0的方式。

功能介紹OLE類、文件、項(xiàng)目OLE類決定創(chuàng)建OLE對(duì)象的服務(wù)器。有些應(yīng)用程序需要?jiǎng)?chuàng)建多種類型的OLE對(duì)象,例如應(yīng)用程序同時(shí)鏈接或嵌入公式、圖片等。OLE類也決定OLE對(duì)象所包含的數(shù)據(jù)類型,鏈接或嵌入對(duì)象均要定義OLE類。

OLE文件是包含OLE對(duì)象數(shù)據(jù)的源文件。鏈接對(duì)象必須使用對(duì)象文件,因?yàn)殒溄訉?duì)象在文件中保存。如果應(yīng)用程序從已存在的源文件中創(chuàng)建嵌入對(duì)象,也要使用OLE文件。例如,如果鏈接到QuattiPro筆記本的

OLE對(duì)象TUTOR.WBI存儲(chǔ)在D:\DFFICE\QPW目錄下,則OLE文件就是D:\DFFICE\QPW\TUTOR.WBI。值得注意的是OLE文件只能為鏈接對(duì)象所定義,而對(duì)于嵌入對(duì)象,只需定義OLE類。

OLE項(xiàng)目是代表鏈接或嵌入數(shù)據(jù)的OLE文件中的一部分。當(dāng)應(yīng)用程序希望OLE對(duì)象包含比OLE文件小的數(shù)據(jù)塊時(shí),則必須使用OLE項(xiàng)目。

OLE應(yīng)用程序的菜單OLE應(yīng)用程序的菜單與其它應(yīng)用程序的主菜單大體一致,如果應(yīng)用程序中有支持本地激活的OLE 2.0對(duì)象,則要進(jìn)行菜單融合。查閱OLE 服務(wù)器的資料可知道服務(wù)器是否支持本地激活。

OLE應(yīng)用程序菜單的GroupIndex屬性決定融合菜單的位置,即融合菜單是更換主菜單,還是插入至應(yīng)用程序的主菜單中。

OLE工具條和狀態(tài)條當(dāng)OLE對(duì)象被本地激活時(shí),OLE服務(wù)器將試圖用自己的工具條和狀態(tài)條替換OLE應(yīng)用程序的。如果應(yīng)用程序想要本地激活, 就應(yīng)該在應(yīng)用程序中編寫相應(yīng)的代碼讓服務(wù)器使用工具條和狀態(tài)條。要做到這點(diǎn),必須:

● 設(shè)置工具條和狀態(tài)條

● 在應(yīng)用程序中加入狀態(tài)條

通過修改面板部件的屬性創(chuàng)建工具條和狀態(tài)條。當(dāng)OLE對(duì)象被本地激活時(shí),面板或其他對(duì)齊控制將與OLE服務(wù)器程序進(jìn)行協(xié)調(diào)。 這意味OLE服務(wù)器可以替換OLE應(yīng)用程序窗體中任何對(duì)齊控制,但鎖定的控制不能被替換。例如,如果面板的align屬性是alTop,alleft,alBottom,alIngh時(shí),控制未鎖定,OLE服務(wù)器可以替換。要使應(yīng)用程序的工具條、狀態(tài)條不被替換,可將locked屬性設(shè)置成真值。

OLE自動(dòng)化OLE自動(dòng)化是Windows應(yīng)用程序操縱另一個(gè)程序的一種機(jī)制。將被自動(dòng)化的程序稱作自動(dòng)化對(duì)象或自動(dòng)化服務(wù)器, 例如 Word , 操作或自動(dòng)化其他程序的應(yīng)用程序稱為自動(dòng)化控制器或自動(dòng)化客戶器2。利用 OLE 自動(dòng)化的思想, 可以實(shí)現(xiàn)兩個(gè) Web 應(yīng)用系統(tǒng)之間的相互作用。OLE 2.0提供了一種方法來集成應(yīng)用程序,這就是應(yīng)用程序之間的命令操作。

利用OLE 2.0,程序員可以定義一組命令,使它們進(jìn)入到其它程序中。這些命令可帶參數(shù)??雌饋砗芟髴?yīng)用程序在調(diào)用函數(shù)或過程一樣。采用上述辦法, 可以在人不參與的情況下,就能使得兩個(gè)應(yīng)用程序的相互作用。被自動(dòng)化的程序稱作自動(dòng)化對(duì)象或自動(dòng)化服務(wù)器, 操作或自動(dòng)化其他程序的應(yīng)用程序稱為自動(dòng)化控制器或自動(dòng)化客戶器。

本詞條內(nèi)容貢獻(xiàn)者為:

孫銳 - 教授 - 合肥工業(yè)大學(xué)