Delphi 中不需要建立ActiveX Library,不需要编辑TLB也能创建一个自动化对象。

秘密就在于$METHODINFO这个没有文档描述的编译指令。

首先我们定义一个TScriptableObject,继承自TObjectDispatch (ObjComAuto.pas)

  {$METHODINFO ON}
  TScriptableObject = class(TObjectDispatch)
  public
    constructor Create;
  end;
  {$METHODINFO OFF}

....

{ TScriptableObject }

constructor TScriptableObject.Create;
begin
  inherited Create(Self, False);
end;

因此, TScriptableObject 便是一个具备了特殊能力的一个类,这个类是具有IDispatch接口的类, 并且继承自TScriptableObject 的任何子类的Public & Published方法都能够从GetIDsOfNames检索出来并且可以Invoke。

这样创建出的TScriptableObject的子类,就是我们所需要的自动化对象,这个对象我们可以用来作为WebBrowser的IDocHostUIHandler接口的GetExternal所需的IDispatch对象

相关文章:

  • 2021-09-06
  • 2022-12-23
  • 2023-01-27
  • 2022-12-23
  • 2021-12-30
  • 2021-11-30
  • 2022-12-23
猜你喜欢
  • 2022-01-26
  • 2021-04-16
  • 2022-01-12
  • 2022-01-17
  • 2022-01-07
相关资源
相似解决方案