OLE技术专题——第四讲:COM的连接点事件(上)

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
作者: 杨老师


一、前言

  我的 COM 组件运行时产生一个窗口,当用户双击该窗口的时候,我需要通知调用者;
  我的 COM 组件用线程方式下载网络上的一个文件,当我完成任务后,需要通知调用者;
  我的 COM 组件完成一个钟表的功能,当预定时间到达的时候,我需要通知调用者;
  ... ... ... ...
  本回书开始话说 COM 的事件、通知、连接点......这些内容比较多,我分两次(共四回)来介绍。

二、通知的方法
  当程序甲方内部发生了某个事件的时候,需要通知乙方,无非使用几个方法:
 

通知方式 简单说明 评论
直接消息 PostMessage()
PostThreadMessage()
向窗口或线程发个消息 你什么时候执行我就不管啦
SendMessage() 马上执行消息响应函数 不执行完消息处理函数不会返回
SendMessage(WM_COPYDATA...) 发消息的同时,还可以带过去一些自定义的数据 比较常用,所以单独列了出来
间接消息 InvalidateRect()
SetTimer()
......
被调用的函数会发送相关的一些消息 这样的函数太多了
回调函数 GetOpenFileName()...... 当用户改变文件选择的时候,执行回调函数 嗨!哥们,这是我的电话,有事就言语一声。

  在 COM 的时代,以上这些方法就基本上不能玩转了,因为...您想呀 COM 组件是运行在分布式环境中的,地球另一边计算机上运行的组件,怎么可能给你的窗口发消息那?当然不能!(但话又说回来,对于 ActiveX 这样只能在本地运行的组件,当然也可以发

OLECOM,再到ActiveX,再到.NET 微软从OLECOM,再到ActiveX,再到.NET的发展历史的简介 阅读详情

相关推荐

OLE技术专题——第二:复合文件

复合文件,是微软COM组件思想的起源。 一、其产生背景 文件的存储结构通常有三种格式:    1。非结构化文件:     如:打开记事本程序,输入了一篇文章后,保存所得的文件。 2。标准结构化文件:     如:打开电子表格程序,输入一个班的学生姓名和考试成绩,保存所得的文件。    3。自定义结构化文件     在我们写的程序中,需要把特定的数据按照一定的结构和顺序写到文件中保存。比如 *.bm

feijj2002_的专栏 3602

VC++ COM组件回调(EXE组件回调客户端)

VC++ COM组件回调客户端(EXE组件回调客户端,服务端非DLL形式),通过客户端触发调用服务端,服务端回调客户端,IDE为VS2013 update5

VC++ ATL连接点编程实战:从COM事件模型到可运行示例

在组件化软件开发中,事件驱动架构是实现松耦合、高内聚的关键技术。其核心原理是观察者模式,允许对象在状态变化时主动通知其他依赖对象,而非被动轮询。这一机制在Windows平台的COMComponent Object Model)技术中,通过连接点(Connection Point)标准实现,解决了单向接口调用的局限性。ATL(Active Template Library)作为COM开发的强力助手,通过模板类封装了连接点的复杂实现细节,将开发者从繁琐的接口指针管理和引用计数中解放出来,显著提升了开发效率与代

weixin_34175509的博客 328

COM组件设计与应用(十三)---事件和通知(VC6.0)

COM组件设计与应用(十三) 事件和通知(VC6.0) 作者:杨老师 下载源代码 一、前言   我的 COM 组件运行时产生一个窗口,当用户双击该窗口的时候,我需要通知调用者;   我的 COM 组件用线程方式下载网络上的一个文件,当我完成任务后,需要通知调用者;   我的 COM

snail8384的专栏 780

COM连接点 - 最简单的例子 (1)

先创建一个COM接口,IMyCar

zj510的专栏 1万+

COM 连接点事件

开发环境:VC++6.0测试环境:windows 2000 这篇文章是Alex C. Punnen.所写,在http://www.codeguru.com/上发表的,在此本人将其翻译成中文,和大家共享。 (注:本人翻译不当之处,还请各位多指正和谅解)运行环境:Windows 2000 Server, Microsoft Visual C++ 6此篇文章将用一个清晰的例子来描述COM中连

步入什么 3922

COM连接点事件event

COM 中的典型方案是让客户端对象实例化服务器对象,然后调用这些对象。然而,没有一种特殊机制的话,这些服务器对象将很难转向并回调到客户端对象。COM 连接点便提供了这种特殊机制,实现了服务器和客户端之间的双向通信。使用连接点,服务器能够在服务器上发生某些事件时调用客户端。 有了连接点,服务器可通过定义一个接口来指定它能够引发的事件。服务器上引发事件时,要采取操作的客户端会向服务器

丸子头的专栏 4623

创建线程 接收 com组件的回调函数_ES之异步编程和回调

JavaScript默认是同步的,而且是单线程的。所以js代码无法创建新线程,不能并行执行。我们一起来ES中怎么编写异步执行代码。编程语言中的异步特性计算机在设计上是异步的。异步意味着可以执行多任务。在我们的计算机中,每个程序都运行在一个特定的时间段,然后它停止运行,让另一个程序继续执行。这个过程很快,以至于无法注意到,我们认为计算机同时运行许多程序,但这是一种错觉(除了在多处理器机器上)。程序内...

weixin_39801714的博客 260

OLE技术专题——第四COM连接点事件(中)

IntroductionThis article is intended to explain the concept behind connection points with a clear practical example, which will demonstrate an in-process COM server and an MFC client that uses the ser

feijj2002_的专栏 2563

OLE技术专题——COM连接点事件(下)

Understanding COM Event HandlingBy Lim Bio Liong Change of Article TitlePlease note that I have changed the title of this article from "TEventHandler - A C++ COM Event Handler For IDispatch-Based Even

feijj2002_的专栏 3344

OLE技术专题——第一:OLE概述

引言-概述OLE/ActiveX/COM技术是MS的核心应用技术,只有彻底洞察其理论精髓,才能以不变应万变。我们首先从OLE谈起。   一、过去的OLE和今天的OLE        作为COM技术前身的OLE,其最初含义是指在程序之间链接和嵌入对象数据(Object Link Embeded)。它提供了建立混合文档的手段(资深Windows 3.X 用户可能记得当初在Word6.0中插入一个图形的

feijj2002_的专栏 4346

OLE技术专题——COM连接点事件(上)(转)

一、前言<br />  我的 COM 组件运行时产生一个窗口,当用户双击该窗口的时候,我需要通知调用者;<br />  我的 COM 组件用线程方式下载网络上的一个文件,当我完成任务后,需要通知调用者;<br />  我的 COM 组件完成一个钟表的功能,当预定时间到达的时候,我需要通知调用者;<br />  ... ... ... ...<br />  本回书开始话说 COM事件、通知、连接点......这些内容比较多,我分两次(共四回)来介绍。<br /><br />二、通知的方法<br />  当

yusongwhu的专栏 1180

理一理COMOLE、ActiveX~~

听了,学了,用了很多COMOLE、ActiveX的技术,但是一直是一团模糊的概念,只知道这三样东西都是一路货色,但是具体有什么区别呢,没有去深究,今天心血来潮,上网查了一些资料,终于有点清楚了~~~ 得到的结论就是:COMOLE、ActiveX的的确确是一路货色!!!虽然说的有些武断,但我只是将人们对COMOLE、ActiveX最广泛的理解表达出来,三者之间还是很大区别的,具体渊源后面

没事可做时,觉得最累! 8071

全面深入学习OLE技术

全面深入学习OLE技术引言(问题的提出)1.如何将同步软件的联系人/日历/任务/邮件等信息导入到微软的OutLook软件中为了解决此问题,就需要用到微软的OLE技术。涉及相关技术有:OLE,OLE Automation,ActiveX,COM技术。本文企图就这些技术解其背景,其历史,其发展变革,其相互关系。一.OLE技术是什么?OLEObject Link Embed

2023跟着小虎玩着去软考 7611

OLE、ActiveX、COM、ATL联系与区别

COM技术

zhoufei95的博客 1785

ActiveX、OLECOM介绍

ActiveX、OLECOM介绍熟悉面向对象编程和网络编程的人一定对ActiveX、OLECOM/DCOM这些概念不会陌生,但是它们之间究竟是什么样的关系,对许多人们还是比较模糊的。在具体介绍它们的关系之间,我们还是先明确组件(Component)和对象(Object)之间的区别。组件是一个可重用的模块,它是由一组处理过程、数据封装和用户接口组成的业务对象(Rules Object)。组件看起

ArduousBonze的专栏 1256

深入理解COMOLE和ActiveX技术

本文深入探讨了COMOLE和ActiveX技术的历史、原理和应用。从早期的剪贴板和DDE到现代的COM规范,这些技术在Windows编程中扮演了重要角色。文章详细解释了ActiveX控件的工作方式、接口定义、客户端与服务器的关系,以及进程内和进程外对象的区别。同时,分析了在使用LabVIEW开发时,如何处理ActiveX控件和COM对象,包括早期绑定和晚期绑定的区别以及遇到的挑战。

weixin_35639680的博客 710
上一篇: 新中国人民币大全(转51windows.Net)
下一篇: OLE技术专题——第四讲:COM连接点事件(中)
feijj2002_
博客等级 码龄22年 138粉丝 215原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值