zoukankan      html  css  js  c++  java
  • inbound and outbound interface of COM

        在arcengine的对象模型图学习时遇到一个 Inbound 和outbound interface区别的问题,对此进行了一定的认识,希望能够抛砖引玉:
        遇到这个问题,多半是没有学习过com编程的人,如需深入学习,请学习c++的com方面的知识!

        具体区别如下:

        COM 所建立的是一个软件模块与另一个软件模块之间的链接, 当这种链接建立之后, 模块之间就可以通过被称之为Interface“接口 ”的机制来进行通信。在绝大部分情况下, 客户应用程序与组件的通信过程是单向的, 客户创建组件对象, 然后客户通过接口调用对象所提供的功能, 在适当的时候再把对象释放掉。在这种交互过程中, 客户总是主动的, 而组件总是处于被动状态, 通过自身暴露给客户的接口监听客户的请求, 一旦接收到客户的请求便做出反应,这样的接口称为入接口incoming interface。对于一个全面交互过程来说, 这样的单向通信往往是不能满足实际的需要, 组件对象也要主动与客户进行通信, 因此, 与入接口相对应, 对象也可以提供出接口outgoing interface 也叫回调接口, 对象通过这些出接口与客户进行通信。之所以把这些接口称为出接口, 其原因在于这些接口并不由 COM服务器端的对象实现, 而是由客户程序来实现, 客户实现这些接口, 并把接口指针通过一定的手段传给服务器, 以后服务器端就利用此接口指针与客户进行通信, 服务器端调用此接口的成员函数, 即调用了客户自定义的函数, 这时组件对象变成了客户端的客户, 可见在 com规范中, com组件对象提供服务客户调用服务, 这种对象与客户之间的关系是相对的。

       

    http://bbs.esrichina-bj.cn/esri/viewthread.php?tid=62821&highlight=inbound%2Binterface

    接 口编程可以认为是b/s架构的,对于入接口,我们在客户端声明一个对象,然后调用接口的方法即可,这些方法是在客户端实现的,我们不用考虑,但是这样的交 互,我们是主动地,还有一类接口就是出接口,方法由我们实现,然后是服务器调用,也就类似回调函数一样,对于事件可以这么认为,因为对于一个事件的操作, 每个人都有不同的实现,因此这个方法不能由服务器实现,否则,就千篇一律的,哈哈,个人见解,看下面的图:


    接口分为两种,即内向接口和外向接口。
    l内向接口(Inbound Interface)是组织COM对象相关的方法和属性,COM对象必须实现所有的接口内容;
    l外向接口(Outbound Interface)是用于组织COM对象相关的事件,开发人员根据需要实现事件接口
     
  • 相关阅读:
    连续时间单位冲激信号δ(t)的基本性质
    数据结构练习
    数据结构练习
    数据结构练习
    使用 matplotlib 绘制带日期的坐标轴
    数据结构练习
    c++ primer 练习10.33_p363
    C++迭代器之'插入迭代器
    C++ 11 Lambda表达式
    《C++ Primer》读书笔记—第十章 泛型算法
  • 原文地址:https://www.cnblogs.com/henyihanwobushi/p/2774904.html
Copyright © 2011-2022 走看看