我看ActiveX支持一个接口是很简单的,但是怎么支持多个接口?
当然,把所有的方法和属性写在一个接口当然也可以的,我是要将不同类型的功能封装在不同的接口中,这样在结构上就会很清晰。比如,绘图的就是一个接口,通讯的就是一个接口,怎么弄?作为COM对象,支持多个接口是当然的,我感觉从知道COM的原理到实际应用还有很长的路要走啊,很多人可能就在这个时候倒下了

解决方案 »

  1.   

    COM 支持多接口,很简单啊. 一般COM都会支持少至2-3个,多至几十个接口.
    一般ActiveX 控根据实现的不同会支持几个到几十个接口不等. 将你需要实现的接口加到继承列表里去,然后 在接口表内导出一个接口定义,然后实现接口的立法就行了.
      

  2.   

    用mfc+odl怎么写?不是普通的COM,是ActiveX,据我所知COleControl的InitializeIIDs只支持2个接口,一个入接口,一个出接口
      

  3.   

    出来 IUnknown, 然后你可以查询其它接口了
      

  4.   

    具体用odl怎么写,反正ClassWizard好像不支持的
      

  5.   

    加入从CCmdTarget派生的类,难道不可以实现多接口么?
      

  6.   

    MFC的COleControl本身就支持好多接口,比如IViewObject、IOleObject
      

  7.   

    这个我知道,但是COleControl的InitializeIIDs只支持2个接口,不知道是什么关系
      

  8.   

    InitializeIIDs是用于初始化控件的自动化和事件接口.你当然还可以实现其他的接口.
      

  9.   

    谢谢你,朋友!!事例描述:
        如果我们建立一个工程,通过 Project->Add to Project ->Compnents and Controls.... ->Registered ActiveX Controls .假如我们添加 Microsoft Agent Control 2.0 这样一个ActiveX的控件, 当我们选择[Insert]的时候,就会出现 Comfirm Classes 这样一个对话框。在其中有很多的复选框,我们可以选者我们在使用这个ActiveX控件的时候,使用哪些的类。问题:如果我们现在建立一个基于MFC(不是ATL)的ActiveX的控件,我们有很多的类可以让用户在使用这个ActiveX控件的时候,一起使用,但是现在的情况是:我们通过向导,建立一个,编译之后,发现在Comfirm Classes对话框中,只出现了,一个类,可以让用户选择,我该如何操作,才能够让我的另外一个类,比如:C朋友Class 出现在Comfirm Classes 这个对话框中间,让用户能够选择使用这个类。
    谢谢,朋友,我在线等待。。