antEdgeWebBrowser control



For years the ActiveX WebBrowser control based on Internet Explorer (trident) has been used by a lot of applications as an embedded control.
By using that control it was possible to extend your application functionality. Sadly Microsoft has declared the trident based control as legacy and is no longer continuing development on it.

Another control has come in its place, based on Chromium, called MS Edge WebView2.
Microsoft provides bindings for a variety of languages and even added a com interface, but not all languages can directly consume that interface.

This is why Antwise developed an ActiveX wrapper for the WebView2 control so that it is easy to use from any language that is able to use ActiveX controls.

We are now making available a first Tech Preview release so that you can test how WebView2 works for you.
The Tech Preview release has a hardwired end date at July 29th 2021, there will be a Tech Preview 2 release before that time and we're hoping that the official release is shortly after that.


With the old Microsoft WebBrowser control you could access and manipulate the html document DOM interface via an automation interface commonly referred to as mshtml. This was very powerful.
The WebView2 control does not offer a direct way to interact with the DOM interface, however it does offer a javascript bridge through which you can do most of what you formerly could do via mshtml.

We do expose the javascript interface via ExecuteScript, but as it is an asynchronous interface and everything it returns is done via JSON, it sometimes is a bit confusing to use. As an attempt to simplify interacting with the html document hosted in your control, we added the EdgeWebView2Document automation class that lets you do some of the more standard things:

  1. Request the html of the page currently rendered.
  2. Read the value of any html element by name or id.
  3. Write the value of any html element by name or id.
  4. Submit a form by id
There's no doubt that this will be extended upon so that the amount of embedded javascript you will need to write can be kept to a minimum.