{"id":3657,"date":"2020-01-28T19:53:00","date_gmt":"2020-01-28T17:53:00","guid":{"rendered":"https:\/\/mariusbancila.ro\/blog\/?p=3657"},"modified":"2023-04-05T08:07:08","modified_gmt":"2023-04-05T06:07:08","slug":"using-microsoft-edge-in-a-native-windows-desktop-app-part-1","status":"publish","type":"post","link":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/","title":{"rendered":"Using Microsoft Edge in a native Windows desktop app &#8211; part 1"},"content":{"rendered":"<p class=\"tip-lite\">This article has been updated for the version of WebView2 that requires Microsoft Edge WebView2 Runtime 88.0.705.50 or newer.<\/p>\n<p>Microsoft has replaced its previous IE and Edge browsers with a new version of the Edge browser, based on the Chromium project. The new browser works on Windows 10, Windows 8.x, and Windows 7, as well as macOS, iOS, and Android. If your application display web content, you can use the new Edge browser as the rendering engine. This is made possible through the <a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoft-edge\/hosting\/webview2\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Edge WebView2<\/a> control. In this series, I will show how you can do this in a C++ Windows desktop application.<\/p>\n<p><!-- more --><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3658\" src=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/appscreeshot2.jpg\" alt=\"\" width=\"1088\" height=\"651\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/appscreeshot2.jpg 1088w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/appscreeshot2-300x180.jpg 300w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/appscreeshot2-768x460.jpg 768w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/appscreeshot2-700x419.jpg 700w\" sizes=\"auto, (max-width: 1088px) 100vw, 1088px\" \/><\/p>\n<div class=\"tip-lite\">Articles in this series:<\/p>\n<ul>\n<li>Part 1: Introduction to Edge and WebView2<\/li>\n<li><a href=\"https:\/\/mariusbancila.ro\/blog\/2020\/01\/29\/using-microsoft-edge-in-a-native-windows-desktop-app-part-2\/\">Part 2: Creating a WebView2 component<\/a><\/li>\n<li><a href=\"https:\/\/mariusbancila.ro\/blog\/2020\/01\/30\/using-microsoft-edge-in-a-native-windows-desktop-app-part-3\/\">Part 3: Navigation and other events<\/a><\/li>\n<li><a href=\"https:\/\/mariusbancila.ro\/blog\/2021\/01\/27\/using-microsoft-edge-in-a-native-windows-desktop-app-part-4\/\">Part 4: Performing navigation with custom data and headers<\/a><\/li>\n<li><a title=\"\" href=\"https:\/\/mariusbancila.ro\/blog\/2023\/03\/21\/using-microsoft-edge-in-a-native-windows-desktop-app-part-5\/\" target=\"_blank\" rel=\"noopener\">Part 5: Executing JavaScript code<\/a><\/li>\n<li><a title=\"\" href=\"https:\/\/mariusbancila.ro\/blog\/2023\/04\/05\/using-microsoft-edge-in-a-native-windows-desktop-app-part-6\/\" target=\"_blank\" rel=\"noopener\">Part 6: Printing a web page<\/a><\/li>\n<\/ul>\n<\/div>\n<p>From this series you will learn:<\/p>\n<ul>\n<li>how to add the WebView2 control to your C++ desktop applications<\/li>\n<li>navigate to pages<\/li>\n<li>navigate to pages with customer headers or content<\/li>\n<li>handle browsing events<\/li>\n<li>use the asynchronous programming model of Edge<\/li>\n<li>detect Edge installation<\/li>\n<li>and more&#8230;<\/li>\n<\/ul>\n<h2>Why Microsoft Edge<\/h2>\n<p>Microsoft has deprecated its Internet Explorer browser and replaced it as default browser on Windows 10 with Edge. Although Internet Explorer is still available in order to maintain compatibility with older websites and intranet sites that require ActiveX and other Microsoft legacy web technologies, it is no longer developed. All efforts are focused on Edge, and the new version of Microsoft Edge is based on the Chromium project.<\/p>\n<p>If you are working on existing Windows native applications that display web content or want to create new ones, you should no longer rely on <a href=\"https:\/\/docs.microsoft.com\/en-us\/previous-versions\/windows\/internet-explorer\/ie-developer\/platform-apis\/aa752127(v%3Dvs.85)\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft ActiveX web browser control<\/a>. Using Edge and the WebView2 control is a natural choice because:<\/p>\n<ul>\n<li>Edge it is the default browser for the platform.<\/li>\n<li>WebView2 is the control that Microsoft is building for using Edge.<\/li>\n<li>If you have the Windows automatic updates enabled (and you should) the browser is automatically updated so you do not have to trouble with keeping up with security updates.<\/li>\n<\/ul>\n<h2>How to get the Edge browser<\/h2>\n<p>If you are running on Windows 10, Edge should be updated automatically. Nevertheless, you can download it from <a href=\"https:\/\/www.microsoft.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/www.microsoft.com\/<\/a>. On Windows, it works on version 10, 8, 8.1, and 7.<\/p>\n<p>The new, Chromium-based Edge browser has a new icon. So you know that you have the browser if its icon looks as follows:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3663\" src=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/edge_icon.png\" alt=\"\" width=\"230\" height=\"153\" \/><\/p>\n<p>You can check the version of the browser if you go the Edge menu &gt; Help and feedback &gt; About Microsoft Edge. The minimum version that works is <strong>82.0.488.0<\/strong>.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-3752\" src=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/edge_about.png\" alt=\"\" width=\"561\" height=\"260\" srcset=\"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/edge_about.png 561w, https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/edge_about-300x139.png 300w\" sizes=\"auto, (max-width: 561px) 100vw, 561px\" \/><\/p>\n<p>You can also use preview builds of the Microsoft Edge browser by using one of its <a href=\"https:\/\/www.microsoftedgeinsider.com\/en-us\/\" target=\"_blank\" rel=\"noopener noreferrer\">insider channels<\/a>:<\/p>\n<ul>\n<li>Beta channel &#8211; major stable updates every 6 weeks<\/li>\n<li>Dev channel &#8211; weekly updates that have been previously tested by the Edge team<\/li>\n<li>Canary channel &#8211; updated daily<\/li>\n<\/ul>\n<p>For development purposes, you can use any Insider (non-stable) Microsoft Edge (Chromium) browser channel. However, for production, you must use the WebView2 runtime. The WebView2 control is not available in the stable Edge installation and you should not rely on insider channel on production machines.<\/p>\n<h2>Why WebView2 Runtime<\/h2>\n<p>If you build apps that use the WebView2 component you need to distribute it with your application. The best way to do so is using the Edge WebView2 evergreen runtime. The runtime is a modified version of the Chromium-based Edge intended and tested for apps. Only one installation of the runtime is needed for all apps on the device.<\/p>\n<p>The reason for preferring to target the runtime include the following:<\/p>\n<ul>\n<li>Does not depend on the Edge browser being installed on the machine, or a particular version of it.<\/li>\n<li>Updates automatically without additional effort from you.<\/li>\n<li>It is available to target Win32, WPF, WinForms, and WinUI3 applications (the latter in preview stage).<\/li>\n<li>In the future, it will be shipped with Windows.<\/li>\n<\/ul>\n<h2>How to get the WebView2 runtime<\/h2>\n<p>The runtime is available for download <a href=\"https:\/\/developer.microsoft.com\/en-us\/microsoft-edge\/webview2\/\" target=\"_blank\" rel=\"noopener noreferrer\">here<\/a>. You can find both evergreen standalone installers for x86\/x64\/ARM64 that can be deployed with your app and installed in an offline environment, and an evergreen bootstrapper. This is a small installer that downloads the Evergreen Runtime matching device architecture and installs it locally.<\/p>\n<p>You can learn more about the distribution options in this article: .<\/p>\n<p>For development, the WebView2 control is available as a <a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Web.WebView2\" target=\"_blank\" rel=\"noopener noreferrer\">NuGet package<\/a>. You can find more information about releases in the <a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoft-edge\/hosting\/webview2\/ReleaseNotes\" target=\"_blank\" rel=\"noopener noreferrer\">WebView2 SDK release notes<\/a>.<\/p>\n<h2>Prerequisites for the demo app<\/h2>\n<p>In order to develop, build, and run the demo app in this series, you will need:<\/p>\n<ul>\n<li>Microsoft Edge WebView2 Evergreen Runtime, version 88.0.705.50 or newer.<\/li>\n<li>Visual Studio 2015 or later with the <em>Desktop development with C++<\/em> workload and the MFC framework installed<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Web.WebView2\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft.Web.WebView2<\/a> NuGet package<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.Windows.ImplementationLibrary\/\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft.Windows.ImplementationLibrary<\/a> NuGet package<\/li>\n<\/ul>\n<h2>Documentation<\/h2>\n<p>You can read more about Edge and the WebView2 control from the following resources:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoft-edge\/hosting\/webview2\" target=\"_blank\" rel=\"noopener noreferrer\">Microsoft Edge WebView2 (developer preview)<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoft-edge\/hosting\/webview2\/gettingstarted\" target=\"_blank\" rel=\"noopener noreferrer\">Getting Started with WebView2 (developer preview)<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoft-edge\/hosting\/webview2\/reference-webview2\" target=\"_blank\" rel=\"noopener noreferrer\">WebView2 reference API<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/MicrosoftEdge\/WebView2Samples\/tree\/master\/WebView2APISample\" target=\"_blank\" rel=\"noopener noreferrer\">WebView2 API Sample<\/a> &#8211; hybrid application built with the Microsoft Edge WebView2 control<\/li>\n<li><a href=\"https:\/\/github.com\/MicrosoftEdge\/WebView2Browser\" target=\"_blank\" rel=\"noopener noreferrer\">WebView2Browser<\/a> &#8211; a web browser built with the Microsoft Edge WebView2 control<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Earlier this month, Microsoft has released the new version of its Edge browser, based on the Chromium project. The new browser works on Windows 10, Windows 8.x, and Windows 7, as well as macOS, iOS, and Android. If your application display web content, you can use the new Edge browser as the rendering engine. This is made possible through the <a href=\"https:\/\/docs.microsoft.com\/en-us\/microsoft-edge\/hosting\/webview2\" rel=\"noopener noreferrer\" target=\"_blank\">Microsoft Edge WebView2<\/a> control, currently in developer preview. In this series, I will show how you can do this in a C++ Windows desktop application.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[7,608,12,19],"tags":[263,451,616,617,453,55,459],"class_list":["post-3657","post","type-post","status-publish","format-standard","hentry","category-c","category-edge","category-mfc","category-web","tag-browser","tag-c","tag-edge","tag-html","tag-mfc","tag-visualstudio","tag-windows"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"This article is an introduction to the WebView2 control that uses Microsoft Edge Chromium-based browser for rendering web content in a C++ Windows desktop app.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Marius Bancila\"\/>\n\t<meta name=\"keywords\" content=\"c++,edge,browser,windows,mfc,html,visualstudio\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Marius Bancila&#039;s Blog | About code. Mostly on C++\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Using Microsoft Edge in a native Windows desktop app-part 1\" \/>\n\t\t<meta property=\"og:description\" content=\"This article is an introduction to the WebView2 control that uses Microsoft Edge Chromium-based browser for rendering web content in a C++ Windows desktop app.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-28T17:53:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-04-05T06:07:08+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Using Microsoft Edge in a native Windows desktop app-part 1\" \/>\n\t\t<meta name=\"twitter:description\" content=\"This article is an introduction to the WebView2 control that uses Microsoft Edge Chromium-based browser for rendering web content in a C++ Windows desktop app.\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#article\",\"name\":\"Using Microsoft Edge in a native Windows desktop app-part 1\",\"headline\":\"Using Microsoft Edge in a native Windows desktop app &#8211; part 1\",\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/appscreeshot2.jpg\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#articleImage\",\"width\":1088,\"height\":651},\"datePublished\":\"2020-01-28T19:53:00+02:00\",\"dateModified\":\"2023-04-05T08:07:08+02:00\",\"inLanguage\":\"en-US\",\"commentCount\":5,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#webpage\"},\"articleSection\":\"C++, Edge, MFC, Web, browser, C++, Edge, HTML, MFC, VisualStudio, Windows\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"position\":2,\"name\":\"IT\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"position\":3,\"name\":\"Software\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"name\":\"C++\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/#listItem\",\"name\":\"IT\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"position\":4,\"name\":\"C++\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/mfc\\\/#listItem\",\"name\":\"MFC\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/#listItem\",\"name\":\"Software\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/mfc\\\/#listItem\",\"position\":5,\"name\":\"MFC\",\"item\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/mfc\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#listItem\",\"name\":\"Using Microsoft Edge in a native Windows desktop app &#8211; part 1\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/#listItem\",\"name\":\"C++\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#listItem\",\"position\":6,\"name\":\"Using Microsoft Edge in a native Windows desktop app &#8211; part 1\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/category\\\/it\\\/software\\\/c\\\/mfc\\\/#listItem\",\"name\":\"MFC\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/\",\"name\":\"Marius Bancila\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Marius Bancila\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#webpage\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/\",\"name\":\"Using Microsoft Edge in a native Windows desktop app-part 1\",\"description\":\"This article is an introduction to the WebView2 control that uses Microsoft Edge Chromium-based browser for rendering web content in a C++ Windows desktop app.\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/2020\\\/01\\\/28\\\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/author\\\/admin\\\/#author\"},\"datePublished\":\"2020-01-28T19:53:00+02:00\",\"dateModified\":\"2023-04-05T08:07:08+02:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/\",\"name\":\"Marius Bancila's Blog\",\"description\":\"About code. Mostly on C++\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/mariusbancila.ro\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Using Microsoft Edge in a native Windows desktop app-part 1","description":"This article is an introduction to the WebView2 control that uses Microsoft Edge Chromium-based browser for rendering web content in a C++ Windows desktop app.","canonical_url":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/","robots":"max-image-preview:large","keywords":"c++,edge,browser,windows,mfc,html,visualstudio","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#article","name":"Using Microsoft Edge in a native Windows desktop app-part 1","headline":"Using Microsoft Edge in a native Windows desktop app &#8211; part 1","author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/mariusbancila.ro\/blog\/wp-content\/uploads\/2020\/01\/appscreeshot2.jpg","@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#articleImage","width":1088,"height":651},"datePublished":"2020-01-28T19:53:00+02:00","dateModified":"2023-04-05T08:07:08+02:00","inLanguage":"en-US","commentCount":5,"mainEntityOfPage":{"@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#webpage"},"isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#webpage"},"articleSection":"C++, Edge, MFC, Web, browser, C++, Edge, HTML, MFC, VisualStudio, Windows"},{"@type":"BreadcrumbList","@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","position":1,"name":"Home","item":"https:\/\/mariusbancila.ro\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","position":2,"name":"IT","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","position":3,"name":"Software","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","name":"C++"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/#listItem","name":"IT"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","position":4,"name":"C++","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/mfc\/#listItem","name":"MFC"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/#listItem","name":"Software"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/mfc\/#listItem","position":5,"name":"MFC","item":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/mfc\/","nextItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#listItem","name":"Using Microsoft Edge in a native Windows desktop app &#8211; part 1"},"previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/#listItem","name":"C++"}},{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#listItem","position":6,"name":"Using Microsoft Edge in a native Windows desktop app &#8211; part 1","previousItem":{"@type":"ListItem","@id":"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/mfc\/#listItem","name":"MFC"}}]},{"@type":"Organization","@id":"https:\/\/mariusbancila.ro\/blog\/#organization","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","url":"https:\/\/mariusbancila.ro\/blog\/"},{"@type":"Person","@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author","url":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/","name":"Marius Bancila","image":{"@type":"ImageObject","@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/a84dd2831d955c38355ddea55df4df260809b88f36408bc14fd4eab8f7f131c9?s=96&d=mm&r=g","width":96,"height":96,"caption":"Marius Bancila"}},{"@type":"WebPage","@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#webpage","url":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/","name":"Using Microsoft Edge in a native Windows desktop app-part 1","description":"This article is an introduction to the WebView2 control that uses Microsoft Edge Chromium-based browser for rendering web content in a C++ Windows desktop app.","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/mariusbancila.ro\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/#breadcrumblist"},"author":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"creator":{"@id":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/#author"},"datePublished":"2020-01-28T19:53:00+02:00","dateModified":"2023-04-05T08:07:08+02:00"},{"@type":"WebSite","@id":"https:\/\/mariusbancila.ro\/blog\/#website","url":"https:\/\/mariusbancila.ro\/blog\/","name":"Marius Bancila's Blog","description":"About code. Mostly on C++","inLanguage":"en-US","publisher":{"@id":"https:\/\/mariusbancila.ro\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Marius Bancila's Blog | About code. Mostly on C++","og:type":"article","og:title":"Using Microsoft Edge in a native Windows desktop app-part 1","og:description":"This article is an introduction to the WebView2 control that uses Microsoft Edge Chromium-based browser for rendering web content in a C++ Windows desktop app.","og:url":"https:\/\/mariusbancila.ro\/blog\/2020\/01\/28\/using-microsoft-edge-in-a-native-windows-desktop-app-part-1\/","article:published_time":"2020-01-28T17:53:00+00:00","article:modified_time":"2023-04-05T06:07:08+00:00","twitter:card":"summary","twitter:title":"Using Microsoft Edge in a native Windows desktop app-part 1","twitter:description":"This article is an introduction to the WebView2 control that uses Microsoft Edge Chromium-based browser for rendering web content in a C++ Windows desktop app."},"aioseo_meta_data":{"post_id":"3657","title":"Using Microsoft Edge in a native Windows desktop app-part 1","description":"This article is an introduction to the WebView2 control that uses Microsoft Edge Chromium-based browser for rendering web content in a C++ Windows desktop app.","keywords":[{"label":"C++","value":"C++"},{"label":"Edge","value":"Edge"},{"label":"browser","value":"browser"},{"label":"Windows","value":"Windows"},{"label":"MFC","value":"MFC"},{"label":"HTML","value":"HTML"},{"label":"VisualStudio","value":"VisualStudio"}],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2021-03-18 21:03:35","updated":"2025-12-12 07:54:48","seo_analyzer_scan_date":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"author_meta":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"featured_img":null,"jetpack_publicize_connections":[],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Marius Bancila","author_link":"https:\/\/mariusbancila.ro\/blog\/author\/admin\/"},"uagb_comment_info":5,"uagb_excerpt":"Earlier this month, Microsoft has released the new version of its Edge browser, based on the Chromium project. The new browser works on Windows 10, Windows 8.x, and Windows 7, as well as macOS, iOS, and Android. If your application display web content, you can use the new Edge browser as the rendering engine. This&hellip;","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/\" class=\"advgb-post-tax-term\">C++<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/web\/edge\/\" class=\"advgb-post-tax-term\">Edge<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/software\/c\/mfc\/\" class=\"advgb-post-tax-term\">MFC<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/web\/\" class=\"advgb-post-tax-term\">Web<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">C++<\/span>","<span class=\"advgb-post-tax-term\">Edge<\/span>","<span class=\"advgb-post-tax-term\">MFC<\/span>","<span class=\"advgb-post-tax-term\">Web<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/web\/\" class=\"advgb-post-tax-term\">browser<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/web\/\" class=\"advgb-post-tax-term\">C++<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/web\/\" class=\"advgb-post-tax-term\">Edge<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/web\/\" class=\"advgb-post-tax-term\">HTML<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/web\/\" class=\"advgb-post-tax-term\">MFC<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/web\/\" class=\"advgb-post-tax-term\">VisualStudio<\/a>","<a href=\"https:\/\/mariusbancila.ro\/blog\/category\/it\/web\/\" class=\"advgb-post-tax-term\">Windows<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">browser<\/span>","<span class=\"advgb-post-tax-term\">C++<\/span>","<span class=\"advgb-post-tax-term\">Edge<\/span>","<span class=\"advgb-post-tax-term\">HTML<\/span>","<span class=\"advgb-post-tax-term\">MFC<\/span>","<span class=\"advgb-post-tax-term\">VisualStudio<\/span>","<span class=\"advgb-post-tax-term\">Windows<\/span>"]}},"comment_count":"5","relative_dates":{"created":"Posted 7 years ago","modified":"Updated 4 years ago"},"absolute_dates":{"created":"Posted on January 28, 2020","modified":"Updated on April 5, 2023"},"absolute_dates_time":{"created":"Posted on January 28, 2020 7:53 pm","modified":"Updated on April 5, 2023 8:07 am"},"featured_img_caption":"","series_order":"","jetpack_shortlink":"https:\/\/wp.me\/pYNdv-WZ","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/3657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/comments?post=3657"}],"version-history":[{"count":21,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/3657\/revisions"}],"predecessor-version":[{"id":4650,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/posts\/3657\/revisions\/4650"}],"wp:attachment":[{"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/media?parent=3657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/categories?post=3657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mariusbancila.ro\/blog\/wp-json\/wp\/v2\/tags?post=3657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}