共用方式為


OLE 處理程式

OLE 處理程式是 DLL,其中包含數個用於連結和內嵌的互動元件。 為了避免容器與其伺服器之間的常數進程間通訊費用,處理程式會載入到容器的進程空間中,以代表伺服器作為代理程序的行為。 OLE 處理程式會管理不需要伺服器應用程式注意的容器要求,例如繪製的要求。 當容器要求對象處理程式無法提供的內容時,處理程式會使用 COM 跨進程通訊機制與伺服器應用程式通訊。

OLE 處理程式元件包括遠端片段來管理處理程式與其伺服器之間的通訊、儲存對象數據的快取(以及該數據的格式和顯示方式的相關信息),以及協調 DLL 其他元件活動的控制物件。 此外,如果對像是連結,DLL 也會包含連結元件或 連結物件,以追蹤連結來源的名稱和位置。

OLE 提供預設處理程式,大部分的應用程式都用於連結和內嵌。 如果預設值不符合伺服器的需求,您可以完全取代預設處理程式,或使用它提供的功能部分。 在後者的情況下,應用程式處理程式會實作為由新控件對象和默認處理程式所組成的匯總物件。 組合應用程式/預設處理程式也稱為 同進程處理程式。 遠端 處理程式 用於系統登錄中未指派 CLSID 或沒有指定處理程式的物件。 這些物件類型之處理程式所需的所有專案,就是它們跨進程界限傳遞資訊。 若要建立默認處理程式的新實例,請呼叫 OleCreateDefaultHandler 在某些特殊情況下,請呼叫 OleCreateEmbeddingHelper

當您為某個類別建立處理程序的實例時,就無法將它用於另一個類別。 當用於複合檔時,當遠端存取特定類別的物件時,OLE 處理程式會實作容器端數據結構。

OLE 定義複合檔案本機伺服器客戶端的預設處理程式。 默認處理程序實作一些一般伺服器未使用的介面。 當 OLE 後續允許複合檔的同進程伺服器時,他們必須建立內嵌協助程式,以實作這些額外的介面,讓客戶端能夠順暢地與他們搭配使用。

定義及實作客戶端處理程式的架構設計工具應該在其設計中考慮此問題,而且應該基於相同原因提供對等的同進程協助程式。 即使設計工具目前未在伺服器未公開的處理程式上實作介面,他們現在仍可能想要定義協助程式,以便在未來新增它們。 或者,您也可以在伺服器物件本身上實作額外的介面。

輕量型客戶端處理程式