COM 物件 和 介面 (轉)
s and Interfaces
:namespace prefix = o ns = "urn:schemas--com::office" />
一個實現一個介面,他的意思就是該物件使用程式碼實現了介面的每個方法
並且為這些通向com庫提供了com的二進位制指標。然後com使這些函式執行在
請求了一個指向該介面的任何客戶端。
FEB.2052/com/htm/com_2r5f.htm">Interfaces and Interface Implementations
COM 在介面的定義和實現上有根本的差別。一個介面實際上是由一組定義了用法的相
聯絡的函式原型組成,只是他不能夠被實現。這些函式原型就相當於C++中含有純虛擬函式的基類。一個介面定義制定了介面的成員函式、方法、返回型別、他們的引數的數量和型別,這些函式要幹什麼。但是這裡並沒有與介面實現相關的東西。一個介面的實現就是員在一個藉口定義上提供的相關動作的程式碼。
一個介面的實現就是程式設計師在一個藉口定義上提供的執行相關動作的程式碼。客戶呼叫完全是決定於介面的定義。
介面實現的一個例項,實際上就是一個指向一組方法的指標,即是指指向一個介面的函式表,該函式表引用了該介面所有方法的實現。
每個介面,是一個固定的一組方法的集合,在執行時透過globally unique interface ntifier (IID) 來定位。這裡,IID是com支援的globally unique identifier (GUID)的特殊的例項。這樣做就不會產生單一上相同名字、介面的多個版本的COM之間的衝突了。
- 一個COM介面與C++類是不一樣的;
- 一個COM介面不是一個物件——他只是簡單的關聯一組函式,是客戶和程式之間通訊的二進位制標準。只要他提供了指向藉口方法的指標,這個物件就可以用任何語言來實現他。;
- COM介面十強型別的——每個介面有他自己的藉口識別符號;
· COM介面的不變性——你不能夠用老版本的介面識別符號定義新的版本,介面的IID定義的介面合同是明確的、唯一的。
繼承在COM 裡並不意味著程式碼的重用。因為介面沒有實現關聯,藉口繼承並意味著程式碼繼承。他的意思僅僅是,一個介面同一個合同關聯,就像C++的純虛擬基類的建立和修改樣,可以新增方法或者更進一步的加強方法的使用。在COM裡沒有選擇性繼承。如果一個介面由另一個介面繼承的話,他就包含了另一個介面定義的所有的方法。
Using and Implementing IUnknown
COM 為實現和使用物件和物件的內部通訊提供了一個豐富的標準集合。對IUnknown介面的實現和使用的細節,請參見下面主題:。
管理實現一個COM物件的方法的三個主要規則:
1.物件必須要有一個識別符號;
2.一個物件例項的介面集合必須是靜態的(static);
3.在物件中從任何一個其他的介面查詢此介面都應該成功。
透過引用計數來管理物件的生命週期
使用 AddRef() //增加引用
Realase() //減少引用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-984448/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java Comparable排序介面和Comparator比較器介面Java排序
- Java Comparable 和 Comparator 介面詳解Java
- 用C#建立COM物件 (轉)C#物件
- CSharp Tips:讓DotNet實現的COM物件支援IObjectSafety介面 (轉)CSharp物件Object
- typescript 介面和物件型別(四)TypeScript物件型別
- Java中Comparable和Comparator介面區別分析Java
- BeanNameAware介面和BeanFactoryAware介面(轉)Bean
- Comparable介面的實現和使用
- Kotlin教程(三)類、物件和介面Kotlin物件
- MFC對COM介面編寫的支援分析 (轉)
- 使用Microsoft Agent的COM介面程式設計(轉)ROS程式設計
- PHP物件和介面抽象類注意事項PHP物件抽象
- jquery物件和DOM物件的互相轉換jQuery物件
- 從java內建類和自定義類比較Comparable介面和Comparator介面實現排序的不同Java排序
- jQuery物件和DOM物件和字串之間的轉化jQuery物件字串
- 物件型介面物件
- 一些轉儲和清除記憶體物件和物理物件的命令(轉)記憶體物件
- 【JQuery】DOM物件和JQuery物件的互相轉換jQuery物件
- Java 入坑 Kotlin 必看 —— 類、物件和介面JavaKotlin物件
- Kotlin 知識梳理(3) 類、物件和介面Kotlin物件
- 輕鬆架起Java連線COM物件的橋樑 (轉)Java物件
- Tomcat+ApacheSOAP部署訪問COM物件的WebService (轉)TomcatApache物件Web
- COM+物件池元件崩潰除錯手記 (轉)物件元件除錯
- OOP: 理解類和物件(1) (轉)OOP物件
- OOP: 理解類和物件(2) (轉)OOP物件
- Delphi中的類和物件 (轉)物件
- 物件導向-介面物件
- 轉向Kotlin——類和介面Kotlin
- 使用@ResponseBody物件轉json和@RequestBody進行json轉物件案例物件JSON
- 物件型介面 / 定製操作型別和欄位物件型別
- dom物件和jQuery物件相互轉換簡單介紹物件jQuery
- jQuery物件和DOM物件之間的轉換實現jQuery物件
- jquery物件和DOM物件的區別及互相轉化jQuery物件
- PostgreSQL中將物件oid和物件名相互轉換SQL物件
- centos 圖形介面和命令列介面切換(轉載)CentOS命令列
- JAVA中的Comparable介面和自定義比較器Java
- 一些轉儲和清除記憶體物件和物理物件的命令記憶體物件
- 非標準物件介面物件