摘要: 錯誤修正 首先修正一下上篇(《裸寫一個進程內 COM 組件》)中的例子的一個小問題。類廠的CreateInstance里面,上次是這么寫的: STDMETHODIMP ClassFactory::CreateInstance(_In_opt_ IUnknown *pUnkOuter, &nbs...
閱讀全文
posted @
2012-09-09 12:43 溪流 閱讀(5196) |
評論 (3) |
編輯 收藏
摘要: 引言 前幾天山寨了ATL的COM_INTERFACE,了解了一個COM類的如何進行通用的組織。今天再來學習下COM協議,看看如何實現一個COM組件——當然,也是不能用ATL的,不然就學不到什么了。 COM DLL說簡單簡單,說復雜也很復雜。說簡單呢,其實貌似只要導出下面這五個函數就可以了: DllCanUnloadNow DllGetClassObject DllRegisterSe...
閱讀全文
posted @
2012-09-07 00:23 溪流 閱讀(6467) |
評論 (5) |
編輯 收藏
摘要: 在上一篇中,我們實現了COM_INTERFACE宏,并且重新寫了一個含有WebBrowser的窗口。在那里我們留了中間層OleContainer。為了驗證OleContainer的可用性,現在來寫一個含有Windows Media Player(下文簡稱“WMP”)控件的窗口。 WMP控件的容器類除了IOleClientSite、IOleInPlaceSite、IOleInPlace...
閱讀全文
posted @
2012-09-04 22:16 溪流 閱讀(3395) |
評論 (2) |
編輯 收藏
摘要: 上一篇我們簡單學習了下ATL 的繼承鏈處理。可是,如果要裸寫一個含內嵌IE控件的窗口,還是要寫一個很長的QueryInterface,以及AddRef和Release,確保引用計數的正確性。于是我們不得不參考ATL的COM_TNTERFACE的處理技巧,來達到一定程度上的易用性。 首先,除了IUnknown以外,其余所有涉及到的接口,均按上一篇的形式,弄成相應的IXXX...
閱讀全文
posted @
2012-09-03 23:17 溪流 閱讀(3632) |
評論 (4) |
編輯 收藏
摘要: 我們先來看一組接口定義: struct IX { virtual void MethodX() = 0; }; struct IXA : public IX { virtual void MethodXA() = 0; }; struct IXB : public IX {...
閱讀全文
posted @
2012-09-02 13:56 溪流 閱讀(2953) |
評論 (1) |
編輯 收藏
本博客中提供的任何源代碼、非開源軟件以及其他作品,如未加特別說明,均屬原創。如果其中有版權說明,則請遵守版權說明;如果沒有版權說明,任何人都可以將其用于任何合法場合,包括但不限于商業、非商業的。如果您有使用,特別是用于商業場合,您最好通知我一下,但這并不是必須的。本博客中的任何非原創作品,請遵守原作者的版權說明。
|
|
25 | 26 | 27 | 28 | 29 | 30 | 31 |
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 | 1 | 2 | 3 | 4 | 5 |
常用鏈接
留言簿(21)
隨筆分類(124)
隨筆檔案(90)
我的鏈接
友情鏈接
積分與排名
最新隨筆
最新評論

閱讀排行榜
評論排行榜