文章編號: 86008 - 上次校閱: 1999年10月27日 - 版次: 1.0 OLE 的概念和需求概觀
在此頁中結論OLE 是一種技術,讓應用程式可以建立包含來自許多不同來源的資訊的複合文件。比方說 OLE 啟用的文書處理器中的文件可以接受內嵌試算表物件。不像傳統剪下中和貼上的方法接收的應用程式貼上資訊的格式的變更位置,內嵌文件會保留其原始的屬性。如果使用者決定編輯內嵌的資料,Windows 啟動原始應用程式,並載入內嵌文件。 本文提供 OLE 程式庫的概觀,討論 (VTBL 虛擬方法資料表) 的資料結構,這是必要的項目,每個 OLE 應用程式;,討論 OLE 應用程式中使用 Windows 剪貼簿。 其他相關資訊OLECLI.DLL--,OLE 用戶端程式庫OLECLI.DLL OLE 用戶端程式庫在 Microsoft Windows 的環境中提供服務給簡化 OLE 用戶端應用程式。雙向通訊會採用放置用戶端應用程式與 OLE 用戶端程式庫之間。用戶端應用程式會呼叫函式中用戶端程式庫來執行這類的物件建立呈現、 載入,及儲存 OLE 工作。用戶端程式庫會藉由呼叫應用程式定義的回呼函式將狀態資訊傳送到應用程式。文件庫會傳遞至用戶端的回呼函式的狀態資料包含該物件已變更、 重新命名、 儲存,或關閉 OLE 伺服器應用程式的通知。OLESVR.DLL--將 OLE 伺服器程式庫OLESVR.DLL OLE 伺服器程式庫提供 OLE 伺服器應用程式的服務。雙向通訊會採用放置伺服器應用程式和 OLE 伺服器程式庫之間。伺服器應用程式會呼叫函式中伺服器程式庫為可用的註冊本身,或撤銷其可用性。它也會呼叫伺服器程式庫函式來指示它儲存或重新命名文件時。伺服器程式庫要傳達資訊給伺服器應用程式,透過一組 27 應用程式定義的回呼函式。每個伺服器應用程式的回呼函數通常稱為方法,稱為要求伺服器執行特定動作,或通知它發生特定事件。物件處理常式使用者通常有關只能與兩種類型的 OLE 應用程式: 用戶端應用程式和伺服器應用程式。不過,應用程式開發人員也必須注意的第三種 OLE 模組呼叫物件處理常式。一個物件處理常式是可以 conceptualized 為有限函式伺服器應用程式一個動態連結程式庫 (DLL)。物件處理常式包含支援伺服器應用程式的物件類別所需的函式。例如當用戶端應用程式叫用物件的動詞命令,這個呼叫可以處理由物件處理常式來載入至記憶體、 處理該呼叫,並卸載從沒有任何協助從主要伺服器應用程式的記憶體。 物件處理常式提供有效率的方式,來管理物件,因為處理常式通常小並可以載入和卸載比 (通常是大型) 的完整函式伺服器應用程式更有效率。物件處理常式是使用 OLE 伺服器文件庫,就像完全作用的伺服器應用程式實作的。使用 VTBLs如上所述,從 OLE 用戶端程式庫至用戶端應用程式及 OLE 伺服器程式庫給伺服器應用程式的通訊將會透過應用程式定義的回呼函式的發生。在用戶端或伺服器應用程式初始化,期間,它會呼叫適當的媒體櫃與 VTBL 資料結構的指標。文件庫使用中 [VTBL 呼叫應用程式的回呼函式的指標。比方說其中一個伺服器應用程式提供 OLE 伺服器文件庫的 VTBLs 稱為一個 OLESERVERVTBL。伺服器應用程式會填滿 OLESERVERVTBL 結構與實作建立、 CreateFromTemplate、 編輯、 結束、 開啟及發行方法的六個回呼函式的指標。一旦伺服器應用程式會初始化的 VTBL 傳到伺服器程式庫,文件庫可以呼叫任何六種方法只是由解除參照 [VTBL 中的指標。請注意使用 VTBL 允許 OLE 程式庫呼叫的應用程式定義的函式實作方法與無關的函式的名稱。 以程式設計熟悉 C + + 語言 VTBL 概念似乎類似於 C + + 虛擬方法的概念。在實際上 VTBLs 和虛擬方法密切相關。VTBL 可讓 OLE 程式庫來指定用戶端或伺服器應用程式必須實作,同時允許的每一種方法來定義以不同的方式為每個物件類別實作的方法。 inter-library 通訊在初始實作提供 3.1 版的 「 Microsoft Windows 軟體開發套件 (SDK),[OLE 程式庫的程式庫與使用動態資料交換 (DDE) 訊息通訊協定彼此通訊。用戶端和伺服器程式庫傳送其他每一組標準的 OLE 命令使用 WM_DDE_EXECUTE 訊息。這個實作 OLE 程式庫並不會使用 [動態資料交換管理程式庫 (DDEML) 開發 Windows 3.1 版,因為 [DDEML 和 OLE 程式庫以平行方式而開發。未來版本的 OLE 程式庫可能會使用 [DDEML 或另一個處理序間通訊機制。OLE 程式庫所使用的 inter-library 通訊協定隱藏的程式庫本身,而且應該不會影響 OLE 用戶端或伺服器應用程式的設計。 殼層文件庫許多 OLE 應用程式也會使用第三個庫 SHELL.DLL。殼層程式庫提供允許應用程式讀取及修改 Windows 系統註冊資料庫的 API 函式。註冊資料庫包含有關在系統和物件類別及動詞命令上安裝的 OLE 伺服器的資訊每一個支援。殼層文件庫也為-拖操作的檔案使用 「 Windows 檔案管理員 」 提供支援。如果 OLE 用戶端實作和拖支援,檔案可能被拖曳從檔案管理員,且在用戶端應用程式若要將檔案嵌入文件中的文件卸除。將 OLE 物件放在剪貼簿上用來顯示物件的簡報格式指定物件的外觀。當伺服器應用程式在剪貼簿上放置物件時,它會提供一或多個圖形物件的呈現。這些表示方式包括中繼檔 (CF_METAFILEPICT) 格式、 裝置相關點陣圖 (CF_BITMAP) 的格式或與裝置無關點陣圖 (CF_DIB) 格式。當使用者將物件貼到在用戶端應用程式中的容器文件時,OLE 程式庫會使用其中一個這些簡報格式若要顯示物件。因為點陣圖或中繼檔通常變更外觀,它會在重新調整大小時,物件的外觀可能會有所不同簡報格式來顯示物件。內嵌的物件儲存在剪貼簿 OwnerLink 格式、 原生格式和其中一個 (CF_METAFILEPICT、 CF_BITMAP 或 CF_DIB) 上面所述的三個簡報格式中。每個簡報和預先定義的 Windows 格式是由 WINDOWS.H 標頭檔隨附 SDK 中的具名常數所代表。不過,[OwnerLink 和每個 OLE 應用程式所用的原生格式未定義在 WINDOWS.H。每個 OLE 應用程式必須呼叫 RegisterClipboardFormat 函式來使用 Windows 登錄 OwnerLink 和原生格式。
機器翻譯重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。 按一下這裡查看此文章的英文版本:86008?
(http://support.microsoft.com/kb/86008/en-us/
)
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。 | 其他資源 其他支援網站社群文章翻譯 |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email



回此頁最上方