科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件COM编程技术基础之二

COM编程技术基础之二

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

详细介绍COM接口在COM组件中的作用以及实现COM接口的方法

作者:中国电波传播研究所青岛分所郎锐 来源:yesky 2007年10月20日

关键字: COM 编程技术

  • 评论
  • 分享微博
  • 分享邮件
COM接口与COM组件

  COM接口是COM规范中最重要的部分,COM规范的核心内容就是对接口的定义,甚至可以说“在COM中接口就是一切”。组件与组件之间、组件与客户之间都要通过接口进行交互。接口成员函数将负责为客户或其他组件提供服务。与标识COM对象的CLSID类似,每一个COM接口也使用一个GUID来进行标识,该标识也被称为IID(interface identifier,接口标识符)。

  COM接口实际限定了组件与使用该组件的客户程序或其他组件所能进行的交互方式,任何一个具备相同接口的组件都可对此组件进行相对于其他组件透明的替换。只要接口不发生变化,就可以在不影响整个由组件构成的系统的情况下自由的更换组件。通常在程序设计阶段需要将接口设计的尽可能完美,以减少在开发阶段对COM接口的更改。尽管如此,在实际应用中是很难做到这一点的,往往需要在现有接口基础上对其做进一步的发展。与C++中对类的继承有些类似,对COM接口的发展也可以通过接口继承来实现。但是COM接口的继承只能是单继承而不允许从多个基接口进行派生,而且派生接口只是继承了对基接口成员函数的说明而没有继承其实现。

interface IX // IX接口
{
 virtual void __stdcall Func1() = 0;
 virtual void __stdcall Func2() = 0;
};

interface IY // IY接口
{
 virtual void __stdcall Func3() = 0;
 virtual void __stdcall Func4() = 0;
};

class CObjectA // 组件A
{
 public:
  // 抽象基类IX的实现
  virtual void Func1() {cout<<"Func1"<<endl;};
  virtual void Func2() {cout<<"Func2"<<endl;};
  // 抽象基类IY的实现
  virtual void Func3() {cout<<"Func3"<<endl;};
  virtual void Func4() {cout<<"Func4"<<endl;};
};
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章