我正在学习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