用这个是可以的。CoCreateInstance(CLSID_DriverInfo,0,CLSCTX_ALL,IID_IDriverInfo,(void**)pDI );

解决方案 »

  1.   

    //还有就是为什么服务器端不允许实例化一个新的DriverInfo?为什么要做此限制?这个错误,我想可能是你没有完全实现IDriverInfo的所有接口函数。
      

  2.   

    不要用new,请用:
    HRESULT __hr = CComObject(CDrivereInfo)::CreateInstance(*pDI);之所以出出抽象类的问题,是因为CDrivereInfo并没实现IUnknow接口。这个接口是在CComObject等类中实现的。
      

  3.   

    无论什么情况下抽象类都不能实例化,如果提示这个问题的话,就请你看一下CDrivereInfo中及基类中是不是有没有实现的纯虚函数,根据你讲的你肯定没实现Queryinterface,AddRef,Release等。
      

  4.   

    更正:
    HRESULT __hr = CComObject<CDrivereInfo>::CreateInstance(*pDI);补充:最好不要用new来生成COM对象。