每个COM对象都必须有integrity。简单来说,这意味着如果一个对象实现了3个接口 - A
,B
和C
,并且我有A*
指向该对象的指针,我必须能够成功{{ 1}} QueryInterface()
和B
以及C
我必须能够检索B
和A
并拥有C
我必须能够检索C
和A
。
现在我的对象实现了5个接口,我想测试它的完整性。自己编写上述所有内容的检查需要付出巨大努力。是否有工具或一些容易调整的代码或代码模式可以做到这一点?
答案 0 :(得分:2)
我没有看到问题。如果实现A,B和C,那么接口A必须正确地为A,B,C和IUnknown进行QI。包括自己。所有接口的测试都是相同的,只需要一个带有IUnknown *参数的小函数。
答案 1 :(得分:1)
如果我理解正确,你想要证明你的实现遵守COM IUnknown规则(传递性,反身性等)并且你关注基于接口数量的指数爆炸吗?
如果您有组件类型库,您可以编写一个应用程序来确定coclasses / interfaces并发出代码来测试这些规则(此应用程序是通用的,可以与任何具有类型库的组件一起使用)。也许你甚至可以在网上找到一个(我没有搜索过)
最佳
阿德