国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > C++ > 正文

C++ COM編程之QueryInterface函數(shù)(二)

2020-05-23 14:21:01
字體:
供稿:網(wǎng)友
這篇文章主要介紹了C++ COM編程之QueryInterface函數(shù)(二),本文是第二篇,第一篇請參閱相關(guān)文檔,需要的朋友可以參考下
 
 

前言

COM編程——認(rèn)識組件中也總結(jié)了,COM是一個說明如何建立可動態(tài)互變組件的規(guī)范,它提供了為保證能夠互操作,客戶和組件應(yīng)遵循的一些標(biāo)準(zhǔn)。而在實(shí)現(xiàn)和使用QueryInterface時,就需要去遵守一些規(guī)則,只有遵守了這些規(guī)則,才能是一個正確的COM組件;只有了解了這些規(guī)則,才能會真正的了解COM開發(fā)。

QueryInterface的實(shí)現(xiàn)規(guī)則

實(shí)現(xiàn)QueryInterface需要遵從以下五條規(guī)則:

1.QueryInterface總是返回同一IUnknown指針

組件的實(shí)例只有一個IUnknown接口。因?yàn)楫?dāng)查詢組件實(shí)例的IUnknown接口時,不論通過哪個接口,所得到的均將是同一指針值。為確定兩個接口是否指向同一個組件,可以通過這兩個接口查詢IUnknown接口,然后將返回值進(jìn)行比較。

這條規(guī)則是非常重要的,如果QueryInterface的實(shí)現(xiàn)不遵循這條規(guī)則的話,則將沒法決定兩個接口是否指向同一組件;

2.如果客戶曾經(jīng)獲取過某個接口,那么它將總能獲得該接口

這條規(guī)則限定了對于一個組件實(shí)例,它的QueryInterface的不變性;你可以想象,如果組件實(shí)例的接口集不是固定的,客戶將無法通過編程的方法來決定一個組件到底具有一些什么樣的功能;客戶就會對你的COM組件失去耐心,你的COM組件都沒有人去使用了,這還有什么意義。

3.客戶可以再次獲取已經(jīng)擁有的接口

如果客戶擁有一個IX接口,則可以通過它來再次查詢IX接口指針,并且一定可以成功的。通過自己查詢自己,聽起來多少有點(diǎn)奇怪,但是這是必須可以的。

4.客戶可以從任何接口返回到起始接口

如果客戶擁有一個IX接口指針,并成功地使用它來查詢了一個IY接口,那么它將可以使用這個IY接口來查詢一個IX接口,這條規(guī)則在實(shí)際的項(xiàng)目開發(fā)時很有用。

5.如果能夠從某接口獲取某特定接口,則從任意接口都將能獲取此接口

如果能夠從某個組件獲取某特定接口,那么客戶將可以通過此組件所支持的任意接口獲取此接口。例如:如果可以通過接口IX得到接口IY,通過IY可以得到IZ,那么通過IX也將可以得到IZ。這條規(guī)則使得QueryInterface是可用的。

綜上所有規(guī)則,其內(nèi)在的重點(diǎn)在于不管組件實(shí)現(xiàn)了多少個接口,組件都只實(shí)現(xiàn)了一個QueryInterface,所以,在所有的接口的vtbl中,對應(yīng)的QueryInterface都是組件實(shí)現(xiàn)的QueryInterface的地址,所有接口指針調(diào)用QueryInterface進(jìn)行查詢時,都是調(diào)用的同一個QueryInterface,所以,這就滿足了上述的規(guī)則。大家在閱讀上面的這些規(guī)則時,難免會有些無所謂的感覺,覺得都是文字,很枯燥,我開始的時候也是這樣的;就是因?yàn)槿绱耍趯?shí)際的開發(fā)中,吃過不少的苦頭,所以,今天又在這里把這些規(guī)則重新的整理一遍,希望大家不要在實(shí)際的項(xiàng)目中栽了跟頭再回來尋找原因,何不防范于未然呢?

添加新的接口

以前的博文也總結(jié)過了,COM中接口是不會發(fā)生變化的。當(dāng)組件發(fā)布一個接口并被某個客戶使用之后,此接口將決不會發(fā)生任何變化,而將永遠(yuǎn)保持不變。這里說的不變,具體是什么意思呢?由于每一個接口都有一個唯一對應(yīng)的接口標(biāo)識符IID。一般情況下,我們不會改變接口,而可以建立一個新接口并為之指定一個新的IID。當(dāng)QueryInterface接收到對老的IID的查詢時,它將返回老的接口;而當(dāng)它收到對新的IID的查詢時,它將返回新的接口。對于QueryInterface而言,一個IID就是一個接口。

所以同某個IID相應(yīng)的接口將絕不會發(fā)生變化。新接口可以繼承老的接口,它也可以同老接口完全不同。由于老的接口仍然保持不變,已有客戶的運(yùn)行將不會受到任何影響。而新客戶則可以自行決定是使用老接口還是新接口,因它可以自由決定到底是查詢哪個接口。

新接口命名

雖然每個人的命名規(guī)則,每個公司命名規(guī)則都是要求不同的,但是對于COM接口的命名大體上都是一致的,例如:原來的接口名為IX,則新的接口名為IX2,而不是IXEx之類的。我經(jīng)歷了這么多的項(xiàng)目,寫過、也調(diào)用過很多的COM組件,基本都是遵循的這個規(guī)則,即在老名稱的后面加上一個數(shù)字。

總結(jié)

這篇文章總結(jié)的是理論,讓那些不喜歡理論的人會有點(diǎn)失望。但是,道理就是那樣的,沒有理論作為基礎(chǔ)的實(shí)踐,都是亂搞。做什么事情,都要有一定的理論基礎(chǔ),所以,我通過了兩篇博文,對QueryInterface進(jìn)行詳細(xì)的總結(jié)。希望對大家有一定的幫助,最后,也希望大家提出你的想法和我分享。我堅(jiān)信,交流是一種非常給力的學(xué)習(xí)方法。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产中文字幕在线看| www.操操操| 久久久久久久久久久久网站 | 精品视频二区三区| 亚洲欧美综合乱码精品成人网| 在线黄色国产电影| 欧美高清视频| 最近中文字幕mv免费高清在线| 国产日产一区二区| 亚洲图区综合| 国产女人在线视频| 懂色一区二区三区| 91社区在线观看| wwwww在线观看免费视频| 国产九九九九| 亚洲人在线播放| 国产小视频在线| 青青青手机在线视频观看| 国产无遮挡又黄又爽免费网站 | 精品176二区| av人人综合网| 国产美女视频一区二区三区| 精品国产高清自在线一区二区三区 | 俺来俺也去www色在线观看| 91av久久| 欧美精品另类| 18被视频免费观看视频| 综合激情亚洲| 四虎成人精品在永久免费| 国产视频一二三区| 国产美女自拍视频| 青草视频在线播放| 人xxxx性xxxxx欧美| 91精选福利| 精品推荐国产麻豆剧传媒| 国产偷窥洗澡视频| 国产人成在线观看| 中文字幕一区免费| 天天操天天艹| 国产精品第八页| 国产精品美女一区二区视频| 天堂中文资源在线| 国内精品不卡| 成人超碰在线| 五月天亚洲激情| 国产乱妇乱子| 国产日本韩国在线播放| 国产区视频在线| 精品国语对白精品自拍视 | 国产私人尤物无码不卡| 国内自拍视频在线看免费观看| a视频在线观看| 日本国产在线| 黄色av免费在线| 最新中文字幕在线视频| 国产精品久久麻豆| 在线色视频网| 在线国产一区二区三区| 羞羞视频在线免费看| 欧美国产中文| 国产三级视频在线看| 97国产在线| 超碰免费在线播放| 国产精品免费91| 爱福利在线视频| 国产视频青青| 欧美人成在线观看网站高清| 国产麻豆视频| 在线中文视频| 国产精品一区二区三区四区色| 国产色视频网站| 日本视频三区| 天堂在线免费av| 一区二区三区免费视频网站| 男女午夜视频在线观看| 国产三级视频| 欧美性受xxxx免费视频| 国产网红在线| 国产嫩草在线视频| 午夜影院在线| 91国内精品在线视频| 狠狠色丁香婷婷| av在线播放av| 国产成人精品自线拍| 黄色av网站在线| 亚洲国产日韩成人综合天堂| 最近中文字幕在线中文视频| av免费在线观看网站| 国产日韩欧美一区二区三区视频| 免费a级毛片在线播放| 91av福利| 国产精品久久久久久精| 九九热在线视频| 久久精品免视着国产成人| 日本片在线看| а√天堂8资源在线官网| av网址在线看| 性国产高清在线观看| 在线亚洲精品自拍| 在线影视一区| 91最新在线| 99re6在线视频精品免费| 国产亚洲精品午夜高清影院| 九色在线网站| 国产麻豆免费| 中文字幕不卡免费视频| 午夜国产福利在线| 国产视频资源| 国产91久久久久蜜臀青青天草二| 国产高清视频在线播放| 国产福利小视频在线| 精品全国在线一区二区| 99福利在线| 免费看ww视频网站入口| 中文字幕网站视频在线| 国产xxxxx| 欧美日韩性视频一区二区三区| 天天激情综合| 久草网在线视频| 国产三级视频在线看| 在线观看的av网站| 久久精品国产亚洲777| 国产香蕉尹人视频在线| 99在线播放| 久草国产视频| 2018中文字幕在线观看| 四虎成年永久免费网站| 国产美女视频一区二区二三区| 国产精品被窝福利一区| 午夜在线观看91| 国产探花视频在线观看| www.毛片| 国产超碰97| 中文字幕在线影视资源| 天堂在线国产| 国产黄色片在线播放| 久久亚洲资源| 天海翼中文字幕| 2018狠狠干| 国产一级黄色| 国内精品一区视频| 天天草天天干| 在线观看的网站你懂的| 国产三级自拍| 懂色av中文在线| 日本成a人片在线观看| 国产一二区在线| 激情亚洲综合网| 日本欧美在线视频免费观看| 国产高清视频在线| 国产精品区一区二| 国产日韩欧美第一页| 91av久久| 五月亚洲综合| 中文字幕在线看精品乱码| 免费av不卡在线观看| 欧美成人精品福利网站| 亚洲www色| 日本啊v在线| 青青草原av在线| а天堂8中文最新版在线官网| 伊人影院在线观看| 精精国产xxxx视频在线中文版| 尤物视频在线观看| 国产色视频网站| 国产精品久久久久久久牛牛| 午夜伦全在线观看| 国产丝袜在线| 在线午夜视频| 欧美日韩在线资源| 国产精品作爱| 国产超碰在线观看| 精品国语对白精品自拍视 | 日本亚洲欧美| 黄网站在线观看高清免费| 欧洲有码在线视频| 成人精品福利| 国产精品9区| 亚洲精品xxxxx| 超碰在线97国产| 国产偷倩在线播放| 亚洲网站视频在线观看| 国产在线拍揄自揄拍视频| 国产日韩精品在线看| 亚洲91av| 国产欧美日本亚洲精品一4区| 在线一区观看| 国产毛片毛片毛片| 在线国产一级| 91xxx在线观看| 2021av天天| 国产女王在线**视频| 在线一区观看| 激情视频国产| 在线视频二区| 国产一区二区三区四区尤物| 国产福利在线视频| 另类高清dbsm日本tvav| 国产白浆在线| 最好看更新中文字幕|