每个新的COM类都必须重新实现IUnknown接口吗?

Car*_*arl 5 c++ com iunknown

对不起,如果这个问题对每个人来说都很明显,但我对COM很新.从我在这里看到的教程http://www.codeguru.com/cpp/com-tech/activex/tutorials/article.php/c5567看来,在C++中创建的每个COM类都必须实现自己的QueryInterface,AddRef和Release .由于这些方法应该对任何新类具有基本相同的实现,我不明白为什么没有一些抽象类或为开发人员实现它的任何东西.我不明白为什么我应该重新实现许多人已经一次又一次地实现的相同的事情(除非教程是错误的并且有一些东西).

谢谢

Bra*_*etz 3

自由贸易协定:

“我相信每一位希望了解 COM 背后基本原理的程序员都必须使用纯 C++ 编写至少一个简单的 COM 对象,即无需借助 MFC/ATL 附带的模板和宏。”

回答你的问题:是的,每个 COM 组件都必须实现IUnknown,它是 COM 构建的基础。然而,对于创建 COM 对象的“标准管道”,这就是ATL 项目向导的用途。