支持 COM+ 1.0 支持事務(wù)處理的 COM+ 功能。COM+ 也許在第 99 回介紹吧。
三、添加 ATL 對(duì)象類 步驟3.1:菜單"項(xiàng)目\添加類..."(或者用鼠標(biāo)右鍵在 項(xiàng)目中彈出菜單"添加\添加類...")并選擇 ATL 簡(jiǎn)單對(duì)象。見圖三。
圖三、選擇建立ATL簡(jiǎn)單對(duì)象
除了簡(jiǎn)單對(duì)象(只實(shí)現(xiàn)了 IUnknown 接口),還可以選擇“ATL控件”(ActiveX,實(shí)現(xiàn)了10多個(gè)接口)......可以選擇的組件對(duì)象類型很多,但本質(zhì)上,就是讓向?qū)臀覀兡J(rèn)加上一些接口。在以后的文章中,陸續(xù)介紹吧。
步驟3.2:增加自定義類 CFun(接口 IFun) ,見圖四。
圖四、填寫名稱
其實(shí),我們只需要輸入簡(jiǎn)稱,其它的項(xiàng)目會(huì)自動(dòng)填寫。沒什么多說的,只請(qǐng)大家注意一下 ProgID 項(xiàng),默認(rèn)的 ProgID 構(gòu)造方式為“項(xiàng)目名.簡(jiǎn)稱名”。
步驟3.3:填寫接口屬性選項(xiàng),見圖五。
圖五、接口選項(xiàng)
線程模型 COM 中的線程,我認(rèn)為是最討厭,最復(fù)雜的部分。COM 線程和公寓的概念,留待后續(xù)介紹。現(xiàn)在嗎......大家都選"單元"(Apartment),它代表什么那?簡(jiǎn)單地說:當(dāng)在線程中調(diào)用組件函數(shù)的時(shí)候,這些調(diào)用會(huì)排隊(duì)進(jìn)行。因此,這種模式下,我們可以暫時(shí)不用考慮同步的問題。(注1)
接口 雙重(Dual),這個(gè)非常 非常重要,非常非常常用,但我們今天不講(注2)。
切記!切記!我們的這第一個(gè) COM 程序中,一定要選擇“自定義”?。。?!(如果你選錯(cuò)了,請(qǐng)刪除全部?jī)?nèi)容,重新來過。)
聚合 我們寫的組件,將來是否允許被別人聚合(注3)使用。“只能創(chuàng)建為聚合”,有點(diǎn)類似 C++ 中的純虛類,你要是總工程師,只負(fù)責(zé)設(shè)計(jì)但不親自寫代碼的話,才選擇它。
ISupportErrorInfo 是否支持豐富信息的錯(cuò)誤處理接口。以后就講。
連接點(diǎn) 是否支持連接點(diǎn)接口(事件、回調(diào))。以后就講。
IObje