我有一个控件,如果数据变了,就发出一个数据变化事件,这样VB就可以响应这个事件。
解决方案 »
- Cannot open include file: 'GL/glut.h': No such file or directory
- 我在窗体A声明了一个类对象,怎么在窗体B调用?
- 关于WINSOCK应用的几个疑问。。。新手,望指点
- 异常发生后如何能恢复异常发生之前的状态
- onmousewheel
- 关于BMP文件中RGB数据的放大与缩小,内详,谢谢!
- 创建动态库程序时如何调用其它动态库
- 如何通过代理服务器向ftp服务器上传文件
- 请问 能不能有办法把delphi代码转成C++的 或让VC可以编译
- 关于CString::GetBuffer()
- dll文件能否开线程
- 请教高手:DLL里封装无模式对话框?
2、如果用VC+ATL,而现有的组件没有支持连接点(IConnectionPoint)的话,有点麻烦,需要手动添加。方法(可能比较苯,但我相不到其他更好的方法):新建一个接口,支持IConnectionPoint;实现连接点;然后找出与连接点有关的代码(包括IDL,.H.CPP)手动添加到现有接口中,然后删除新加的接口。或干脆新建一个接口,支持IConnectionPoint,实现,然后实现想提供的所有功能,最后放弃原接口。
1、当你实现了连接点后,系统会生成一段类代码,应该叫CProxy_ISthEvents,其中有一个方法,叫Fire_SthHappened() 。当然这个方法可以有参数。
2、在你需要的时候和地点,调用Fire_SthHappened() 在调用COM的部分(客户端),首先必须“订阅事件”,然后必须实现事件的“响应代码”。即,由于某种原因,系统事件被触发,通知到了客户端“SthHappened”,然后客户端响应。说得比较粗,希望有所帮助。如果写细的话可以是一篇文章,我实在没时间,进度太紧!
可以参考《COM 原理与应用》,潘大虾说的比较清楚。然后再动手!