Microsoft recently announced that Internet Explorer (the product) will no longer come with Windows, but Internet Explorer (the programming api) will continue to work:
As announced today, Microsoft Edge with IE mode is officially replacing the Internet Explorer 11 desktop application on Windows 10. As a result, the Internet Explorer 11 desktop application will go out of support and be retired on June 15, 2022 for certain versions of Windows 10.
Out of scope at the time of this announcement (unaffected):
- Internet Explorer mode in Microsoft Edge
- Internet Explorer platform (MSHTML/Trident), including WebOC
- Internet Explorer 11 desktop application on:
- Windows 8.1
- Windows 7 Extended Security Updates (ESU)
- Windows 10 Server SAC (all versions)
- Windows 10 IoT Long-Term Servicing Channel (LTSC) (all versions)
- Windows 10 Server LTSC (all versions)
- Windows 10 client LTSC (all versions)
What is the MSHTML (Trident) engine? How does that relate to IE mode?
The MSHTML (Trident) engine is the underlying platform for Internet Explorer 11. This is the same engine used by IE mode and it will continue to be supported (in other words, unaffected by this announcement). WebOC will also continue to be supported. If you have a custom or third-party app that relies on the MSHTML platform, you can expect it to continue to work.
(emphasis mine)
Developers using code
We have code, going back decades, that:
- given some HTML
string
in memory - hand that document to an Internet Explorer object
- and make Internet Explorer (separate process) visible
In other words:
void SpawnIEWithSource(string szSourceHTML)
{
IWebBrowser ie = (IWebBrowser)CreateComObject(CLASS_InternetExplorer);
ie.Navigate2("about:blank");
ie.Document.Write(szSourceHtml);
ie.Document.Close;
ie.Visible = True;
}
IUnknown CreateComObject(Guid clsid)
{
IUnknown result;
CoCreateInstance(clsid, null, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER,
UuidOf(IUnknown), ref result);
return result;
}
- Pros:
- Cons:
- hard-codes the use of Internet Explorer, rather than the user's preferred browser
So will this continue to work? Or will this update break applications?
Bonus Question
Of course, using the user's preferred browser would be ideal. Unfortunately it's not possible. But just in case, we can ask:
- How to display HTML in the user's "default browser" without creating a temporary file?