可连接点对象及示例(一)

转载请标明是引用于 http://blog.csdn.net/chenyujing1234

参考书本:

《EVC高级编程及其应用开发》

 

 

客户是主动的,而组件是被动的,组件通过自身暴露给客户的接口来监听客户请求,一旦接收到客户请求便宜做出反应,

这样的接口称为“入接口”(Incoming Interface).

与入接口相对应,对象也可以提供"出接口",对象通过这些出接口与客户进行通讯。出接口包含一组成员函数,每个函数代表一个通知。

如果一个COM对象支持一个或多个接口,那么我们称这样的对象为可连接对象(Connectable Object).

出接口与入接口的区别:

入接口是由COM对象本身来实现的,而出接口是由客户程序来祥瑞的,客户程序实现这些接口,并把接口指指告诉对象,以后对象便利用此接口与客户程序通信。

在客户程序方,实现这些接口的对象称为"接收器"(Sink).

整个通讯过程涉及到三个独立又相关的部分:客户、对象和接收器。

以下是它们的关系:

1、可连接对象的基本结构

可连接对象可以通过一个或多个出接口与客户端通讯。COM中约定可连接对象必须实现一个IConnectionPoointCaotiner接口,用于管理所有的出接口。

每个出接口对应一个连接点对象,而连接点对象实现了IConnectionPoint接口,客户可通过IConnectionPoint接口与连接对象建立连接。

2、客户程序与可连接对象的关系。

连接器也是一个COM对象,它位于客户程序内部,并不需要通过COM库来创建,因此接收器不需要CLSID标识。

客户与可连接对象建立连接的过程如下:

(1)调用pUnk->QueryInterface3(IID_IConnectionPointContainer,&pConnectionPointContainer),得到连接点容器接口

(2)调用pConnectionPointContainer->FindConnectionPoint(IID_IsomeEventSet, pConnectionPoint)查找指定的连接点对象

(3)调用pConnectionpoint->Advise(pSomoeEventSet, &dwCookie)建立与接收器的连接

(4)当客户端要取消连接时,需要先调用pConnectionPoint->Unadvise(dwCookie)

 

=====================================================================================================

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值