我有一个类ClassA
实现接口IFooBar
,如下所示
class ClassA : public Microsoft::WRL::RuntimeClass<IFooBar>
{
public:
virtual HRESULT RuntimeClassInitialize(ParamsForClassA);
}
现在我想编写一个ClassB
固有ClassA
的并覆盖它的RuntimeClassInitialize
函数,如下所示:
class ClassB : public ClassA
{
public:
HRESULT RuntimeClassInitialize(ParamsForClassB)
{
// implementation goes here
}
}
我创建了一个指向ClassB
对象的指针,如下所示:
ComPtr<ClassB> ptr;
HRESULT hr = MakeAndInitialize<ClassB>(&ptr, ParamsForClassB);
但这实际上是ClassA
's 的RuntimeClassInitialize
构造函数。的代码路径永远不会被命中ClassB
。RuntimeClassInitialize
我想知道这是否是在 WRL 中扩展类的正确方法?我在哪里做错了代码?