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)】
  • 相关阅读:
    selenium自动化测试资源整理
    python获取目录下文件夹名称
    Appium-测试失败后屏幕截图的
    appium 多个设备同时执行
    七 Appium常用方法介绍
    六 APPIUM Android 定位方式
    Python运维开发基础08-文件基础
    Python运维开发基础09-函数基础
    Python运维开发基础06-语法基础
    Python运维开发基础07-文件基础
  • 原文地址:https://www.cnblogs.com/xieyunc/p/2793713.html
Copyright © 2011-2022 走看看