久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

組件對象模型

來自站長百科
Jiaomh討論 | 貢獻(xiàn)2010年12月10日 (五) 15:32的版本 (新頁面: '''組件對象模型''',也稱組件對象模型,英文為Component Object Model,縮寫COM,是微軟對于網(wǎng)頁服務(wù)器客戶端、增益集與Office系列[[軟...)
(差異) ←上一版本 | 最后版本 (差異) | 下一版本→ (差異)
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

組件對象模型,也稱組件對象模型,英文為Component Object Model,縮寫COM,是微軟對于網(wǎng)頁服務(wù)器客戶端、增益集與Office系列軟件 之間交互的一項軟件組件技術(shù)。

自動化是指應(yīng)用程序的COM化來讓外部可以調(diào)用它們的功能,以及外部調(diào)用這些功能的方法。自動化的典型應(yīng)用是微軟的很多軟件中都支持的。由于自動化普遍使用OLE的標(biāo)準(zhǔn)接口來實現(xiàn),所以這個技術(shù)有時也稱OLE自動化。

歷史[ ]

Windows操作系統(tǒng)提供了三種應(yīng)用程序間的通信機制:剪貼板(clipboard)、DDE與OLE。OLE原名是對象連接與嵌入(Object Linking and Embedding),OLE可說是DDE的改良版,OLE 1.0版提供復(fù)合文檔(compound document)處理。但過于復(fù)雜,Brockschmidt, Kraig“Inside OLE”一書中提到,必須經(jīng)過六個月的心靈混沌期,才能了解OLE是什么。因此OLE 2.0后,微軟提出COM架構(gòu)。所有OLE組件皆是繼承COM而來,這些技術(shù)包含OLE Document和OLE Controls、Drag and Drop等。

概要[ ]

COM是微軟自1993年便提出的組件式軟件平臺,用來做進(jìn)程間通信(Inter-process communication, IPC)以及當(dāng)作組件式軟件開發(fā)的平臺。COM提供跟編程語言無關(guān)的方法實現(xiàn)一個軟件對象,因此可以在其他環(huán)境中運行。COM要求軟件組件必須遵照一個共同的接口,該接口與實現(xiàn)無關(guān),因此可以隱藏實現(xiàn)屬性,并且被其他對象在不知道其內(nèi)部實現(xiàn)的情形下正確的使用。

COM并被實現(xiàn)于多個平臺之上,并不限于Windows操作系統(tǒng)之上。但還是只有Windows最常使用COM,且某些功能已被目前的.NET平臺取代。

COM組件類型[ ]

COM 是基于組件對象方式概念來設(shè)計的,在基礎(chǔ)中,至少要讓每個組件都可以支持二個功能:

  • 查詢組件中有哪些接口
  • 讓組件做自我生命管理,此概念的實踐即為參考計數(shù) (Reference Counting)

這二個功能即為 COM 的根:IUnknown 接口所提供的IUnknown::QueryInterface(),IUnknown::AddRef() 及 IUnknown::Release() 三個方法的由來。所有的 COM 組件都要實現(xiàn)IUnknown,表示每個COM組件都有相同的能力。

只由COM派生實現(xiàn)出來的組件,稱為純 COM 組件。

但在 Windows 持續(xù)發(fā)展時,Visual Basic 4.0 開始支持 OCX,也就是 OLE Custom Control,這讓微軟開始思考要如何讓 COM 組件可以跨語言支持,在這樣的要求下,必須要提供一個一致的接口,以及提供一組可以調(diào)用接口內(nèi)方法的能力,由于純 COM 組件只能夠支持 C/C++ 的直接訪問,為了要達(dá)到跨語言的能力,在 COM 中必須要支持在外部調(diào)用內(nèi)部方法的機能,這個機能造就了 Invoke() 方法,另外為了跨語言的支持,COM 應(yīng)該要提供簡單的組件訪問識別方式,這也就是會有 GetIDsOfNames() 的原因,將這些方法組合起來,定義出的必要接口,稱為 IDispatch 接口,所有實現(xiàn)此接口的,都可以支持跨語言的支持。

微軟將實現(xiàn)此接口的組件都稱為自動化 (Automation) 組件。

相關(guān)技術(shù)[ ]

COM曾是Windows平臺下主要的軟件開發(fā)平臺,并且影響至其他許多相關(guān)軟件技術(shù)。

COM+[ ]

主條目:微軟組件服務(wù)

COM+ 是微軟 Windows 2000 中,Microsoft Transaction Server 的強化實現(xiàn)版本,除了提供基本的組件交易支持外,還提供了松散藕合式事件 (loosely-coupled events) 與對象共用池 (object pooling) 等應(yīng)用程序服務(wù)器的能力,成為 Windows 2000 開始在微軟平臺上主要的應(yīng)用程序服務(wù)器平臺,目前 .NET Framework 也提供了 System.EnterpriseServices 命名空間以支持 COM+。

設(shè)備上下文OM[ ]

主條目:Distributed COM

設(shè)備上下文OM 是可以在網(wǎng)絡(luò)上通信的COM組件,依據(jù)RPC(Remote Procedure Call)的規(guī)范來發(fā)展的,它將COM組件的能力擴及到網(wǎng)絡(luò)上,但是因為網(wǎng)絡(luò)安全以及防火墻的問題,讓設(shè)備上下文OM無法廣泛的流行。

.NET[ ]

主條目:.NET Framework

.NET Framework 是新一代的Microsoft Windows應(yīng)用程序開發(fā)平臺。

禁用com組件可能導(dǎo)致的問題[ ]

  • 在線播放功能的組件被禁用,會導(dǎo)致在線電影等在線視頻無法正常觀看;
  • 在線殺毒功能的組件被禁用,會導(dǎo)致在線殺毒不能使用;
  • 在線游戲功能的組件被禁用,會導(dǎo)致在線游戲無法玩,
  • com組件禁用后的具體情況,需要根據(jù)具體的com組件功能作判斷。

相關(guān)條目[ ]

參考來源[ ]