接口继承的问题,救命,在线等待

xiaosun 2002-11-16 04:44:49
如何在一个新建的com组件中使用在另一个组件中声明的接口?比如说
IPlugIn继承于IDispatch,声明在组件A中
然后IPlugIn2想继承于IPlugIn,但是要在组件B中实现
...全文
28 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xiaosun 2002-11-17
各位,问题解决了:我正在整理文档,谢谢大家。
其实是这样的,我的想法是做一个服务插件的接口,这样在一个固定的
应用框架中可以动态加载所有实现此插件接口的com 对象,不用编译框架,就像IE的ExplorerBar的实现一样。但是,此服务接口是非常简单的,而每一个实现组件既要实现此服务接口,又要实现其本身的功能,则势必扩展接口,就像
IWebBrowser2继承于IWebBrowserApp,而IWebBrowserApp又继承于IWebBrowser, IWebBrowser继承于IDispatch一样。
注意,我要实现的服务插件是多个,而服务插件接口应该是重用的,不应该每次都写一遍。所以,才有了如上的想法和问题。
这应该并不违背接口不变性的原则!
欢迎与我交流。交流使人进步。
sunshineormer@msn.com

  • 打赏
  • 举报
回复
GoogleGeek 2002-11-16
你的想法不符合接口不变性的原则!
----------------------
如果不怕麻烦的话,可以重写IPlugIn2的idl文件!
  • 打赏
  • 举报
回复
GoogleGeek 2002-11-16
实际上你直接使用就行了
例如:
ComponentB 使用了ComponentA部分功能!
你直接将ComponentB看成ComponentA的client 不就行了?
  • 打赏
  • 举报
回复
GoogleGeek 2002-11-16
有两种方法:
聚合或者包容!
------------
包容更适合你的要求!
  • 打赏
  • 举报
回复
ccaommao 2002-11-16
我也初学,不是有多继承吗?一样来一个class A :public B,IDispatch
大虾莫笑:)
  • 打赏
  • 举报
回复
发帖
ATL

3233

社区成员

ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
帖子事件
创建了帖子
2002-11-16 04:44
社区公告
暂无公告