感觉用COM的智能指针的时候,CLSID是个多余的参数啊!
本帖最后由 u011849794 于 2013-08-28 09:43:00 编辑 我自己建立一个ATL工程,创建了组件对象Foo,然后再建立一个控制台程序来调用这个com
import指令会使得VC从tlb文件去创建tlh/tli文件,在tlh文件当中就声明了类似IFooPtr,IBarPtr这样的只能指针类型。假设Foo里面有2个接口叫做Foo/Math
然后我就可以
IFooPtr pFoo(CLSID_Foo,NULL,CLSCTX_ALL);
IMathPtr pMath(CLSID_Foo,NULL,CLSCTX_ALL);
IFoo* pf;
IMath* pm;
HRESULT hr=CoCreateInstance(CLSID_Foo,NULL,CLSCTX_ALL,IID_Foo,(void**)&pf);
hr=CoCreateInstance(CLSID_Foo,NULL,CLSCTX_ALL,IID_Math,(void**)&pm);