加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 什么是IconnectionPoint和EventHandling

发布时间:2020-12-16 09:29:29 所属栏目:百科 来源:网络整理
导读:试图理解什么是IConnectionPoint以及它如何连接到IConnectionPointContainer,IEnumConnectionPoints,IEnumConnections和EventHandling. 阅读MSDN和CodeProject中的artcicles,它解释了其他方法,如:QueryInterface()和其他方法. 我无法弄清楚所有这些事情(ICo
试图理解什么是IConnectionPoint以及它如何连接到IConnectionPointContainer,IEnumConnectionPoints,IEnumConnections和EventHandling.

阅读MSDN和CodeProject中的artcicles,它解释了其他方法,如:QueryInterface()和其他方法.

我无法弄清楚所有这些事情(IConnectionPointContainer,IEnumConnections)是如何相互关联以及事件处理的.

我只想创建一个simpleClient,它将触发COM对象中的事件.

如果有任何文章或代码片段可以解释事物如何通过简单和小块代码相互关联将是有帮助的.

值得一提的是我最近开始在C开发,一个初学者.

编辑@sharptooth

对于Line“通常,您的客户端将接收事件,COM对象将触发这些事件.”

从许多文章中,我理解的是当我们在那时使用连接点时,
客户端公开服务器使用的一组方法.

我刚刚从TechRepublich:概述了文章的一部分

客户端服务器与接收源

因此,在标准客户端 – 服务器系统中使用COM进行正常编程和使用连接点之间的主要区别在于,在标准客户端 – 服务器情况下,服务器公开客户端使用的方法列表,并且在连接点情况下,客户端公开服务器使用的一组方法.

解决方法

看起来你错了大图.通常,COM对象将触发这些事件.为了实现这一点,客户端请求(QueryInterface())IConnectionPointContainer接口,调用IConnectionPointContainer :: FindConnectionPoint()和IConnectionPoint :: Advise()并将指针传递给它自己或那里的一些子对象.

客户端必须实现一些事件接口(其中一个GUID传递到IConnectionPointContainer :: FindConnectionPoint()).订阅(建议)后,客户端将接收来自COM服务器的调用 – 事件.

通常,COM服务器会定期执行某些操作并决定通知客户端(例如,用户在ActiveX控件中移动鼠标) – 它只是获取一个指向事件接收器的指针数组,并在该接口上调用它想要的方法.

COM事件实际上是回调的实现.与在C(或C或任何其他支持函数指针或接口的语言)中使用回调的方式相同,您可以在COM中使用事件.是的,你是对的,当服务器触发事件??时,客户端实际上充当对事件作出反应的服务器.这是一个回调场景 – 其他代码调用您的功能.在这种情况下,服务器会调用您的事件接口的实现.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读