双向通信机制 (客户与可连接对象的关系) 客户把接收器的接 客户 口指针传给对象 少O 接收器 可连接对象 可连接对象调用接 收器的接口成员
! "#
两个概念 入接口 incoming interface 组件对象实现入接口,客户通过入接口调用对象提供 的功能 客户和组件都需要知道接口的类型信息 出接口( outgoing interface 客户端提供的COM对象实现出接口 组件端的对象通过出接口调用客户提供的功能 组件提供接口类型信息,客户实现该接口 类似于回调( (callback),但是要复杂和灵活得多
! ! " #$% &'()*+,-
出接口 ·类型信息由组件一方提供 客户提供出接口的实现,实现出接口的COM对 象被称为接收器对象(sink) sink没有 CLSID,也不需要类厂 也是一个COM接口,有ID 每个成员函数代表了: 事件 event 通知 notification 请求 request
./ 012 !"#$%&' 3 45
源对象or可连接对象 Connectable object, source 普通的COM对象,支持一个或者多个出 接 提供出接口的类型信息 通过 [Provide classInfol2接口 通过 typelib
$% &'()*+,)- . /0- .123 () () !"