博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可连接点对象及示例(一)
阅读量:2397 次
发布时间:2019-05-10

本文共 1074 字,大约阅读时间需要 3 分钟。

转载请标明是引用于

参考书本:

《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)

 

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

 

你可能感兴趣的文章
一个简单的linux下原生socket的tcp程序及其修改
查看>>
JSP的入门简介
查看>>
JSP中的基本语法和3指令,6动作,9内置对象
查看>>
JSP的6个动作
查看>>
JAVA中的数据类型和方法重载
查看>>
常见面试题——斐波纳挈数列
查看>>
我的第一篇hibernate框架博客
查看>>
java中File类
查看>>
java中File类创建和删除功能
查看>>
java中File类的判断功能
查看>>
java中File类的获取功能和修改名字功能
查看>>
java中File类的其它获取功能
查看>>
java中的字符流
查看>>
java中的字节流
查看>>
java中IO流中的标准输入输出流
查看>>
java中IO流中的 打印流
查看>>
java中IO流中的对象操作流
查看>>
java中IO流中的对象操作流(2)——解决对象输入流读取对象出现异常的问题
查看>>
java中IO流Properties集合
查看>>
java中IO流字符流中的编码
查看>>