class CMyUi:public IDocHostUIHandler
在网上看到一段程序,其中定义了一个CMyUi类,但是这个类是从一个COM接口继承来的。我怎么才可以定义一个这样的类?

解决方案 »

  1.   

    实现接口中的所有函数,嗯,还有IUnknown的三个函数。
      

  2.   

    你的意思是必须自己写对吗?不能用VC++SDK 生成。
      

  3.   

    如果你理解COM, 理解COM的实现, 你就不会问这种傻问题.你应该知道, C++ 里, 继承COM接口是接口实现的常用方式. 
      

  4.   

    在 C++ 里, COM 接口被定义成一个纯虚类. 只有虚函数表的类. 但他仍然是类, 就像普通的继承方法一样继承就可以. 这些类的声明, 你包含 ole2.h 头文件, 基本的COM 接口就差不多了. 通常你的接口会继承 IUnknown, 或 IDispatch ,然后再继承自己的接口, 实现自己的接口. 自己重头写是很慢的, VC 的ATL, MFC 都对COM/ACTIVEX/OLE 的使用开发有很多支持. 当然, 明白底层也很重要的. 你要找书看, 推荐看 <<COM 本质论>>. 然后看 ATL 相关的, 如<<ATL深入解析>>等.
      

  5.   

    是不是需要从相应的TLB文件创建这个类啊?