我正在學習C++,我正試圖更好地理解它。我正在閱讀關於如何使用xml lite的msdn文檔。它說我必須使用實現IStream接口的類。它說聲明和實例化我的類,它擴展了Istream,並在聲明變量時使用CComPtr。那麼它向我展示了以下內容。是否可以在不創建自定義接口的情況下實現COM接口?
CComPtr<IStream> pFileStream;
CComPtr<IXmlReader> pReader;
我有點困惑。如果使用CComptr來拉取xml。爲什麼我必須延長。爲什麼不只是讓CComptr已經實現了IStream並且只是調用了CComptr。或者CComptr已經有了IStream,istream的唯一有效方法就是像上面那樣擴展?
你說得對。事實上這很常見。例如,所有Shell擴展通過Explorer.exe實現COM接口useb。很少添加自定義界面;資源管理器不會使用它們,因此它們僅供內部使用。 – MSalters 2010-02-25 14:10:34
好吧,我用於語言,如果一個類實現一個接口。你可以打電話給班級。你不必上課。我的印象是,在C++中,爲了讓編譯器注意到接口,你必須將它稱爲類。糾正我,如果我錯了。 –
numerical25
2010-02-25 14:49:16
@numer25這不是C++語言的問題。這是COM的。 COM不是C++的一部分。這是二進制級別的Microsoft慣例。你也可以在C中實現COM對象。 http://en.wikipedia.org/wiki/Component_Object_Model – sergiom 2010-02-25 16:08:56