我正在编写一个 C++ 类,它至少使用一个来自 Windows API 的 COM 接口。显然,在类中使用这些对象时,我需要正确调用AddRef()和Release()。
我的问题是……我是否需要IUnknown在 C++ 类本身中另外实现?我的理解是,如果我使用的接口正在执行异步操作或回调,我只需要这样做。在这种情况下,您需要确保在异步操作或回调完成时 C++ 类本身仍然“活跃”。这样对吗?
为了澄清(以及根据汉斯的评论),我感兴趣的特定界面是IMFSourceReader(Windows Media Foundation)。该接口默认为同步模式。再说一次,如果我理解正确,IUnknown如果我选择在异步模式下使用它,我只需要在我的 C++ 类中实现。否则调用IMFSourceReader->AddRef()或IMFSourceReader->Release就足够了。
但是,如果我选择IMFSourceReader在异步模式下使用,则需要IMFSourceReaderCallback接口,该接口本身继承IUnknown. 在那种情况下,我必须在课堂上实现它。
我的理解正确吗?我仍处于编写实现的早期阶段,所以我真的没有可以分享的示例代码。在这一点上,我只是想确定我班级的基本结构。
| 归档时间: |
|
| 查看次数: |
725 次 |
| 最近记录: |