• 如何用Delphi调用由VC开发的ATL/COM服务,并响应其事件


    现在有一个由VC开发的ATL/COM服务(EXE或DLL形式均可),该服务提供了一个方法及一个事件。
    现欲使用Delphi来调用该服务,方法就已经可以正常使用了,但是不知道怎样响应事件(使用VB及VC的调用都已经可以正常使用该服务的方法及事件了)。

    服务提供的方法及事件如下(VC中的定义):
    方法:
      SetData(LONG iData);

    事件:
      ReceiveData(LONG iData);
    -------------------------------------------------------------------------------------------
    如果 COM Server 可以被 Delphi 自动封装就很简单:
     Component | Import ActiveX Control ... |选择 或 Add | Install ...

     Project | Import Type Libray ...|选择 或 Add | Install ...
    然后
     当普通控件用,直接挂接事件。

    如果不能:
     VB及VC都可以接入事件,那应该是个连接点。
     1. 实现这个连接点所关联的回调接口;
     2. 获得 COM Server 实例;
     3. 通过 QueryInterface(IConnectionPointContainer) 获得连接容器,然后挂接实例(回调接口的实例)
     ComObj 单元中有 InterfaceConnect/InterfaceDisconnect 来完成上述 3 过程。
    ------------------------------------------------------------------------------------------------------------
     已经做好了,就是使用Delphi的import type library的add/install功能,直接就可以响应事件了。

    谢祥选【小宇飞刀(xieyunc)】
  • 相关阅读:
    匹配下拉控件
    验证视图状态 MAC 失败
    打开网页要输入用户名和密码的解决方案!
    ASP.NET网站安装部署参考总结!
    IOS开发中常量的处理
    typedef与define的区别
    OC的单例模式
    js for循环中传入动态参数
    javascript array map方法
    javascript 得到兄弟节点的方法,jquery妙用
  • 原文地址:https://www.cnblogs.com/xieyunc/p/9126716.html
Copyright © 2020-2023  润新知