• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-250  評(píng)論-20  文章-55  trackbacks-0

            一個(gè)對(duì)象實(shí)現(xiàn)一個(gè)接口,他的意思就是該對(duì)象使用代碼實(shí)現(xiàn)了接口的每個(gè)方法

            并且為這些函數(shù)通向 com 庫提供了 com 的二進(jìn)制指針。然后 com 使這些函數(shù)運(yùn)行在

            請(qǐng)求了一個(gè)指向該接口的任何客戶端。

            ?

            Interfaces and Interface Implementations

            ?

            COM 在接口的定義和實(shí)現(xiàn)上有根本的差別。一個(gè)接口實(shí)際上是由一組定義了用法的相

            聯(lián)系的函數(shù)原型組成,只是他不能夠被實(shí)現(xiàn)。這些函數(shù)原型就相當(dāng)于 C++ 中含有純虛擬函數(shù)的基類。一個(gè)接口定義制定了接口的成員函數(shù)、調(diào)用方法、返回類型、他們的參數(shù)的數(shù)量和類型,這些函數(shù)要干什么。但是這里并沒有與接口實(shí)現(xiàn)相關(guān)的東西。一個(gè)接口的實(shí)現(xiàn)就是程序員在一個(gè)借口定義上提供的執(zhí)行相關(guān)動(dòng)作的代碼。

            ???? 一個(gè)接口的實(shí)現(xiàn)就是程序員在一個(gè)借口定義上提供的執(zhí)行相關(guān)動(dòng)作的代碼。客戶調(diào)用完全是決定于接口的定義。

            ?

            Interface Pointers and Interfaces

            ?

            接口實(shí)現(xiàn)的一個(gè)實(shí)例,實(shí)際上就是一個(gè)指向一組方法的指針,即是指指向一個(gè)接口的函 數(shù)表,該函數(shù)表引用了該接口所有方法的實(shí)現(xiàn)。

            ???? 每個(gè)接口,是一個(gè)固定的一組方法的集合,在運(yùn)行時(shí)通過 globally unique interface identifier (IID) 來定位。這里, IID com 支持的 globally unique identifier (GUID) 的特殊的實(shí)例。這樣做就不會(huì)產(chǎn)生單一系統(tǒng)上相同名字、接口的多個(gè)版本的 COM 之間的沖突了。

            • 一個(gè)COM接口與C++類是不一樣的;
            • 一個(gè)COM接口不是一個(gè)對(duì)象——他只是簡(jiǎn)單的關(guān)聯(lián)一組函數(shù),是客戶和程序之間通信的二進(jìn)制標(biāo)準(zhǔn)。只要他提供了指向借口方法的指針,這個(gè)對(duì)象就可以用任何語言來實(shí)現(xiàn)他。;
            • COM接口十強(qiáng)類型的——每個(gè)接口有他自己的借口標(biāo)識(shí)符;

            ·???????? COM接口的不變性——你不能夠用老版本的接口標(biāo)識(shí)符定義新的版本,接口的IID定義的接口合同是明確的、唯一的

            ?

            IUnknown and Interface Inheritance

            ?

            ???? 繼承在 COM 里并不意味著代碼的重用。因?yàn)榻涌跊]有實(shí)現(xiàn)關(guān)聯(lián),借口繼承并意味著代碼繼承。他的意思僅僅是,一個(gè)接口同一個(gè)合同關(guān)聯(lián),就像 C++ 的純虛擬基類的創(chuàng)建和修改樣,可以添加方法或者更進(jìn)一步的加強(qiáng)方法的使用。在 COM 里沒有選擇性繼承。如果一個(gè)接口由另一個(gè)接口繼承的話,他就包含了另一個(gè)接口定義的所有的方法。

            ?

            Using and Implementing IUnknown

            ?

            ??? COM 為實(shí)現(xiàn)和使用對(duì)象和對(duì)象的內(nèi)部通信提供了一個(gè)豐富的標(biāo)準(zhǔn)集合。對(duì)IUnknown接口的實(shí)現(xiàn)和使用的細(xì)節(jié),請(qǐng)參見下面主題:QueryInterface: Navigating in an Object 。?

            ???

            Rules for Implementing QueryInterface

            ?

            管理實(shí)現(xiàn)一個(gè)COM對(duì)象的 IUnknown::QueryInterface 方法的三個(gè)主要規(guī)則:

            ??? 1.對(duì)象必須要有一個(gè)標(biāo)識(shí)符; ?

            ??? 2.一個(gè)對(duì)象實(shí)例的接口集合必須是靜態(tài)的(static); ?

            ??? 3.在對(duì)象中從任何一個(gè)其他的接口查詢此接口都應(yīng)該成功。 ?

            ?

            通過引用計(jì)數(shù)來管理對(duì)象的生命周期

            ???? 使用 AddRef () ??? //增加引用?
            ????????????? ? Realase()?? //減少引用

            posted on 2007-03-13 13:57 jay 閱讀(318) 評(píng)論(0)  編輯 收藏 引用 所屬分類: ATL
            亚洲第一永久AV网站久久精品男人的天堂AV | 老司机午夜网站国内精品久久久久久久久| 一本久久综合亚洲鲁鲁五月天| 91精品国产色综久久| 亚洲成人精品久久| 国产精品99久久久久久宅男| 精品久久久久久久中文字幕| 久久这里只有精品首页| 国产午夜福利精品久久| 久久久久婷婷| 久久人人爽人人爽人人爽| 久久精品青青草原伊人| 久久AV高清无码| 2020最新久久久视精品爱| 久久国产成人精品国产成人亚洲| 久久er国产精品免费观看8| 青草久久久国产线免观| 国产成人精品久久| 精品免费tv久久久久久久| 久久精品国产色蜜蜜麻豆| 欧美亚洲国产精品久久| 九九精品99久久久香蕉| 精品综合久久久久久88小说| 久久国语露脸国产精品电影| www.久久热.com| 伊人久久大香线蕉成人| 久久久久女人精品毛片| 成人国内精品久久久久影院VR| 午夜精品久久久内射近拍高清| 精品久久久久久亚洲精品 | 国产成人99久久亚洲综合精品| 欧美午夜A∨大片久久 | 久久精品毛片免费观看| 精品久久久久久无码国产| 麻豆AV一区二区三区久久| 久久久久亚洲AV成人网人人网站 | 久久综合亚洲鲁鲁五月天| 久久久久久综合一区中文字幕| 四虎影视久久久免费观看| 国产精品无码久久综合| 亚洲国产精品成人AV无码久久综合影院 |