更新后的 TWebBrowser 现在从一开始就实现了 IDocUIHandler,我怎样才能继续使用我的自定义实现?

Updated TWebBrowser now implements IDocUIHandler from the start, how can I keep using my custom implementation?

从 Delphi 10.0 Seattle 开始,Embarcadero 更改了 TWebBrowser 控件的实现:

西雅图前:TWebBrowser = class(TOleControl)

西雅图+:TWebBrowser = class(TOleControl, IDocHostUIHandler, IDocHostShowUI, IOleCommandTarget)

我有一些旧代码 运行,我在其中实现了一个 class,它可以注册为一个 site/host 的客户端 site/host,我在其中提供了我自己实现的 TWebBrowser IDocHostUIHandler 界面。

因为 TWebBrowser 现在从一开始就实现了这些(并保持它们的私有性)并且据我所知很难下降 - 我如何着手获得新的 TWebBrowser要重新注册的组件 在哪里可以找到 IDocHostUIHandler 的实现?

您可以继承 TWebBrowser 并像以前一样提供您自己的界面定义,如下所示:

Type
  TMyWebBrower = class( TWebBrowser, IDocHostUIHandler )
  ...
  end;

这告诉 Delphi 您正在重新实现 IDocHostUIHandler 接口。您必须提供接口的所有功能,但您已经拥有了。