zoukankan      html  css  js  c++  java
  • 如何用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)】
  • 相关阅读:
    一键安装vsftpd服务并开通ftp账户
    mysql 利用新建从库 使用 start slave until 恢复方法
    使用ThinBackup插件备份 jenkins
    docker 日志清理
    mysql5.7 MGR配置
    mysql5.7 开启增强半同步复制
    网站qps计算方法
    mysql不支持emoji表情的问题的解决方法
    网络安全
    Cronjob 简介
  • 原文地址:https://www.cnblogs.com/xieyunc/p/9126716.html
Copyright © 2011-2022 走看看