摘要: 錯(cuò)誤修正 首先修正一下上篇(《裸寫一個(gè)進(jìn)程內(nèi) COM 組件》)中的例子的一個(gè)小問(wèn)題。類廠的CreateInstance里面,上次是這么寫的: STDMETHODIMP ClassFactory::CreateInstance(_In_opt_ IUnknown *pUnkOuter, &nbs...
閱讀全文
摘要: 引言 前幾天山寨了ATL的COM_INTERFACE,了解了一個(gè)COM類的如何進(jìn)行通用的組織。今天再來(lái)學(xué)習(xí)下COM協(xié)議,看看如何實(shí)現(xiàn)一個(gè)COM組件——當(dāng)然,也是不能用ATL的,不然就學(xué)不到什么了。 COM DLL說(shuō)簡(jiǎn)單簡(jiǎn)單,說(shuō)復(fù)雜也很復(fù)雜。說(shuō)簡(jiǎn)單呢,其實(shí)貌似只要導(dǎo)出下面這五個(gè)函數(shù)就可以了: DllCanUnloadNow DllGetClassObject DllRegisterSe...
閱讀全文
摘要: 在上一篇中,我們實(shí)現(xiàn)了COM_INTERFACE宏,并且重新寫了一個(gè)含有WebBrowser的窗口。在那里我們留了中間層OleContainer。為了驗(yàn)證OleContainer的可用性,現(xiàn)在來(lái)寫一個(gè)含有Windows Media Player(下文簡(jiǎn)稱“WMP”)控件的窗口。 WMP控件的容器類除了IOleClientSite、IOleInPlaceSite、IOleInPlace...
閱讀全文
摘要: 上一篇我們簡(jiǎn)單學(xué)習(xí)了下ATL 的繼承鏈處理。可是,如果要裸寫一個(gè)含內(nèi)嵌IE控件的窗口,還是要寫一個(gè)很長(zhǎng)的QueryInterface,以及AddRef和Release,確保引用計(jì)數(shù)的正確性。于是我們不得不參考ATL的COM_TNTERFACE的處理技巧,來(lái)達(dá)到一定程度上的易用性。 首先,除了IUnknown以外,其余所有涉及到的接口,均按上一篇的形式,弄成相應(yīng)的IXXX...
閱讀全文
摘要: 我們先來(lái)看一組接口定義: struct IX { virtual void MethodX() = 0; }; struct IXA : public IX { virtual void MethodXA() = 0; }; struct IXB : public IX {...
閱讀全文
本博客中提供的任何源代碼、非開(kāi)源軟件以及其他作品,如未加特別說(shuō)明,均屬原創(chuàng)。如果其中有版權(quán)說(shuō)明,則請(qǐng)遵守版權(quán)說(shuō)明;如果沒(méi)有版權(quán)說(shuō)明,任何人都可以將其用于任何合法場(chǎng)合,包括但不限于商業(yè)、非商業(yè)的。如果您有使用,特別是用于商業(yè)場(chǎng)合,您最好通知我一下,但這并不是必須的。本博客中的任何非原創(chuàng)作品,請(qǐng)遵守原作者的版權(quán)說(shuō)明。
|
|
26 | 27 | 28 | 29 | 30 | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | 1 | 2 | 3 | 4 | 5 | 6 |
常用鏈接
留言簿(21)
隨筆分類(124)
隨筆檔案(90)
我的鏈接
友情鏈接
積分與排名
最新隨筆
最新評(píng)論

閱讀排行榜
評(píng)論排行榜