对不起初学者的问题。
在非常好的文章中Com in plain C我读了这句话:
COM对象的一个要求是我们的前三个成员 VTable(即我们的IExampleVtbl结构)必须被称为QueryInterface, AddRef和Release。
这是真的吗?
如果更改名称,但参数,调用约定和返回值会相同怎么办?
你还在做这个吗?如果不是为什么?
非常感谢您的回复。 (正面或负面。)
答案 0 :(得分:3)
每个 COM接口必须派生自IUnknown。它提供了基本服务:内存管理(AddRef和Release)以及发现COM对象实现的其他接口(QueryInterface)的能力。因此,COM接口的v表始终以3个函数指针开始,这些函数指向这些方法的实现。函数的实际名称或它们所用的语言根本不重要,COM只关心函数指针。
您可以根据需要命名实现功能。故意不使用IUnknown函数名称是不明智的。