变主动为被动-出接口(OutBound interface)

      COM 编程类似客户端和服务器端的两层结构, COM 所建立的是一个软件模块与另一个软件模块之间 的链接, 当这种链接建立之后, 模块之间就可以通过被称之为 Interface“接口 ”的机制来进行通信。

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

处于被动状态, 通过自身暴露给客户的接口监听客户的请求, 一旦接收到客户的请求便做出反应, 这些反应的“幕后“,也就是代码是被屏蔽掉的,我们是看不到这些接口内的方法是如何实现的。这样的接口称为入接口 InBoundInterface,但是对于一个全面交互过程来说, 这样的单向通信往往是不能满足实际的
需要, 组件对象也要主动与客户进行通信, 因此, 与入接口相对应, 对象也可以提供出接口 OutBound

interface, 对象通过这些出接口与客户进行通信。

       之所以把这些接口称为出接口, 其原因在于这些接口并不由 COM 服务器端的对象实现, 而是由客户程序自己来实现, 客户实现这些接口, 服务器端调用此接口的成员函数, 即调用了客户自定义的函数, 这时组件对象变成了客户端的客户。也就是说出接口的实现是由我们自己实现,而被服务器调用, 这样的接口,我们往往称之为事件接口,这些接口里面定义了一些如 OnMouseUp, OnMouseMove 等函数,当相应事件发生的时候,由服务器去执行这个事件里面的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值