刚开始学习用ATL进行组件编程,现在写了两个接口ITestOne和ITestTwo前者继承于IDispatch后者继承与IUnknown,实现的组件类是CTestOne,接口映射表如下BEGIN_COM_MAP(CTestOne)
 COM_INTERFACE_ENTRY(ITestOne)
 COM_INTERFACE_ENTRY(IDispatch)
 COM_INTERFACE_ENTRY(ITestTwo)
END_COM_MAP()
编译以及VB调用接口ITestOne内的函数都可以,但是不能调用ITestTwo内的方法因为他没有从IDispatch派生,那么现在如果我要将ITestTwo的基接口改为IDispatch的话,这个接口映射表如何写,用哪个宏?
COM_INTERFACE_ENTRY2
COM_INTERFACE_ENTRY_IID
COM_INTERFACE_ENTRY2_IID请您给我一个具体的写法,非常感谢。
另外还有一个问题是当我的接口的某一个函数的参数只有一个是BSTR*的时候且参数类型是[out,retval]的时候,即ITestOne::GetBSTR1(/*out,retval*/BSTR* bstrRet)
VBS的调用过程如下:
Set a = CreateObject("MyTest.ComputerInfo")
a.Initialize()
v=a.GetBSTR()
MsgBox v
编译运行没有错误,但是如果函数是两个参数的时候VBS如何调用呢?
即ITestTwo::GetBSTR2(/*out*/BSTR* bstrOut,/*out,retval*/BSTR* bstrRet)