出接口(Outgoing Interface)与入接口(Incoming Interface)

COM所建立的是一个软件模块与另一个软件模块之间的链接, 当这种链接建立之后, 模块之间就可以通过被称之为 Interface "接口" 的机制来进行通信

在绝大部分情况下, 客户应用程序与组件的通信过程是单向的, 客户创建组件对象, 然后客户通过接口调用对象所提供的功能, 在适当的时候再把对象释放掉 。 

在这种交互过程中, 客户总是主动的, 而组件总是处于被动状态, 通过自身暴露给客户的接口监听, 客户的请求, 一旦接收到客户的请求便做出反应 。这样的接口称为入接口incoming interface。

对于一个全面交互过程来说, 这样的单向通信往往是不能满足实际的需要, 组件对象也要主动与客户进行通信。

因此, 与入接口相对应, 对象也可以提供出接口outgoing interface, 也叫回调接口, 对象通过这些出接口与客户进行通信 。之所以把这些接口称为出接口, 其原因在于这些接口并不由COM服务器端的对象实现, 而是由客户程序来实现, 客户实现这些接口, 并把接口指针通过一定的手段传给服务器,以后服务器端就利用此接口指针与客户进行通信,服务器端调用此接口的成员函数, 即调用了客户自定义的函数(这便是回调之意),这时组件对象变成了客户端的客户。

可见在com规范中,com组件对象提供服务客户调用服务,这种对象与客户之间的关系是相对的。 

猜你喜欢

转载自blog.csdn.net/RicardoMTan/article/details/82627841
今日推荐