为了版本兼容,如何增加接口呢?
怎么处理才能使新增加的接口和老接口都能在添加控件时暴露给开发者呢?
谢谢大家的参与!!

解决方案 »

  1.   

    当希望为组件添加新功能时,应该添加新的接口。
    新的接口【INew】应该包含旧的接口【IOld】中的所有接口函数和你新添加的接口函数。
    修改IDL.
    在实现类中只是想你的新的接口就可以了
    C**: pulic IOld, 
         public INew
    {
       // IOld
       // 旧的接口函数不用修改   // INew
       // 实行新的接口函数
    }
    //----------------------------------------------
    个人之见,请各位高手指正
      

  2.   

    在XXCtrl.h中:
    // 调度映射
    afx_msg void StartRender(LPCTSTR Flie);//你的接口函数。
    然后在。CPP里:
    // 调度映射BEGIN_DISPATCH_MAP(XXCtrl, COleControl)
    DISP_FUNCTION(XXCtrl, "StartRender", StartRender, VT_NULL, VTS_BSTR)
    //注意VT_NULL, VTS_BSTR,自己MSDN下就明白了
    END_DISPATCH_MAP()
    然后你就可以放心的写了:void XXCtrl::StartRender(LPCTSTR Flie)   //注意LPCTSTR
    {
    。。
    }
    这个接口在VB,IE等调用都是没有问题的。
      

  3.   

    谢谢楼上两位!!
    不知道两位是否是用ATL开发的ActiveX控件,而且是否考虑了版本向后兼容?
    添加新的接口后怎样才能暴露给开发人员呢?IDL中怎么修改?
      

  4.   

    直接在IDL中增加新接口或者属性,然后修改对应的版本号