问题解决:
1、使用IUnknown**作为接口参数会有问题,调用接口时参数地址为空
2、函数代码实现如下
void MyClass2::getMyClass1(IDispatch** iInterface)
{
m_obj = new QAxObject();
bool b = m_obj->setControl("{110DD90A-2B8F-4226-A7BF-4CC64393AE1D}");//MyClass的CLSID
//"{1D3B6588-3D80-4143-BC68-4C506F0F2A6E}"为MyClass的InterfaceID
m_obj->queryInterface(QUuid("{1D3B6588-3D80-4143-BC68-4C506F0F2A6E}"),(void**)iInterface);
}
3、接口访问:
IMyClass2Ptr ipMyClass2(CLSID_MyClass2);
IDispatch* obj;
ipMyClass2->getMyClass1(&obj);
IMyClass1Ptr ipMyClass1 = obj;
ipMyClass1->doSomthing();