九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
COM原理及應(yīng)用----命名和綁定技術(shù)

1、COM對象的創(chuàng)建方法

   客戶程序可以通過CoCreateInstance函數(shù)創(chuàng)建COM,在創(chuàng)建之前必須知道對象的一些基本情況,比如對象的CLSID或者對象的ProgID。

   另一種對象創(chuàng)建方法通過名字對象(moniker)創(chuàng)建,就利用對象命名和綁定技術(shù)(即名字技術(shù))。

  2、名字技術(shù)的地位

   名字技術(shù)算不上COM的基本核心,但也COM體系結(jié)構(gòu)中重要的組成部分,它為客戶程序和組件程序提供了另一條更為靈活的聯(lián)系紐帶。OLE的成功使名字技術(shù)得到了廣泛的應(yīng)用,而且在OLE和COM的不斷發(fā)展過程中,名字技術(shù)發(fā)揮了其強(qiáng)大的擴(kuò)展特性,異步名字對象的實(shí)現(xiàn)使它超越了OLE的應(yīng)用范圍,能更好地適用于網(wǎng)絡(luò)環(huán)境,特別Internet網(wǎng)絡(luò),體現(xiàn)了名字技術(shù)強(qiáng)大的生命力。

  名字技術(shù)允許客戶程序通過符號化的方式訪問組件對象,而不必通過CLSID和類廠訪問COM對象。名字技術(shù)不僅為COM對象提供了符號化的表達(dá)方式,而且它充分體現(xiàn)了面向?qū)ο筌浖w系的一些重要概念,甚至可以把它當(dāng)作軟件體系結(jié)構(gòu)的一項(xiàng)技術(shù)來學(xué)習(xí)。

  3、COM名字技術(shù)包括兩方面內(nèi)容:命名技術(shù)和綁定過程

  4、名字對象

   名字技術(shù)的核心名字對象,COM使用術(shù)語”moniker”來表示名字對象,它本身也一個COM對象。名字對象為組件對象提供了符號化的表示方法,同時它也對組件對象進(jìn)行了全面的封裝,客戶程序只需創(chuàng)建相應(yīng)的名字對象,然后利用名字對象的綁定功能得到組件對象。名字對象能夠自動使組件對象從被動狀態(tài)進(jìn)入運(yùn)行狀態(tài),所以名字對象也稱為永久智能名字(persistent intelligent names)。

   名字對象封裝了組件對象的所有狀態(tài)處理過程,因此客戶程序可以按照統(tǒng)一的方法處理名字對象,即使要引用新的組件對象,客戶代碼也不必作任何改動。

  5、文件名與名字對象

   文件名字對象(file moniker)一種基本的名字對象,文件名也通過符號化的字符串名指向?qū)嶋H的文件。文件名代表了一個磁盤文件,文件名本身不一個對象,它只代表了文件對象的路徑,因此,文件名不具有智能特性。

   COM對象的永久狀態(tài)可以整個文件,也可以文件的一部分。

   雖然名字對象扮演了與文件名相同的角色,但名字對象的功能要強(qiáng)大得多。首先,它所表達(dá)的對象范圍廣闊得多,除了一般的文件對象,它也可以表達(dá)文件中的部分內(nèi)容,其次,名字對象具有智能特性,即它可以使被動態(tài)的對象自動進(jìn)入運(yùn)行態(tài),名字對象找到與永久狀態(tài)聯(lián)系的運(yùn)行代碼,并啟動這些代碼,利用對象的初始化功能使對象進(jìn)入運(yùn)行狀態(tài),這個過程就名字對象的綁定操作。

  6、名字對象的綁定過程

   名字對象實(shí)現(xiàn)了標(biāo)準(zhǔn)的COM接口IMoniker,客戶程序通過IMoniker接口獲得組件對象。

   客戶程序通過名字對象訪問組件對象可以分成兩步:第一,獲得名字對象;第二,執(zhí)行名字對象的綁定操作(使用IMoniker接口的函數(shù)BindToObject),綁定過程的結(jié)果就組件對象的接口指針。

   客戶程序獲得名字對象的途徑有兩條:第一,調(diào)用COM API函數(shù),如MkParseDisplayName和CreateFileMoniker;第二,其他對象的接口成員函數(shù)傳遞過來,或者通過其他的數(shù)據(jù)傳輸機(jī)制得到,比如通過剪貼板或拖-放操作等。

  7、IMoniker

 ?。?)    名字管理函數(shù):IsEqual、Hash、IsRunning、GetTimeOfLastChange。

  (2)    綁定函數(shù):BindToObject、BindToStorage。

  (3)    復(fù)合名字對象管理函數(shù):Reduce、ComposeWith、Enum、Inverse、CommonPrefixWith、RelativePathTo、IsSystemMoniker。

 ?。?)    名字解析函數(shù):GetDisplayName、MkParseDisplayName。

  8、復(fù)合名字對象

  復(fù)合名字對象由一組其他的名字對象組成,也可以包括其他的復(fù)合名字對象,復(fù)合名字對象提供了一種創(chuàng)建任意復(fù)雜名字的機(jī)制。COM提供了一個標(biāo)準(zhǔn)的復(fù)合名字對象實(shí)現(xiàn),稱為“通用復(fù)合名字對象(generic composite moniker)”,并提供了標(biāo)準(zhǔn)API函數(shù)創(chuàng)建此類名字對象:CreateGenericComposite。

   IMoniker接口從IPersistStream派生而來,所以名字對象也一個永久對象,它可以有自己的永久狀態(tài)。復(fù)合名字對象的永久狀態(tài)一個流,它順序保存了每個組成名字對象的永久狀態(tài)。

   通用復(fù)合名字對象按統(tǒng)一的方式處理它的各個成員名字對象,無論綁定過程還其他一些操作,如名字解析、名字簡化等?!  ?/p>

   COM使用運(yùn)行對象表(ROT,running object table)表管理當(dāng)前系統(tǒng)中正在運(yùn)行的、已經(jīng)被注冊的名字對象,客戶程序可調(diào)用COM API函數(shù)GetRunningObjectTable得到ROT表的IRunningObjectTable接口指針。

  IMoniker接口的大多數(shù)成員函數(shù)以及其他一些API函數(shù)都包含一個被稱為綁定環(huán)境的對象,在這些函數(shù)中,以IBindCtx接口指針的形式出現(xiàn)。綁定環(huán)境對象主要用于名字對象的整個綁定過程,所以它包含了綁定過程所需要的一些信息。由于綁定環(huán)境對象COM實(shí)現(xiàn)的系統(tǒng)對象,所以COM提供了一個API函數(shù)創(chuàng)建它:CreateBindCtx。綁定過程比較耗

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
com 名字對象(2)創(chuàng)建名字對象(IMoniker)
COM編程技術(shù)基礎(chǔ)概述之六
VC知識庫文章 - COM 組件設(shè)計與應(yīng)用(一)——起源及復(fù)合文件
spring中用到哪些設(shè)計模式
面象對象的思想
我對COM的理解
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服