

// Version 1.0.3351.48
/* this ALWAYS GENERATED file contains the definitions for the interfaces */

/* File created by MIDL compiler version 8.xx.xxxx */
/* at a redacted point in time
 */
/* Compiler settings for ../../edge_embedded_browser/client/win/current/WebView2.idl:
    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.xx.xxxx
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data
    VC __declspec() decoration level:
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */
// Copyright (C) Microsoft Corporation. All rights reserved.

// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:

//    * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//    * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//    * The name of Microsoft Corporation, or the names of its contributors
// may not be used to endorse or promote products derived from this
// software without specific prior written permission.

// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

#pragma warning(disable : 4049) /* more than 64k source lines */

/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */

#ifndef __WebView2_h__
#define __WebView2_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

#ifndef DECLSPEC_XFGVIRT
#if defined(_CONTROL_FLOW_GUARD_XFG)
#define DECLSPEC_XFGVIRT(base, func) __declspec(xfg_virtual(base, func))
#else
#define DECLSPEC_XFGVIRT(base, func)
#endif
#endif

/* Forward Declarations */

#ifndef __ICoreWebView2_FWD_DEFINED__
#define __ICoreWebView2_FWD_DEFINED__
typedef interface ICoreWebView2 ICoreWebView2;

#endif /* __ICoreWebView2_FWD_DEFINED__ */

#ifndef __ICoreWebView2ContainsFullScreenElementChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2ContainsFullScreenElementChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ContainsFullScreenElementChangedEventHandler ICoreWebView2ContainsFullScreenElementChangedEventHandler;

#endif /* __ICoreWebView2ContainsFullScreenElementChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ContentLoadingEventHandler_FWD_DEFINED__
#define __ICoreWebView2ContentLoadingEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ContentLoadingEventHandler ICoreWebView2ContentLoadingEventHandler;

#endif /* __ICoreWebView2ContentLoadingEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2DocumentTitleChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2DocumentTitleChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2DocumentTitleChangedEventHandler ICoreWebView2DocumentTitleChangedEventHandler;

#endif /* __ICoreWebView2DocumentTitleChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2HistoryChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2HistoryChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2HistoryChangedEventHandler ICoreWebView2HistoryChangedEventHandler;

#endif /* __ICoreWebView2HistoryChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2NavigationCompletedEventHandler_FWD_DEFINED__
#define __ICoreWebView2NavigationCompletedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2NavigationCompletedEventHandler ICoreWebView2NavigationCompletedEventHandler;

#endif /* __ICoreWebView2NavigationCompletedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2NavigationStartingEventHandler_FWD_DEFINED__
#define __ICoreWebView2NavigationStartingEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2NavigationStartingEventHandler ICoreWebView2NavigationStartingEventHandler;

#endif /* __ICoreWebView2NavigationStartingEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2NewWindowRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2NewWindowRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2NewWindowRequestedEventHandler ICoreWebView2NewWindowRequestedEventHandler;

#endif /* __ICoreWebView2NewWindowRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2PermissionRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2PermissionRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2PermissionRequestedEventHandler ICoreWebView2PermissionRequestedEventHandler;

#endif /* __ICoreWebView2PermissionRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProcessFailedEventHandler_FWD_DEFINED__
#define __ICoreWebView2ProcessFailedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ProcessFailedEventHandler ICoreWebView2ProcessFailedEventHandler;

#endif /* __ICoreWebView2ProcessFailedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ScriptDialogOpeningEventHandler_FWD_DEFINED__
#define __ICoreWebView2ScriptDialogOpeningEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ScriptDialogOpeningEventHandler ICoreWebView2ScriptDialogOpeningEventHandler;

#endif /* __ICoreWebView2ScriptDialogOpeningEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2SourceChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2SourceChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2SourceChangedEventHandler ICoreWebView2SourceChangedEventHandler;

#endif /* __ICoreWebView2SourceChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebMessageReceivedEventHandler_FWD_DEFINED__
#define __ICoreWebView2WebMessageReceivedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2WebMessageReceivedEventHandler ICoreWebView2WebMessageReceivedEventHandler;

#endif /* __ICoreWebView2WebMessageReceivedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebResourceRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2WebResourceRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2WebResourceRequestedEventHandler ICoreWebView2WebResourceRequestedEventHandler;

#endif /* __ICoreWebView2WebResourceRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2WindowCloseRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2WindowCloseRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2WindowCloseRequestedEventHandler ICoreWebView2WindowCloseRequestedEventHandler;

#endif /* __ICoreWebView2WindowCloseRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler;

#endif /* __ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ExecuteScriptCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2ExecuteScriptCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2ExecuteScriptCompletedHandler ICoreWebView2ExecuteScriptCompletedHandler;

#endif /* __ICoreWebView2ExecuteScriptCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2CapturePreviewCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2CapturePreviewCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2CapturePreviewCompletedHandler ICoreWebView2CapturePreviewCompletedHandler;

#endif /* __ICoreWebView2CapturePreviewCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2CallDevToolsProtocolMethodCompletedHandler ICoreWebView2CallDevToolsProtocolMethodCompletedHandler;

#endif /* __ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_2_FWD_DEFINED__
#define __ICoreWebView2_2_FWD_DEFINED__
typedef interface ICoreWebView2_2 ICoreWebView2_2;

#endif /* __ICoreWebView2_2_FWD_DEFINED__ */

#ifndef __ICoreWebView2DOMContentLoadedEventHandler_FWD_DEFINED__
#define __ICoreWebView2DOMContentLoadedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2DOMContentLoadedEventHandler ICoreWebView2DOMContentLoadedEventHandler;

#endif /* __ICoreWebView2DOMContentLoadedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponseReceivedEventHandler_FWD_DEFINED__
#define __ICoreWebView2WebResourceResponseReceivedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2WebResourceResponseReceivedEventHandler ICoreWebView2WebResourceResponseReceivedEventHandler;

#endif /* __ICoreWebView2WebResourceResponseReceivedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_3_FWD_DEFINED__
#define __ICoreWebView2_3_FWD_DEFINED__
typedef interface ICoreWebView2_3 ICoreWebView2_3;

#endif /* __ICoreWebView2_3_FWD_DEFINED__ */

#ifndef __ICoreWebView2TrySuspendCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2TrySuspendCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2TrySuspendCompletedHandler ICoreWebView2TrySuspendCompletedHandler;

#endif /* __ICoreWebView2TrySuspendCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_4_FWD_DEFINED__
#define __ICoreWebView2_4_FWD_DEFINED__
typedef interface ICoreWebView2_4 ICoreWebView2_4;

#endif /* __ICoreWebView2_4_FWD_DEFINED__ */

#ifndef __ICoreWebView2DownloadStartingEventHandler_FWD_DEFINED__
#define __ICoreWebView2DownloadStartingEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2DownloadStartingEventHandler ICoreWebView2DownloadStartingEventHandler;

#endif /* __ICoreWebView2DownloadStartingEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameCreatedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameCreatedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameCreatedEventHandler ICoreWebView2FrameCreatedEventHandler;

#endif /* __ICoreWebView2FrameCreatedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_5_FWD_DEFINED__
#define __ICoreWebView2_5_FWD_DEFINED__
typedef interface ICoreWebView2_5 ICoreWebView2_5;

#endif /* __ICoreWebView2_5_FWD_DEFINED__ */

#ifndef __ICoreWebView2ClientCertificateRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2ClientCertificateRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ClientCertificateRequestedEventHandler ICoreWebView2ClientCertificateRequestedEventHandler;

#endif /* __ICoreWebView2ClientCertificateRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_6_FWD_DEFINED__
#define __ICoreWebView2_6_FWD_DEFINED__
typedef interface ICoreWebView2_6 ICoreWebView2_6;

#endif /* __ICoreWebView2_6_FWD_DEFINED__ */

#ifndef __ICoreWebView2_7_FWD_DEFINED__
#define __ICoreWebView2_7_FWD_DEFINED__
typedef interface ICoreWebView2_7 ICoreWebView2_7;

#endif /* __ICoreWebView2_7_FWD_DEFINED__ */

#ifndef __ICoreWebView2PrintToPdfCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2PrintToPdfCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2PrintToPdfCompletedHandler ICoreWebView2PrintToPdfCompletedHandler;

#endif /* __ICoreWebView2PrintToPdfCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_8_FWD_DEFINED__
#define __ICoreWebView2_8_FWD_DEFINED__
typedef interface ICoreWebView2_8 ICoreWebView2_8;

#endif /* __ICoreWebView2_8_FWD_DEFINED__ */

#ifndef __ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2IsDocumentPlayingAudioChangedEventHandler ICoreWebView2IsDocumentPlayingAudioChangedEventHandler;

#endif /* __ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2IsMutedChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2IsMutedChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2IsMutedChangedEventHandler ICoreWebView2IsMutedChangedEventHandler;

#endif /* __ICoreWebView2IsMutedChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_9_FWD_DEFINED__
#define __ICoreWebView2_9_FWD_DEFINED__
typedef interface ICoreWebView2_9 ICoreWebView2_9;

#endif /* __ICoreWebView2_9_FWD_DEFINED__ */

#ifndef __ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler;

#endif /* __ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_10_FWD_DEFINED__
#define __ICoreWebView2_10_FWD_DEFINED__
typedef interface ICoreWebView2_10 ICoreWebView2_10;

#endif /* __ICoreWebView2_10_FWD_DEFINED__ */

#ifndef __ICoreWebView2BasicAuthenticationRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2BasicAuthenticationRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2BasicAuthenticationRequestedEventHandler ICoreWebView2BasicAuthenticationRequestedEventHandler;

#endif /* __ICoreWebView2BasicAuthenticationRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_11_FWD_DEFINED__
#define __ICoreWebView2_11_FWD_DEFINED__
typedef interface ICoreWebView2_11 ICoreWebView2_11;

#endif /* __ICoreWebView2_11_FWD_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2ContextMenuRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ContextMenuRequestedEventHandler ICoreWebView2ContextMenuRequestedEventHandler;

#endif /* __ICoreWebView2ContextMenuRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_12_FWD_DEFINED__
#define __ICoreWebView2_12_FWD_DEFINED__
typedef interface ICoreWebView2_12 ICoreWebView2_12;

#endif /* __ICoreWebView2_12_FWD_DEFINED__ */

#ifndef __ICoreWebView2StatusBarTextChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2StatusBarTextChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2StatusBarTextChangedEventHandler ICoreWebView2StatusBarTextChangedEventHandler;

#endif /* __ICoreWebView2StatusBarTextChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_13_FWD_DEFINED__
#define __ICoreWebView2_13_FWD_DEFINED__
typedef interface ICoreWebView2_13 ICoreWebView2_13;

#endif /* __ICoreWebView2_13_FWD_DEFINED__ */

#ifndef __ICoreWebView2_14_FWD_DEFINED__
#define __ICoreWebView2_14_FWD_DEFINED__
typedef interface ICoreWebView2_14 ICoreWebView2_14;

#endif /* __ICoreWebView2_14_FWD_DEFINED__ */

#ifndef __ICoreWebView2ServerCertificateErrorDetectedEventHandler_FWD_DEFINED__
#define __ICoreWebView2ServerCertificateErrorDetectedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ServerCertificateErrorDetectedEventHandler ICoreWebView2ServerCertificateErrorDetectedEventHandler;

#endif /* __ICoreWebView2ServerCertificateErrorDetectedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler;

#endif /* __ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_15_FWD_DEFINED__
#define __ICoreWebView2_15_FWD_DEFINED__
typedef interface ICoreWebView2_15 ICoreWebView2_15;

#endif /* __ICoreWebView2_15_FWD_DEFINED__ */

#ifndef __ICoreWebView2FaviconChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FaviconChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FaviconChangedEventHandler ICoreWebView2FaviconChangedEventHandler;

#endif /* __ICoreWebView2FaviconChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2GetFaviconCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2GetFaviconCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2GetFaviconCompletedHandler ICoreWebView2GetFaviconCompletedHandler;

#endif /* __ICoreWebView2GetFaviconCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_16_FWD_DEFINED__
#define __ICoreWebView2_16_FWD_DEFINED__
typedef interface ICoreWebView2_16 ICoreWebView2_16;

#endif /* __ICoreWebView2_16_FWD_DEFINED__ */

#ifndef __ICoreWebView2PrintCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2PrintCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2PrintCompletedHandler ICoreWebView2PrintCompletedHandler;

#endif /* __ICoreWebView2PrintCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2PrintToPdfStreamCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2PrintToPdfStreamCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2PrintToPdfStreamCompletedHandler ICoreWebView2PrintToPdfStreamCompletedHandler;

#endif /* __ICoreWebView2PrintToPdfStreamCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_17_FWD_DEFINED__
#define __ICoreWebView2_17_FWD_DEFINED__
typedef interface ICoreWebView2_17 ICoreWebView2_17;

#endif /* __ICoreWebView2_17_FWD_DEFINED__ */

#ifndef __ICoreWebView2_18_FWD_DEFINED__
#define __ICoreWebView2_18_FWD_DEFINED__
typedef interface ICoreWebView2_18 ICoreWebView2_18;

#endif /* __ICoreWebView2_18_FWD_DEFINED__ */

#ifndef __ICoreWebView2LaunchingExternalUriSchemeEventHandler_FWD_DEFINED__
#define __ICoreWebView2LaunchingExternalUriSchemeEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2LaunchingExternalUriSchemeEventHandler ICoreWebView2LaunchingExternalUriSchemeEventHandler;

#endif /* __ICoreWebView2LaunchingExternalUriSchemeEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_19_FWD_DEFINED__
#define __ICoreWebView2_19_FWD_DEFINED__
typedef interface ICoreWebView2_19 ICoreWebView2_19;

#endif /* __ICoreWebView2_19_FWD_DEFINED__ */

#ifndef __ICoreWebView2_20_FWD_DEFINED__
#define __ICoreWebView2_20_FWD_DEFINED__
typedef interface ICoreWebView2_20 ICoreWebView2_20;

#endif /* __ICoreWebView2_20_FWD_DEFINED__ */

#ifndef __ICoreWebView2_21_FWD_DEFINED__
#define __ICoreWebView2_21_FWD_DEFINED__
typedef interface ICoreWebView2_21 ICoreWebView2_21;

#endif /* __ICoreWebView2_21_FWD_DEFINED__ */

#ifndef __ICoreWebView2ExecuteScriptWithResultCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2ExecuteScriptWithResultCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2ExecuteScriptWithResultCompletedHandler ICoreWebView2ExecuteScriptWithResultCompletedHandler;

#endif /* __ICoreWebView2ExecuteScriptWithResultCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_22_FWD_DEFINED__
#define __ICoreWebView2_22_FWD_DEFINED__
typedef interface ICoreWebView2_22 ICoreWebView2_22;

#endif /* __ICoreWebView2_22_FWD_DEFINED__ */

#ifndef __ICoreWebView2_23_FWD_DEFINED__
#define __ICoreWebView2_23_FWD_DEFINED__
typedef interface ICoreWebView2_23 ICoreWebView2_23;

#endif /* __ICoreWebView2_23_FWD_DEFINED__ */

#ifndef __ICoreWebView2_24_FWD_DEFINED__
#define __ICoreWebView2_24_FWD_DEFINED__
typedef interface ICoreWebView2_24 ICoreWebView2_24;

#endif /* __ICoreWebView2_24_FWD_DEFINED__ */

#ifndef __ICoreWebView2NotificationReceivedEventHandler_FWD_DEFINED__
#define __ICoreWebView2NotificationReceivedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2NotificationReceivedEventHandler ICoreWebView2NotificationReceivedEventHandler;

#endif /* __ICoreWebView2NotificationReceivedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_25_FWD_DEFINED__
#define __ICoreWebView2_25_FWD_DEFINED__
typedef interface ICoreWebView2_25 ICoreWebView2_25;

#endif /* __ICoreWebView2_25_FWD_DEFINED__ */

#ifndef __ICoreWebView2SaveAsUIShowingEventHandler_FWD_DEFINED__
#define __ICoreWebView2SaveAsUIShowingEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2SaveAsUIShowingEventHandler ICoreWebView2SaveAsUIShowingEventHandler;

#endif /* __ICoreWebView2SaveAsUIShowingEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ShowSaveAsUICompletedHandler_FWD_DEFINED__
#define __ICoreWebView2ShowSaveAsUICompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2ShowSaveAsUICompletedHandler ICoreWebView2ShowSaveAsUICompletedHandler;

#endif /* __ICoreWebView2ShowSaveAsUICompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_26_FWD_DEFINED__
#define __ICoreWebView2_26_FWD_DEFINED__
typedef interface ICoreWebView2_26 ICoreWebView2_26;

#endif /* __ICoreWebView2_26_FWD_DEFINED__ */

#ifndef __ICoreWebView2SaveFileSecurityCheckStartingEventHandler_FWD_DEFINED__
#define __ICoreWebView2SaveFileSecurityCheckStartingEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2SaveFileSecurityCheckStartingEventHandler ICoreWebView2SaveFileSecurityCheckStartingEventHandler;

#endif /* __ICoreWebView2SaveFileSecurityCheckStartingEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2_27_FWD_DEFINED__
#define __ICoreWebView2_27_FWD_DEFINED__
typedef interface ICoreWebView2_27 ICoreWebView2_27;

#endif /* __ICoreWebView2_27_FWD_DEFINED__ */

#ifndef __ICoreWebView2ScreenCaptureStartingEventHandler_FWD_DEFINED__
#define __ICoreWebView2ScreenCaptureStartingEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ScreenCaptureStartingEventHandler ICoreWebView2ScreenCaptureStartingEventHandler;

#endif /* __ICoreWebView2ScreenCaptureStartingEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2AcceleratorKeyPressedEventArgs_FWD_DEFINED__
#define __ICoreWebView2AcceleratorKeyPressedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2AcceleratorKeyPressedEventArgs ICoreWebView2AcceleratorKeyPressedEventArgs;

#endif /* __ICoreWebView2AcceleratorKeyPressedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2AcceleratorKeyPressedEventArgs2_FWD_DEFINED__
#define __ICoreWebView2AcceleratorKeyPressedEventArgs2_FWD_DEFINED__
typedef interface ICoreWebView2AcceleratorKeyPressedEventArgs2 ICoreWebView2AcceleratorKeyPressedEventArgs2;

#endif /* __ICoreWebView2AcceleratorKeyPressedEventArgs2_FWD_DEFINED__ */

#ifndef __ICoreWebView2BasicAuthenticationRequestedEventArgs_FWD_DEFINED__
#define __ICoreWebView2BasicAuthenticationRequestedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2BasicAuthenticationRequestedEventArgs ICoreWebView2BasicAuthenticationRequestedEventArgs;

#endif /* __ICoreWebView2BasicAuthenticationRequestedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2BasicAuthenticationResponse_FWD_DEFINED__
#define __ICoreWebView2BasicAuthenticationResponse_FWD_DEFINED__
typedef interface ICoreWebView2BasicAuthenticationResponse ICoreWebView2BasicAuthenticationResponse;

#endif /* __ICoreWebView2BasicAuthenticationResponse_FWD_DEFINED__ */

#ifndef __ICoreWebView2BrowserExtension_FWD_DEFINED__
#define __ICoreWebView2BrowserExtension_FWD_DEFINED__
typedef interface ICoreWebView2BrowserExtension ICoreWebView2BrowserExtension;

#endif /* __ICoreWebView2BrowserExtension_FWD_DEFINED__ */

#ifndef __ICoreWebView2BrowserExtensionRemoveCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2BrowserExtensionRemoveCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2BrowserExtensionRemoveCompletedHandler ICoreWebView2BrowserExtensionRemoveCompletedHandler;

#endif /* __ICoreWebView2BrowserExtensionRemoveCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2BrowserExtensionEnableCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2BrowserExtensionEnableCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2BrowserExtensionEnableCompletedHandler ICoreWebView2BrowserExtensionEnableCompletedHandler;

#endif /* __ICoreWebView2BrowserExtensionEnableCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2BrowserProcessExitedEventArgs_FWD_DEFINED__
#define __ICoreWebView2BrowserProcessExitedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2BrowserProcessExitedEventArgs ICoreWebView2BrowserProcessExitedEventArgs;

#endif /* __ICoreWebView2BrowserProcessExitedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2Certificate_FWD_DEFINED__
#define __ICoreWebView2Certificate_FWD_DEFINED__
typedef interface ICoreWebView2Certificate ICoreWebView2Certificate;

#endif /* __ICoreWebView2Certificate_FWD_DEFINED__ */

#ifndef __ICoreWebView2ClientCertificate_FWD_DEFINED__
#define __ICoreWebView2ClientCertificate_FWD_DEFINED__
typedef interface ICoreWebView2ClientCertificate ICoreWebView2ClientCertificate;

#endif /* __ICoreWebView2ClientCertificate_FWD_DEFINED__ */

#ifndef __ICoreWebView2ClientCertificateRequestedEventArgs_FWD_DEFINED__
#define __ICoreWebView2ClientCertificateRequestedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2ClientCertificateRequestedEventArgs ICoreWebView2ClientCertificateRequestedEventArgs;

#endif /* __ICoreWebView2ClientCertificateRequestedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2StringCollection_FWD_DEFINED__
#define __ICoreWebView2StringCollection_FWD_DEFINED__
typedef interface ICoreWebView2StringCollection ICoreWebView2StringCollection;

#endif /* __ICoreWebView2StringCollection_FWD_DEFINED__ */

#ifndef __ICoreWebView2ClientCertificateCollection_FWD_DEFINED__
#define __ICoreWebView2ClientCertificateCollection_FWD_DEFINED__
typedef interface ICoreWebView2ClientCertificateCollection ICoreWebView2ClientCertificateCollection;

#endif /* __ICoreWebView2ClientCertificateCollection_FWD_DEFINED__ */

#ifndef __ICoreWebView2CompositionController_FWD_DEFINED__
#define __ICoreWebView2CompositionController_FWD_DEFINED__
typedef interface ICoreWebView2CompositionController ICoreWebView2CompositionController;

#endif /* __ICoreWebView2CompositionController_FWD_DEFINED__ */

#ifndef __ICoreWebView2CursorChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2CursorChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2CursorChangedEventHandler ICoreWebView2CursorChangedEventHandler;

#endif /* __ICoreWebView2CursorChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2CompositionController2_FWD_DEFINED__
#define __ICoreWebView2CompositionController2_FWD_DEFINED__
typedef interface ICoreWebView2CompositionController2 ICoreWebView2CompositionController2;

#endif /* __ICoreWebView2CompositionController2_FWD_DEFINED__ */

#ifndef __ICoreWebView2CompositionController3_FWD_DEFINED__
#define __ICoreWebView2CompositionController3_FWD_DEFINED__
typedef interface ICoreWebView2CompositionController3 ICoreWebView2CompositionController3;

#endif /* __ICoreWebView2CompositionController3_FWD_DEFINED__ */

#ifndef __ICoreWebView2CompositionController4_FWD_DEFINED__
#define __ICoreWebView2CompositionController4_FWD_DEFINED__
typedef interface ICoreWebView2CompositionController4 ICoreWebView2CompositionController4;

#endif /* __ICoreWebView2CompositionController4_FWD_DEFINED__ */

#ifndef __ICoreWebView2NonClientRegionChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2NonClientRegionChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2NonClientRegionChangedEventHandler ICoreWebView2NonClientRegionChangedEventHandler;

#endif /* __ICoreWebView2NonClientRegionChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2RegionRectCollectionView_FWD_DEFINED__
#define __ICoreWebView2RegionRectCollectionView_FWD_DEFINED__
typedef interface ICoreWebView2RegionRectCollectionView ICoreWebView2RegionRectCollectionView;

#endif /* __ICoreWebView2RegionRectCollectionView_FWD_DEFINED__ */

#ifndef __ICoreWebView2ContentLoadingEventArgs_FWD_DEFINED__
#define __ICoreWebView2ContentLoadingEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2ContentLoadingEventArgs ICoreWebView2ContentLoadingEventArgs;

#endif /* __ICoreWebView2ContentLoadingEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuItem_FWD_DEFINED__
#define __ICoreWebView2ContextMenuItem_FWD_DEFINED__
typedef interface ICoreWebView2ContextMenuItem ICoreWebView2ContextMenuItem;

#endif /* __ICoreWebView2ContextMenuItem_FWD_DEFINED__ */

#ifndef __ICoreWebView2CustomItemSelectedEventHandler_FWD_DEFINED__
#define __ICoreWebView2CustomItemSelectedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2CustomItemSelectedEventHandler ICoreWebView2CustomItemSelectedEventHandler;

#endif /* __ICoreWebView2CustomItemSelectedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuItemCollection_FWD_DEFINED__
#define __ICoreWebView2ContextMenuItemCollection_FWD_DEFINED__
typedef interface ICoreWebView2ContextMenuItemCollection ICoreWebView2ContextMenuItemCollection;

#endif /* __ICoreWebView2ContextMenuItemCollection_FWD_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuRequestedEventArgs_FWD_DEFINED__
#define __ICoreWebView2ContextMenuRequestedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2ContextMenuRequestedEventArgs ICoreWebView2ContextMenuRequestedEventArgs;

#endif /* __ICoreWebView2ContextMenuRequestedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuTarget_FWD_DEFINED__
#define __ICoreWebView2ContextMenuTarget_FWD_DEFINED__
typedef interface ICoreWebView2ContextMenuTarget ICoreWebView2ContextMenuTarget;

#endif /* __ICoreWebView2ContextMenuTarget_FWD_DEFINED__ */

#ifndef __ICoreWebView2Controller_FWD_DEFINED__
#define __ICoreWebView2Controller_FWD_DEFINED__
typedef interface ICoreWebView2Controller ICoreWebView2Controller;

#endif /* __ICoreWebView2Controller_FWD_DEFINED__ */

#ifndef __ICoreWebView2AcceleratorKeyPressedEventHandler_FWD_DEFINED__
#define __ICoreWebView2AcceleratorKeyPressedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2AcceleratorKeyPressedEventHandler ICoreWebView2AcceleratorKeyPressedEventHandler;

#endif /* __ICoreWebView2AcceleratorKeyPressedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2FocusChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FocusChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FocusChangedEventHandler ICoreWebView2FocusChangedEventHandler;

#endif /* __ICoreWebView2FocusChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2MoveFocusRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2MoveFocusRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2MoveFocusRequestedEventHandler ICoreWebView2MoveFocusRequestedEventHandler;

#endif /* __ICoreWebView2MoveFocusRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ZoomFactorChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2ZoomFactorChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ZoomFactorChangedEventHandler ICoreWebView2ZoomFactorChangedEventHandler;

#endif /* __ICoreWebView2ZoomFactorChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Controller2_FWD_DEFINED__
#define __ICoreWebView2Controller2_FWD_DEFINED__
typedef interface ICoreWebView2Controller2 ICoreWebView2Controller2;

#endif /* __ICoreWebView2Controller2_FWD_DEFINED__ */

#ifndef __ICoreWebView2Controller3_FWD_DEFINED__
#define __ICoreWebView2Controller3_FWD_DEFINED__
typedef interface ICoreWebView2Controller3 ICoreWebView2Controller3;

#endif /* __ICoreWebView2Controller3_FWD_DEFINED__ */

#ifndef __ICoreWebView2RasterizationScaleChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2RasterizationScaleChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2RasterizationScaleChangedEventHandler ICoreWebView2RasterizationScaleChangedEventHandler;

#endif /* __ICoreWebView2RasterizationScaleChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Controller4_FWD_DEFINED__
#define __ICoreWebView2Controller4_FWD_DEFINED__
typedef interface ICoreWebView2Controller4 ICoreWebView2Controller4;

#endif /* __ICoreWebView2Controller4_FWD_DEFINED__ */

#ifndef __ICoreWebView2ControllerOptions_FWD_DEFINED__
#define __ICoreWebView2ControllerOptions_FWD_DEFINED__
typedef interface ICoreWebView2ControllerOptions ICoreWebView2ControllerOptions;

#endif /* __ICoreWebView2ControllerOptions_FWD_DEFINED__ */

#ifndef __ICoreWebView2ControllerOptions2_FWD_DEFINED__
#define __ICoreWebView2ControllerOptions2_FWD_DEFINED__
typedef interface ICoreWebView2ControllerOptions2 ICoreWebView2ControllerOptions2;

#endif /* __ICoreWebView2ControllerOptions2_FWD_DEFINED__ */

#ifndef __ICoreWebView2ControllerOptions3_FWD_DEFINED__
#define __ICoreWebView2ControllerOptions3_FWD_DEFINED__
typedef interface ICoreWebView2ControllerOptions3 ICoreWebView2ControllerOptions3;

#endif /* __ICoreWebView2ControllerOptions3_FWD_DEFINED__ */

#ifndef __ICoreWebView2ControllerOptions4_FWD_DEFINED__
#define __ICoreWebView2ControllerOptions4_FWD_DEFINED__
typedef interface ICoreWebView2ControllerOptions4 ICoreWebView2ControllerOptions4;

#endif /* __ICoreWebView2ControllerOptions4_FWD_DEFINED__ */

#ifndef __ICoreWebView2Cookie_FWD_DEFINED__
#define __ICoreWebView2Cookie_FWD_DEFINED__
typedef interface ICoreWebView2Cookie ICoreWebView2Cookie;

#endif /* __ICoreWebView2Cookie_FWD_DEFINED__ */

#ifndef __ICoreWebView2CookieManager_FWD_DEFINED__
#define __ICoreWebView2CookieManager_FWD_DEFINED__
typedef interface ICoreWebView2CookieManager ICoreWebView2CookieManager;

#endif /* __ICoreWebView2CookieManager_FWD_DEFINED__ */

#ifndef __ICoreWebView2GetCookiesCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2GetCookiesCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2GetCookiesCompletedHandler ICoreWebView2GetCookiesCompletedHandler;

#endif /* __ICoreWebView2GetCookiesCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2CookieList_FWD_DEFINED__
#define __ICoreWebView2CookieList_FWD_DEFINED__
typedef interface ICoreWebView2CookieList ICoreWebView2CookieList;

#endif /* __ICoreWebView2CookieList_FWD_DEFINED__ */

#ifndef __ICoreWebView2CustomSchemeRegistration_FWD_DEFINED__
#define __ICoreWebView2CustomSchemeRegistration_FWD_DEFINED__
typedef interface ICoreWebView2CustomSchemeRegistration ICoreWebView2CustomSchemeRegistration;

#endif /* __ICoreWebView2CustomSchemeRegistration_FWD_DEFINED__ */

#ifndef __ICoreWebView2DOMContentLoadedEventArgs_FWD_DEFINED__
#define __ICoreWebView2DOMContentLoadedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2DOMContentLoadedEventArgs ICoreWebView2DOMContentLoadedEventArgs;

#endif /* __ICoreWebView2DOMContentLoadedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2Deferral_FWD_DEFINED__
#define __ICoreWebView2Deferral_FWD_DEFINED__
typedef interface ICoreWebView2Deferral ICoreWebView2Deferral;

#endif /* __ICoreWebView2Deferral_FWD_DEFINED__ */

#ifndef __ICoreWebView2DevToolsProtocolEventReceivedEventArgs_FWD_DEFINED__
#define __ICoreWebView2DevToolsProtocolEventReceivedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs ICoreWebView2DevToolsProtocolEventReceivedEventArgs;

#endif /* __ICoreWebView2DevToolsProtocolEventReceivedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_FWD_DEFINED__
#define __ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_FWD_DEFINED__
typedef interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 ICoreWebView2DevToolsProtocolEventReceivedEventArgs2;

#endif /* __ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_FWD_DEFINED__ */

#ifndef __ICoreWebView2DevToolsProtocolEventReceiver_FWD_DEFINED__
#define __ICoreWebView2DevToolsProtocolEventReceiver_FWD_DEFINED__
typedef interface ICoreWebView2DevToolsProtocolEventReceiver ICoreWebView2DevToolsProtocolEventReceiver;

#endif /* __ICoreWebView2DevToolsProtocolEventReceiver_FWD_DEFINED__ */

#ifndef __ICoreWebView2DevToolsProtocolEventReceivedEventHandler_FWD_DEFINED__
#define __ICoreWebView2DevToolsProtocolEventReceivedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2DevToolsProtocolEventReceivedEventHandler ICoreWebView2DevToolsProtocolEventReceivedEventHandler;

#endif /* __ICoreWebView2DevToolsProtocolEventReceivedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2DownloadOperation_FWD_DEFINED__
#define __ICoreWebView2DownloadOperation_FWD_DEFINED__
typedef interface ICoreWebView2DownloadOperation ICoreWebView2DownloadOperation;

#endif /* __ICoreWebView2DownloadOperation_FWD_DEFINED__ */

#ifndef __ICoreWebView2BytesReceivedChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2BytesReceivedChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2BytesReceivedChangedEventHandler ICoreWebView2BytesReceivedChangedEventHandler;

#endif /* __ICoreWebView2BytesReceivedChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2EstimatedEndTimeChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2EstimatedEndTimeChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2EstimatedEndTimeChangedEventHandler ICoreWebView2EstimatedEndTimeChangedEventHandler;

#endif /* __ICoreWebView2EstimatedEndTimeChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2StateChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2StateChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2StateChangedEventHandler ICoreWebView2StateChangedEventHandler;

#endif /* __ICoreWebView2StateChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2DownloadStartingEventArgs_FWD_DEFINED__
#define __ICoreWebView2DownloadStartingEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2DownloadStartingEventArgs ICoreWebView2DownloadStartingEventArgs;

#endif /* __ICoreWebView2DownloadStartingEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler;

#endif /* __ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment_FWD_DEFINED__
#define __ICoreWebView2Environment_FWD_DEFINED__
typedef interface ICoreWebView2Environment ICoreWebView2Environment;

#endif /* __ICoreWebView2Environment_FWD_DEFINED__ */

#ifndef __ICoreWebView2NewBrowserVersionAvailableEventHandler_FWD_DEFINED__
#define __ICoreWebView2NewBrowserVersionAvailableEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2NewBrowserVersionAvailableEventHandler ICoreWebView2NewBrowserVersionAvailableEventHandler;

#endif /* __ICoreWebView2NewBrowserVersionAvailableEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2CreateCoreWebView2ControllerCompletedHandler ICoreWebView2CreateCoreWebView2ControllerCompletedHandler;

#endif /* __ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment2_FWD_DEFINED__
#define __ICoreWebView2Environment2_FWD_DEFINED__
typedef interface ICoreWebView2Environment2 ICoreWebView2Environment2;

#endif /* __ICoreWebView2Environment2_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment3_FWD_DEFINED__
#define __ICoreWebView2Environment3_FWD_DEFINED__
typedef interface ICoreWebView2Environment3 ICoreWebView2Environment3;

#endif /* __ICoreWebView2Environment3_FWD_DEFINED__ */

#ifndef __ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler;

#endif /* __ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment4_FWD_DEFINED__
#define __ICoreWebView2Environment4_FWD_DEFINED__
typedef interface ICoreWebView2Environment4 ICoreWebView2Environment4;

#endif /* __ICoreWebView2Environment4_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment5_FWD_DEFINED__
#define __ICoreWebView2Environment5_FWD_DEFINED__
typedef interface ICoreWebView2Environment5 ICoreWebView2Environment5;

#endif /* __ICoreWebView2Environment5_FWD_DEFINED__ */

#ifndef __ICoreWebView2BrowserProcessExitedEventHandler_FWD_DEFINED__
#define __ICoreWebView2BrowserProcessExitedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2BrowserProcessExitedEventHandler ICoreWebView2BrowserProcessExitedEventHandler;

#endif /* __ICoreWebView2BrowserProcessExitedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment6_FWD_DEFINED__
#define __ICoreWebView2Environment6_FWD_DEFINED__
typedef interface ICoreWebView2Environment6 ICoreWebView2Environment6;

#endif /* __ICoreWebView2Environment6_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment7_FWD_DEFINED__
#define __ICoreWebView2Environment7_FWD_DEFINED__
typedef interface ICoreWebView2Environment7 ICoreWebView2Environment7;

#endif /* __ICoreWebView2Environment7_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment8_FWD_DEFINED__
#define __ICoreWebView2Environment8_FWD_DEFINED__
typedef interface ICoreWebView2Environment8 ICoreWebView2Environment8;

#endif /* __ICoreWebView2Environment8_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProcessInfosChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2ProcessInfosChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ProcessInfosChangedEventHandler ICoreWebView2ProcessInfosChangedEventHandler;

#endif /* __ICoreWebView2ProcessInfosChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProcessInfoCollection_FWD_DEFINED__
#define __ICoreWebView2ProcessInfoCollection_FWD_DEFINED__
typedef interface ICoreWebView2ProcessInfoCollection ICoreWebView2ProcessInfoCollection;

#endif /* __ICoreWebView2ProcessInfoCollection_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment9_FWD_DEFINED__
#define __ICoreWebView2Environment9_FWD_DEFINED__
typedef interface ICoreWebView2Environment9 ICoreWebView2Environment9;

#endif /* __ICoreWebView2Environment9_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment10_FWD_DEFINED__
#define __ICoreWebView2Environment10_FWD_DEFINED__
typedef interface ICoreWebView2Environment10 ICoreWebView2Environment10;

#endif /* __ICoreWebView2Environment10_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment11_FWD_DEFINED__
#define __ICoreWebView2Environment11_FWD_DEFINED__
typedef interface ICoreWebView2Environment11 ICoreWebView2Environment11;

#endif /* __ICoreWebView2Environment11_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment12_FWD_DEFINED__
#define __ICoreWebView2Environment12_FWD_DEFINED__
typedef interface ICoreWebView2Environment12 ICoreWebView2Environment12;

#endif /* __ICoreWebView2Environment12_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment13_FWD_DEFINED__
#define __ICoreWebView2Environment13_FWD_DEFINED__
typedef interface ICoreWebView2Environment13 ICoreWebView2Environment13;

#endif /* __ICoreWebView2Environment13_FWD_DEFINED__ */

#ifndef __ICoreWebView2GetProcessExtendedInfosCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2GetProcessExtendedInfosCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2GetProcessExtendedInfosCompletedHandler ICoreWebView2GetProcessExtendedInfosCompletedHandler;

#endif /* __ICoreWebView2GetProcessExtendedInfosCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProcessExtendedInfoCollection_FWD_DEFINED__
#define __ICoreWebView2ProcessExtendedInfoCollection_FWD_DEFINED__
typedef interface ICoreWebView2ProcessExtendedInfoCollection ICoreWebView2ProcessExtendedInfoCollection;

#endif /* __ICoreWebView2ProcessExtendedInfoCollection_FWD_DEFINED__ */

#ifndef __ICoreWebView2Environment14_FWD_DEFINED__
#define __ICoreWebView2Environment14_FWD_DEFINED__
typedef interface ICoreWebView2Environment14 ICoreWebView2Environment14;

#endif /* __ICoreWebView2Environment14_FWD_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions_FWD_DEFINED__
#define __ICoreWebView2EnvironmentOptions_FWD_DEFINED__
typedef interface ICoreWebView2EnvironmentOptions ICoreWebView2EnvironmentOptions;

#endif /* __ICoreWebView2EnvironmentOptions_FWD_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions2_FWD_DEFINED__
#define __ICoreWebView2EnvironmentOptions2_FWD_DEFINED__
typedef interface ICoreWebView2EnvironmentOptions2 ICoreWebView2EnvironmentOptions2;

#endif /* __ICoreWebView2EnvironmentOptions2_FWD_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions3_FWD_DEFINED__
#define __ICoreWebView2EnvironmentOptions3_FWD_DEFINED__
typedef interface ICoreWebView2EnvironmentOptions3 ICoreWebView2EnvironmentOptions3;

#endif /* __ICoreWebView2EnvironmentOptions3_FWD_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions4_FWD_DEFINED__
#define __ICoreWebView2EnvironmentOptions4_FWD_DEFINED__
typedef interface ICoreWebView2EnvironmentOptions4 ICoreWebView2EnvironmentOptions4;

#endif /* __ICoreWebView2EnvironmentOptions4_FWD_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions5_FWD_DEFINED__
#define __ICoreWebView2EnvironmentOptions5_FWD_DEFINED__
typedef interface ICoreWebView2EnvironmentOptions5 ICoreWebView2EnvironmentOptions5;

#endif /* __ICoreWebView2EnvironmentOptions5_FWD_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions6_FWD_DEFINED__
#define __ICoreWebView2EnvironmentOptions6_FWD_DEFINED__
typedef interface ICoreWebView2EnvironmentOptions6 ICoreWebView2EnvironmentOptions6;

#endif /* __ICoreWebView2EnvironmentOptions6_FWD_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions7_FWD_DEFINED__
#define __ICoreWebView2EnvironmentOptions7_FWD_DEFINED__
typedef interface ICoreWebView2EnvironmentOptions7 ICoreWebView2EnvironmentOptions7;

#endif /* __ICoreWebView2EnvironmentOptions7_FWD_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions8_FWD_DEFINED__
#define __ICoreWebView2EnvironmentOptions8_FWD_DEFINED__
typedef interface ICoreWebView2EnvironmentOptions8 ICoreWebView2EnvironmentOptions8;

#endif /* __ICoreWebView2EnvironmentOptions8_FWD_DEFINED__ */

#ifndef __ICoreWebView2ExecuteScriptResult_FWD_DEFINED__
#define __ICoreWebView2ExecuteScriptResult_FWD_DEFINED__
typedef interface ICoreWebView2ExecuteScriptResult ICoreWebView2ExecuteScriptResult;

#endif /* __ICoreWebView2ExecuteScriptResult_FWD_DEFINED__ */

#ifndef __ICoreWebView2File_FWD_DEFINED__
#define __ICoreWebView2File_FWD_DEFINED__
typedef interface ICoreWebView2File ICoreWebView2File;

#endif /* __ICoreWebView2File_FWD_DEFINED__ */

#ifndef __ICoreWebView2FileSystemHandle_FWD_DEFINED__
#define __ICoreWebView2FileSystemHandle_FWD_DEFINED__
typedef interface ICoreWebView2FileSystemHandle ICoreWebView2FileSystemHandle;

#endif /* __ICoreWebView2FileSystemHandle_FWD_DEFINED__ */

#ifndef __ICoreWebView2Frame_FWD_DEFINED__
#define __ICoreWebView2Frame_FWD_DEFINED__
typedef interface ICoreWebView2Frame ICoreWebView2Frame;

#endif /* __ICoreWebView2Frame_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameDestroyedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameDestroyedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameDestroyedEventHandler ICoreWebView2FrameDestroyedEventHandler;

#endif /* __ICoreWebView2FrameDestroyedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameNameChangedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameNameChangedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameNameChangedEventHandler ICoreWebView2FrameNameChangedEventHandler;

#endif /* __ICoreWebView2FrameNameChangedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Frame2_FWD_DEFINED__
#define __ICoreWebView2Frame2_FWD_DEFINED__
typedef interface ICoreWebView2Frame2 ICoreWebView2Frame2;

#endif /* __ICoreWebView2Frame2_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameContentLoadingEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameContentLoadingEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameContentLoadingEventHandler ICoreWebView2FrameContentLoadingEventHandler;

#endif /* __ICoreWebView2FrameContentLoadingEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameDOMContentLoadedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameDOMContentLoadedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameDOMContentLoadedEventHandler ICoreWebView2FrameDOMContentLoadedEventHandler;

#endif /* __ICoreWebView2FrameDOMContentLoadedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameNavigationCompletedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameNavigationCompletedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameNavigationCompletedEventHandler ICoreWebView2FrameNavigationCompletedEventHandler;

#endif /* __ICoreWebView2FrameNavigationCompletedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameNavigationStartingEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameNavigationStartingEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameNavigationStartingEventHandler ICoreWebView2FrameNavigationStartingEventHandler;

#endif /* __ICoreWebView2FrameNavigationStartingEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameWebMessageReceivedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameWebMessageReceivedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameWebMessageReceivedEventHandler ICoreWebView2FrameWebMessageReceivedEventHandler;

#endif /* __ICoreWebView2FrameWebMessageReceivedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Frame3_FWD_DEFINED__
#define __ICoreWebView2Frame3_FWD_DEFINED__
typedef interface ICoreWebView2Frame3 ICoreWebView2Frame3;

#endif /* __ICoreWebView2Frame3_FWD_DEFINED__ */

#ifndef __ICoreWebView2FramePermissionRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FramePermissionRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FramePermissionRequestedEventHandler ICoreWebView2FramePermissionRequestedEventHandler;

#endif /* __ICoreWebView2FramePermissionRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Frame4_FWD_DEFINED__
#define __ICoreWebView2Frame4_FWD_DEFINED__
typedef interface ICoreWebView2Frame4 ICoreWebView2Frame4;

#endif /* __ICoreWebView2Frame4_FWD_DEFINED__ */

#ifndef __ICoreWebView2Frame5_FWD_DEFINED__
#define __ICoreWebView2Frame5_FWD_DEFINED__
typedef interface ICoreWebView2Frame5 ICoreWebView2Frame5;

#endif /* __ICoreWebView2Frame5_FWD_DEFINED__ */

#ifndef __ICoreWebView2Frame6_FWD_DEFINED__
#define __ICoreWebView2Frame6_FWD_DEFINED__
typedef interface ICoreWebView2Frame6 ICoreWebView2Frame6;

#endif /* __ICoreWebView2Frame6_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameScreenCaptureStartingEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameScreenCaptureStartingEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameScreenCaptureStartingEventHandler ICoreWebView2FrameScreenCaptureStartingEventHandler;

#endif /* __ICoreWebView2FrameScreenCaptureStartingEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Frame7_FWD_DEFINED__
#define __ICoreWebView2Frame7_FWD_DEFINED__
typedef interface ICoreWebView2Frame7 ICoreWebView2Frame7;

#endif /* __ICoreWebView2Frame7_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameChildFrameCreatedEventHandler_FWD_DEFINED__
#define __ICoreWebView2FrameChildFrameCreatedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2FrameChildFrameCreatedEventHandler ICoreWebView2FrameChildFrameCreatedEventHandler;

#endif /* __ICoreWebView2FrameChildFrameCreatedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameCreatedEventArgs_FWD_DEFINED__
#define __ICoreWebView2FrameCreatedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2FrameCreatedEventArgs ICoreWebView2FrameCreatedEventArgs;

#endif /* __ICoreWebView2FrameCreatedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameInfo_FWD_DEFINED__
#define __ICoreWebView2FrameInfo_FWD_DEFINED__
typedef interface ICoreWebView2FrameInfo ICoreWebView2FrameInfo;

#endif /* __ICoreWebView2FrameInfo_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameInfo2_FWD_DEFINED__
#define __ICoreWebView2FrameInfo2_FWD_DEFINED__
typedef interface ICoreWebView2FrameInfo2 ICoreWebView2FrameInfo2;

#endif /* __ICoreWebView2FrameInfo2_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameInfoCollection_FWD_DEFINED__
#define __ICoreWebView2FrameInfoCollection_FWD_DEFINED__
typedef interface ICoreWebView2FrameInfoCollection ICoreWebView2FrameInfoCollection;

#endif /* __ICoreWebView2FrameInfoCollection_FWD_DEFINED__ */

#ifndef __ICoreWebView2FrameInfoCollectionIterator_FWD_DEFINED__
#define __ICoreWebView2FrameInfoCollectionIterator_FWD_DEFINED__
typedef interface ICoreWebView2FrameInfoCollectionIterator ICoreWebView2FrameInfoCollectionIterator;

#endif /* __ICoreWebView2FrameInfoCollectionIterator_FWD_DEFINED__ */

#ifndef __ICoreWebView2HttpHeadersCollectionIterator_FWD_DEFINED__
#define __ICoreWebView2HttpHeadersCollectionIterator_FWD_DEFINED__
typedef interface ICoreWebView2HttpHeadersCollectionIterator ICoreWebView2HttpHeadersCollectionIterator;

#endif /* __ICoreWebView2HttpHeadersCollectionIterator_FWD_DEFINED__ */

#ifndef __ICoreWebView2HttpRequestHeaders_FWD_DEFINED__
#define __ICoreWebView2HttpRequestHeaders_FWD_DEFINED__
typedef interface ICoreWebView2HttpRequestHeaders ICoreWebView2HttpRequestHeaders;

#endif /* __ICoreWebView2HttpRequestHeaders_FWD_DEFINED__ */

#ifndef __ICoreWebView2HttpResponseHeaders_FWD_DEFINED__
#define __ICoreWebView2HttpResponseHeaders_FWD_DEFINED__
typedef interface ICoreWebView2HttpResponseHeaders ICoreWebView2HttpResponseHeaders;

#endif /* __ICoreWebView2HttpResponseHeaders_FWD_DEFINED__ */

#ifndef __ICoreWebView2LaunchingExternalUriSchemeEventArgs_FWD_DEFINED__
#define __ICoreWebView2LaunchingExternalUriSchemeEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2LaunchingExternalUriSchemeEventArgs ICoreWebView2LaunchingExternalUriSchemeEventArgs;

#endif /* __ICoreWebView2LaunchingExternalUriSchemeEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2MoveFocusRequestedEventArgs_FWD_DEFINED__
#define __ICoreWebView2MoveFocusRequestedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2MoveFocusRequestedEventArgs ICoreWebView2MoveFocusRequestedEventArgs;

#endif /* __ICoreWebView2MoveFocusRequestedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2NavigationCompletedEventArgs_FWD_DEFINED__
#define __ICoreWebView2NavigationCompletedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2NavigationCompletedEventArgs ICoreWebView2NavigationCompletedEventArgs;

#endif /* __ICoreWebView2NavigationCompletedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2NavigationCompletedEventArgs2_FWD_DEFINED__
#define __ICoreWebView2NavigationCompletedEventArgs2_FWD_DEFINED__
typedef interface ICoreWebView2NavigationCompletedEventArgs2 ICoreWebView2NavigationCompletedEventArgs2;

#endif /* __ICoreWebView2NavigationCompletedEventArgs2_FWD_DEFINED__ */

#ifndef __ICoreWebView2NavigationStartingEventArgs_FWD_DEFINED__
#define __ICoreWebView2NavigationStartingEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2NavigationStartingEventArgs ICoreWebView2NavigationStartingEventArgs;

#endif /* __ICoreWebView2NavigationStartingEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2NavigationStartingEventArgs2_FWD_DEFINED__
#define __ICoreWebView2NavigationStartingEventArgs2_FWD_DEFINED__
typedef interface ICoreWebView2NavigationStartingEventArgs2 ICoreWebView2NavigationStartingEventArgs2;

#endif /* __ICoreWebView2NavigationStartingEventArgs2_FWD_DEFINED__ */

#ifndef __ICoreWebView2NavigationStartingEventArgs3_FWD_DEFINED__
#define __ICoreWebView2NavigationStartingEventArgs3_FWD_DEFINED__
typedef interface ICoreWebView2NavigationStartingEventArgs3 ICoreWebView2NavigationStartingEventArgs3;

#endif /* __ICoreWebView2NavigationStartingEventArgs3_FWD_DEFINED__ */

#ifndef __ICoreWebView2NewWindowRequestedEventArgs_FWD_DEFINED__
#define __ICoreWebView2NewWindowRequestedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2NewWindowRequestedEventArgs ICoreWebView2NewWindowRequestedEventArgs;

#endif /* __ICoreWebView2NewWindowRequestedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2NewWindowRequestedEventArgs2_FWD_DEFINED__
#define __ICoreWebView2NewWindowRequestedEventArgs2_FWD_DEFINED__
typedef interface ICoreWebView2NewWindowRequestedEventArgs2 ICoreWebView2NewWindowRequestedEventArgs2;

#endif /* __ICoreWebView2NewWindowRequestedEventArgs2_FWD_DEFINED__ */

#ifndef __ICoreWebView2NewWindowRequestedEventArgs3_FWD_DEFINED__
#define __ICoreWebView2NewWindowRequestedEventArgs3_FWD_DEFINED__
typedef interface ICoreWebView2NewWindowRequestedEventArgs3 ICoreWebView2NewWindowRequestedEventArgs3;

#endif /* __ICoreWebView2NewWindowRequestedEventArgs3_FWD_DEFINED__ */

#ifndef __ICoreWebView2NonClientRegionChangedEventArgs_FWD_DEFINED__
#define __ICoreWebView2NonClientRegionChangedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2NonClientRegionChangedEventArgs ICoreWebView2NonClientRegionChangedEventArgs;

#endif /* __ICoreWebView2NonClientRegionChangedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2Notification_FWD_DEFINED__
#define __ICoreWebView2Notification_FWD_DEFINED__
typedef interface ICoreWebView2Notification ICoreWebView2Notification;

#endif /* __ICoreWebView2Notification_FWD_DEFINED__ */

#ifndef __ICoreWebView2NotificationCloseRequestedEventHandler_FWD_DEFINED__
#define __ICoreWebView2NotificationCloseRequestedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2NotificationCloseRequestedEventHandler ICoreWebView2NotificationCloseRequestedEventHandler;

#endif /* __ICoreWebView2NotificationCloseRequestedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2NotificationReceivedEventArgs_FWD_DEFINED__
#define __ICoreWebView2NotificationReceivedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2NotificationReceivedEventArgs ICoreWebView2NotificationReceivedEventArgs;

#endif /* __ICoreWebView2NotificationReceivedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2ObjectCollectionView_FWD_DEFINED__
#define __ICoreWebView2ObjectCollectionView_FWD_DEFINED__
typedef interface ICoreWebView2ObjectCollectionView ICoreWebView2ObjectCollectionView;

#endif /* __ICoreWebView2ObjectCollectionView_FWD_DEFINED__ */

#ifndef __ICoreWebView2ObjectCollection_FWD_DEFINED__
#define __ICoreWebView2ObjectCollection_FWD_DEFINED__
typedef interface ICoreWebView2ObjectCollection ICoreWebView2ObjectCollection;

#endif /* __ICoreWebView2ObjectCollection_FWD_DEFINED__ */

#ifndef __ICoreWebView2PermissionRequestedEventArgs_FWD_DEFINED__
#define __ICoreWebView2PermissionRequestedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2PermissionRequestedEventArgs ICoreWebView2PermissionRequestedEventArgs;

#endif /* __ICoreWebView2PermissionRequestedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2PermissionRequestedEventArgs2_FWD_DEFINED__
#define __ICoreWebView2PermissionRequestedEventArgs2_FWD_DEFINED__
typedef interface ICoreWebView2PermissionRequestedEventArgs2 ICoreWebView2PermissionRequestedEventArgs2;

#endif /* __ICoreWebView2PermissionRequestedEventArgs2_FWD_DEFINED__ */

#ifndef __ICoreWebView2PermissionRequestedEventArgs3_FWD_DEFINED__
#define __ICoreWebView2PermissionRequestedEventArgs3_FWD_DEFINED__
typedef interface ICoreWebView2PermissionRequestedEventArgs3 ICoreWebView2PermissionRequestedEventArgs3;

#endif /* __ICoreWebView2PermissionRequestedEventArgs3_FWD_DEFINED__ */

#ifndef __ICoreWebView2PermissionSetting_FWD_DEFINED__
#define __ICoreWebView2PermissionSetting_FWD_DEFINED__
typedef interface ICoreWebView2PermissionSetting ICoreWebView2PermissionSetting;

#endif /* __ICoreWebView2PermissionSetting_FWD_DEFINED__ */

#ifndef __ICoreWebView2PointerInfo_FWD_DEFINED__
#define __ICoreWebView2PointerInfo_FWD_DEFINED__
typedef interface ICoreWebView2PointerInfo ICoreWebView2PointerInfo;

#endif /* __ICoreWebView2PointerInfo_FWD_DEFINED__ */

#ifndef __ICoreWebView2PrintSettings_FWD_DEFINED__
#define __ICoreWebView2PrintSettings_FWD_DEFINED__
typedef interface ICoreWebView2PrintSettings ICoreWebView2PrintSettings;

#endif /* __ICoreWebView2PrintSettings_FWD_DEFINED__ */

#ifndef __ICoreWebView2PrintSettings2_FWD_DEFINED__
#define __ICoreWebView2PrintSettings2_FWD_DEFINED__
typedef interface ICoreWebView2PrintSettings2 ICoreWebView2PrintSettings2;

#endif /* __ICoreWebView2PrintSettings2_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProcessExtendedInfo_FWD_DEFINED__
#define __ICoreWebView2ProcessExtendedInfo_FWD_DEFINED__
typedef interface ICoreWebView2ProcessExtendedInfo ICoreWebView2ProcessExtendedInfo;

#endif /* __ICoreWebView2ProcessExtendedInfo_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProcessFailedEventArgs_FWD_DEFINED__
#define __ICoreWebView2ProcessFailedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2ProcessFailedEventArgs ICoreWebView2ProcessFailedEventArgs;

#endif /* __ICoreWebView2ProcessFailedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProcessFailedEventArgs2_FWD_DEFINED__
#define __ICoreWebView2ProcessFailedEventArgs2_FWD_DEFINED__
typedef interface ICoreWebView2ProcessFailedEventArgs2 ICoreWebView2ProcessFailedEventArgs2;

#endif /* __ICoreWebView2ProcessFailedEventArgs2_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProcessFailedEventArgs3_FWD_DEFINED__
#define __ICoreWebView2ProcessFailedEventArgs3_FWD_DEFINED__
typedef interface ICoreWebView2ProcessFailedEventArgs3 ICoreWebView2ProcessFailedEventArgs3;

#endif /* __ICoreWebView2ProcessFailedEventArgs3_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProcessInfo_FWD_DEFINED__
#define __ICoreWebView2ProcessInfo_FWD_DEFINED__
typedef interface ICoreWebView2ProcessInfo ICoreWebView2ProcessInfo;

#endif /* __ICoreWebView2ProcessInfo_FWD_DEFINED__ */

#ifndef __ICoreWebView2Profile_FWD_DEFINED__
#define __ICoreWebView2Profile_FWD_DEFINED__
typedef interface ICoreWebView2Profile ICoreWebView2Profile;

#endif /* __ICoreWebView2Profile_FWD_DEFINED__ */

#ifndef __ICoreWebView2Profile2_FWD_DEFINED__
#define __ICoreWebView2Profile2_FWD_DEFINED__
typedef interface ICoreWebView2Profile2 ICoreWebView2Profile2;

#endif /* __ICoreWebView2Profile2_FWD_DEFINED__ */

#ifndef __ICoreWebView2ClearBrowsingDataCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2ClearBrowsingDataCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2ClearBrowsingDataCompletedHandler ICoreWebView2ClearBrowsingDataCompletedHandler;

#endif /* __ICoreWebView2ClearBrowsingDataCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Profile3_FWD_DEFINED__
#define __ICoreWebView2Profile3_FWD_DEFINED__
typedef interface ICoreWebView2Profile3 ICoreWebView2Profile3;

#endif /* __ICoreWebView2Profile3_FWD_DEFINED__ */

#ifndef __ICoreWebView2Profile4_FWD_DEFINED__
#define __ICoreWebView2Profile4_FWD_DEFINED__
typedef interface ICoreWebView2Profile4 ICoreWebView2Profile4;

#endif /* __ICoreWebView2Profile4_FWD_DEFINED__ */

#ifndef __ICoreWebView2SetPermissionStateCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2SetPermissionStateCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2SetPermissionStateCompletedHandler ICoreWebView2SetPermissionStateCompletedHandler;

#endif /* __ICoreWebView2SetPermissionStateCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler;

#endif /* __ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2Profile5_FWD_DEFINED__
#define __ICoreWebView2Profile5_FWD_DEFINED__
typedef interface ICoreWebView2Profile5 ICoreWebView2Profile5;

#endif /* __ICoreWebView2Profile5_FWD_DEFINED__ */

#ifndef __ICoreWebView2Profile6_FWD_DEFINED__
#define __ICoreWebView2Profile6_FWD_DEFINED__
typedef interface ICoreWebView2Profile6 ICoreWebView2Profile6;

#endif /* __ICoreWebView2Profile6_FWD_DEFINED__ */

#ifndef __ICoreWebView2Profile7_FWD_DEFINED__
#define __ICoreWebView2Profile7_FWD_DEFINED__
typedef interface ICoreWebView2Profile7 ICoreWebView2Profile7;

#endif /* __ICoreWebView2Profile7_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2ProfileAddBrowserExtensionCompletedHandler ICoreWebView2ProfileAddBrowserExtensionCompletedHandler;

#endif /* __ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler;

#endif /* __ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2BrowserExtensionList_FWD_DEFINED__
#define __ICoreWebView2BrowserExtensionList_FWD_DEFINED__
typedef interface ICoreWebView2BrowserExtensionList ICoreWebView2BrowserExtensionList;

#endif /* __ICoreWebView2BrowserExtensionList_FWD_DEFINED__ */

#ifndef __ICoreWebView2Profile8_FWD_DEFINED__
#define __ICoreWebView2Profile8_FWD_DEFINED__
typedef interface ICoreWebView2Profile8 ICoreWebView2Profile8;

#endif /* __ICoreWebView2Profile8_FWD_DEFINED__ */

#ifndef __ICoreWebView2ProfileDeletedEventHandler_FWD_DEFINED__
#define __ICoreWebView2ProfileDeletedEventHandler_FWD_DEFINED__
typedef interface ICoreWebView2ProfileDeletedEventHandler ICoreWebView2ProfileDeletedEventHandler;

#endif /* __ICoreWebView2ProfileDeletedEventHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2SaveAsUIShowingEventArgs_FWD_DEFINED__
#define __ICoreWebView2SaveAsUIShowingEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2SaveAsUIShowingEventArgs ICoreWebView2SaveAsUIShowingEventArgs;

#endif /* __ICoreWebView2SaveAsUIShowingEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2SaveFileSecurityCheckStartingEventArgs_FWD_DEFINED__
#define __ICoreWebView2SaveFileSecurityCheckStartingEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2SaveFileSecurityCheckStartingEventArgs ICoreWebView2SaveFileSecurityCheckStartingEventArgs;

#endif /* __ICoreWebView2SaveFileSecurityCheckStartingEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2ScreenCaptureStartingEventArgs_FWD_DEFINED__
#define __ICoreWebView2ScreenCaptureStartingEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2ScreenCaptureStartingEventArgs ICoreWebView2ScreenCaptureStartingEventArgs;

#endif /* __ICoreWebView2ScreenCaptureStartingEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2ScriptDialogOpeningEventArgs_FWD_DEFINED__
#define __ICoreWebView2ScriptDialogOpeningEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2ScriptDialogOpeningEventArgs ICoreWebView2ScriptDialogOpeningEventArgs;

#endif /* __ICoreWebView2ScriptDialogOpeningEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2ScriptException_FWD_DEFINED__
#define __ICoreWebView2ScriptException_FWD_DEFINED__
typedef interface ICoreWebView2ScriptException ICoreWebView2ScriptException;

#endif /* __ICoreWebView2ScriptException_FWD_DEFINED__ */

#ifndef __ICoreWebView2ServerCertificateErrorDetectedEventArgs_FWD_DEFINED__
#define __ICoreWebView2ServerCertificateErrorDetectedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2ServerCertificateErrorDetectedEventArgs ICoreWebView2ServerCertificateErrorDetectedEventArgs;

#endif /* __ICoreWebView2ServerCertificateErrorDetectedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2Settings_FWD_DEFINED__
#define __ICoreWebView2Settings_FWD_DEFINED__
typedef interface ICoreWebView2Settings ICoreWebView2Settings;

#endif /* __ICoreWebView2Settings_FWD_DEFINED__ */

#ifndef __ICoreWebView2Settings2_FWD_DEFINED__
#define __ICoreWebView2Settings2_FWD_DEFINED__
typedef interface ICoreWebView2Settings2 ICoreWebView2Settings2;

#endif /* __ICoreWebView2Settings2_FWD_DEFINED__ */

#ifndef __ICoreWebView2Settings3_FWD_DEFINED__
#define __ICoreWebView2Settings3_FWD_DEFINED__
typedef interface ICoreWebView2Settings3 ICoreWebView2Settings3;

#endif /* __ICoreWebView2Settings3_FWD_DEFINED__ */

#ifndef __ICoreWebView2Settings4_FWD_DEFINED__
#define __ICoreWebView2Settings4_FWD_DEFINED__
typedef interface ICoreWebView2Settings4 ICoreWebView2Settings4;

#endif /* __ICoreWebView2Settings4_FWD_DEFINED__ */

#ifndef __ICoreWebView2Settings5_FWD_DEFINED__
#define __ICoreWebView2Settings5_FWD_DEFINED__
typedef interface ICoreWebView2Settings5 ICoreWebView2Settings5;

#endif /* __ICoreWebView2Settings5_FWD_DEFINED__ */

#ifndef __ICoreWebView2Settings6_FWD_DEFINED__
#define __ICoreWebView2Settings6_FWD_DEFINED__
typedef interface ICoreWebView2Settings6 ICoreWebView2Settings6;

#endif /* __ICoreWebView2Settings6_FWD_DEFINED__ */

#ifndef __ICoreWebView2Settings7_FWD_DEFINED__
#define __ICoreWebView2Settings7_FWD_DEFINED__
typedef interface ICoreWebView2Settings7 ICoreWebView2Settings7;

#endif /* __ICoreWebView2Settings7_FWD_DEFINED__ */

#ifndef __ICoreWebView2Settings8_FWD_DEFINED__
#define __ICoreWebView2Settings8_FWD_DEFINED__
typedef interface ICoreWebView2Settings8 ICoreWebView2Settings8;

#endif /* __ICoreWebView2Settings8_FWD_DEFINED__ */

#ifndef __ICoreWebView2Settings9_FWD_DEFINED__
#define __ICoreWebView2Settings9_FWD_DEFINED__
typedef interface ICoreWebView2Settings9 ICoreWebView2Settings9;

#endif /* __ICoreWebView2Settings9_FWD_DEFINED__ */

#ifndef __ICoreWebView2SharedBuffer_FWD_DEFINED__
#define __ICoreWebView2SharedBuffer_FWD_DEFINED__
typedef interface ICoreWebView2SharedBuffer ICoreWebView2SharedBuffer;

#endif /* __ICoreWebView2SharedBuffer_FWD_DEFINED__ */

#ifndef __ICoreWebView2SourceChangedEventArgs_FWD_DEFINED__
#define __ICoreWebView2SourceChangedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2SourceChangedEventArgs ICoreWebView2SourceChangedEventArgs;

#endif /* __ICoreWebView2SourceChangedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebMessageReceivedEventArgs_FWD_DEFINED__
#define __ICoreWebView2WebMessageReceivedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2WebMessageReceivedEventArgs ICoreWebView2WebMessageReceivedEventArgs;

#endif /* __ICoreWebView2WebMessageReceivedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebMessageReceivedEventArgs2_FWD_DEFINED__
#define __ICoreWebView2WebMessageReceivedEventArgs2_FWD_DEFINED__
typedef interface ICoreWebView2WebMessageReceivedEventArgs2 ICoreWebView2WebMessageReceivedEventArgs2;

#endif /* __ICoreWebView2WebMessageReceivedEventArgs2_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebResourceRequest_FWD_DEFINED__
#define __ICoreWebView2WebResourceRequest_FWD_DEFINED__
typedef interface ICoreWebView2WebResourceRequest ICoreWebView2WebResourceRequest;

#endif /* __ICoreWebView2WebResourceRequest_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebResourceRequestedEventArgs_FWD_DEFINED__
#define __ICoreWebView2WebResourceRequestedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2WebResourceRequestedEventArgs ICoreWebView2WebResourceRequestedEventArgs;

#endif /* __ICoreWebView2WebResourceRequestedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebResourceRequestedEventArgs2_FWD_DEFINED__
#define __ICoreWebView2WebResourceRequestedEventArgs2_FWD_DEFINED__
typedef interface ICoreWebView2WebResourceRequestedEventArgs2 ICoreWebView2WebResourceRequestedEventArgs2;

#endif /* __ICoreWebView2WebResourceRequestedEventArgs2_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponse_FWD_DEFINED__
#define __ICoreWebView2WebResourceResponse_FWD_DEFINED__
typedef interface ICoreWebView2WebResourceResponse ICoreWebView2WebResourceResponse;

#endif /* __ICoreWebView2WebResourceResponse_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponseReceivedEventArgs_FWD_DEFINED__
#define __ICoreWebView2WebResourceResponseReceivedEventArgs_FWD_DEFINED__
typedef interface ICoreWebView2WebResourceResponseReceivedEventArgs ICoreWebView2WebResourceResponseReceivedEventArgs;

#endif /* __ICoreWebView2WebResourceResponseReceivedEventArgs_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponseView_FWD_DEFINED__
#define __ICoreWebView2WebResourceResponseView_FWD_DEFINED__
typedef interface ICoreWebView2WebResourceResponseView ICoreWebView2WebResourceResponseView;

#endif /* __ICoreWebView2WebResourceResponseView_FWD_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_FWD_DEFINED__
#define __ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_FWD_DEFINED__
typedef interface ICoreWebView2WebResourceResponseViewGetContentCompletedHandler ICoreWebView2WebResourceResponseViewGetContentCompletedHandler;

#endif /* __ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_FWD_DEFINED__ */

#ifndef __ICoreWebView2WindowFeatures_FWD_DEFINED__
#define __ICoreWebView2WindowFeatures_FWD_DEFINED__
typedef interface ICoreWebView2WindowFeatures ICoreWebView2WindowFeatures;

#endif /* __ICoreWebView2WindowFeatures_FWD_DEFINED__ */

#ifndef __ICoreWebView2PermissionSettingCollectionView_FWD_DEFINED__
#define __ICoreWebView2PermissionSettingCollectionView_FWD_DEFINED__
typedef interface ICoreWebView2PermissionSettingCollectionView ICoreWebView2PermissionSettingCollectionView;

#endif /* __ICoreWebView2PermissionSettingCollectionView_FWD_DEFINED__ */

/* header files for imported files */
#include "objidl.h"
#include "oaidl.h"
#include "EventToken.h"

#ifdef __cplusplus
extern "C"
{
#endif

#ifndef __WebView2_LIBRARY_DEFINED__
#define __WebView2_LIBRARY_DEFINED__

    /* library WebView2 */
    /* [version][uuid] */

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_BOUNDS_MODE
    {
        COREWEBVIEW2_BOUNDS_MODE_USE_RAW_PIXELS = 0,
        COREWEBVIEW2_BOUNDS_MODE_USE_RASTERIZATION_SCALE = (COREWEBVIEW2_BOUNDS_MODE_USE_RAW_PIXELS + 1)
    } COREWEBVIEW2_BOUNDS_MODE;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND
    {
        COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND_NORMAL = 0,
        COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND_FAILED = (COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND_NORMAL + 1)
    } COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_BROWSING_DATA_KINDS
    {
        COREWEBVIEW2_BROWSING_DATA_KINDS_FILE_SYSTEMS = 0x1,
        COREWEBVIEW2_BROWSING_DATA_KINDS_INDEXED_DB = 0x2,
        COREWEBVIEW2_BROWSING_DATA_KINDS_LOCAL_STORAGE = 0x4,
        COREWEBVIEW2_BROWSING_DATA_KINDS_WEB_SQL = 0x8,
        COREWEBVIEW2_BROWSING_DATA_KINDS_CACHE_STORAGE = 0x10,
        COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_DOM_STORAGE = 0x20,
        COREWEBVIEW2_BROWSING_DATA_KINDS_COOKIES = 0x40,
        COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_SITE = 0x80,
        COREWEBVIEW2_BROWSING_DATA_KINDS_DISK_CACHE = 0x100,
        COREWEBVIEW2_BROWSING_DATA_KINDS_DOWNLOAD_HISTORY = 0x200,
        COREWEBVIEW2_BROWSING_DATA_KINDS_GENERAL_AUTOFILL = 0x400,
        COREWEBVIEW2_BROWSING_DATA_KINDS_PASSWORD_AUTOSAVE = 0x800,
        COREWEBVIEW2_BROWSING_DATA_KINDS_BROWSING_HISTORY = 0x1000,
        COREWEBVIEW2_BROWSING_DATA_KINDS_SETTINGS = 0x2000,
        COREWEBVIEW2_BROWSING_DATA_KINDS_ALL_PROFILE = 0x4000,
        COREWEBVIEW2_BROWSING_DATA_KINDS_SERVICE_WORKERS = 0x8000
    } COREWEBVIEW2_BROWSING_DATA_KINDS;

    DEFINE_ENUM_FLAG_OPERATORS(COREWEBVIEW2_BROWSING_DATA_KINDS)
    typedef /* [v1_enum] */
        enum COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT
    {
        COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_PNG = 0,
        COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_JPEG = (COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_PNG + 1)
    } COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_CHANNEL_SEARCH_KIND
    {
        COREWEBVIEW2_CHANNEL_SEARCH_KIND_MOST_STABLE = 0,
        COREWEBVIEW2_CHANNEL_SEARCH_KIND_LEAST_STABLE = (COREWEBVIEW2_CHANNEL_SEARCH_KIND_MOST_STABLE + 1)
    } COREWEBVIEW2_CHANNEL_SEARCH_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_CLIENT_CERTIFICATE_KIND
    {
        COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_SMART_CARD = 0,
        COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_PIN = (COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_SMART_CARD + 1),
        COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_OTHER = (COREWEBVIEW2_CLIENT_CERTIFICATE_KIND_PIN + 1)
    } COREWEBVIEW2_CLIENT_CERTIFICATE_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND
    {
        COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_COMMAND = 0,
        COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_CHECK_BOX = (COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_COMMAND + 1),
        COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_RADIO = (COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_CHECK_BOX + 1),
        COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_SEPARATOR = (COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_RADIO + 1),
        COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_SUBMENU = (COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND_SEPARATOR + 1)
    } COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND
    {
        COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_PAGE = 0,
        COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_IMAGE = (COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_PAGE + 1),
        COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_SELECTED_TEXT = (COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_IMAGE + 1),
        COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_AUDIO = (COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_SELECTED_TEXT + 1),
        COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_VIDEO = (COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND_AUDIO + 1)
    } COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_COOKIE_SAME_SITE_KIND
    {
        COREWEBVIEW2_COOKIE_SAME_SITE_KIND_NONE = 0,
        COREWEBVIEW2_COOKIE_SAME_SITE_KIND_LAX = (COREWEBVIEW2_COOKIE_SAME_SITE_KIND_NONE + 1),
        COREWEBVIEW2_COOKIE_SAME_SITE_KIND_STRICT = (COREWEBVIEW2_COOKIE_SAME_SITE_KIND_LAX + 1)
    } COREWEBVIEW2_COOKIE_SAME_SITE_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT
    {
        COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_TOP_LEFT = 0,
        COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_TOP_RIGHT = (COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_TOP_LEFT + 1),
        COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_BOTTOM_LEFT = (COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_TOP_RIGHT + 1),
        COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_BOTTOM_RIGHT = (COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT_BOTTOM_LEFT + 1)
    } COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON
    {
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NONE = 0,
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_FAILED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NONE + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_FAILED + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_ACCESS_DENIED + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_NO_SPACE + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_NAME_TOO_LONG + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_MALICIOUS = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_LARGE + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_MALICIOUS + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED_BY_POLICY = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TRANSIENT_ERROR + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_BLOCKED_BY_POLICY + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_SECURITY_CHECK_FAILED + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_TOO_SHORT + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_FILE_HASH_MISMATCH + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_FAILED + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_TIMEOUT + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_DISCONNECTED + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_SERVER_DOWN + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_NETWORK_INVALID_REQUEST + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_FAILED + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_NO_RANGE + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_BAD_CONTENT + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CERTIFICATE_PROBLEM = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_UNAUTHORIZED + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_FORBIDDEN = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CERTIFICATE_PROBLEM + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_UNEXPECTED_RESPONSE = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_FORBIDDEN + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_UNEXPECTED_RESPONSE + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CROSS_ORIGIN_REDIRECT = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CONTENT_LENGTH_MISMATCH + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_CANCELED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_SERVER_CROSS_ORIGIN_REDIRECT + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_CANCELED + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_PAUSED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_SHUTDOWN + 1),
        COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_DOWNLOAD_PROCESS_CRASHED = (COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON_USER_PAUSED + 1)
    } COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_DOWNLOAD_STATE
    {
        COREWEBVIEW2_DOWNLOAD_STATE_IN_PROGRESS = 0,
        COREWEBVIEW2_DOWNLOAD_STATE_INTERRUPTED = (COREWEBVIEW2_DOWNLOAD_STATE_IN_PROGRESS + 1),
        COREWEBVIEW2_DOWNLOAD_STATE_COMPLETED = (COREWEBVIEW2_DOWNLOAD_STATE_INTERRUPTED + 1)
    } COREWEBVIEW2_DOWNLOAD_STATE;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_FAVICON_IMAGE_FORMAT
    {
        COREWEBVIEW2_FAVICON_IMAGE_FORMAT_PNG = 0,
        COREWEBVIEW2_FAVICON_IMAGE_FORMAT_JPEG = (COREWEBVIEW2_FAVICON_IMAGE_FORMAT_PNG + 1)
    } COREWEBVIEW2_FAVICON_IMAGE_FORMAT;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND
    {
        COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND_FILE = 0,
        COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND_DIRECTORY = (COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND_FILE + 1)
    } COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION
    {
        COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION_READ_ONLY = 0,
        COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION_READ_WRITE = (COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION_READ_ONLY + 1)
    } COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_FRAME_KIND
    {
        COREWEBVIEW2_FRAME_KIND_UNKNOWN = 0,
        COREWEBVIEW2_FRAME_KIND_MAIN_FRAME = (COREWEBVIEW2_FRAME_KIND_UNKNOWN + 1),
        COREWEBVIEW2_FRAME_KIND_IFRAME = (COREWEBVIEW2_FRAME_KIND_MAIN_FRAME + 1),
        COREWEBVIEW2_FRAME_KIND_EMBED = (COREWEBVIEW2_FRAME_KIND_IFRAME + 1),
        COREWEBVIEW2_FRAME_KIND_OBJECT = (COREWEBVIEW2_FRAME_KIND_EMBED + 1)
    } COREWEBVIEW2_FRAME_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND
    {
        COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY = 0,
        COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_ALLOW = (COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY + 1),
        COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_DENY_CORS = (COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND_ALLOW + 1)
    } COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_KEY_EVENT_KIND
    {
        COREWEBVIEW2_KEY_EVENT_KIND_KEY_DOWN = 0,
        COREWEBVIEW2_KEY_EVENT_KIND_KEY_UP = (COREWEBVIEW2_KEY_EVENT_KIND_KEY_DOWN + 1),
        COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_DOWN = (COREWEBVIEW2_KEY_EVENT_KIND_KEY_UP + 1),
        COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_UP = (COREWEBVIEW2_KEY_EVENT_KIND_SYSTEM_KEY_DOWN + 1)
    } COREWEBVIEW2_KEY_EVENT_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL
    {
        COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL_NORMAL = 0,
        COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL_LOW = (COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL_NORMAL + 1)
    } COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_MOUSE_EVENT_KIND
    {
        COREWEBVIEW2_MOUSE_EVENT_KIND_HORIZONTAL_WHEEL = 526,
        COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOUBLE_CLICK = 515,
        COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_DOWN = 513,
        COREWEBVIEW2_MOUSE_EVENT_KIND_LEFT_BUTTON_UP = 514,
        COREWEBVIEW2_MOUSE_EVENT_KIND_LEAVE = 675,
        COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOUBLE_CLICK = 521,
        COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_DOWN = 519,
        COREWEBVIEW2_MOUSE_EVENT_KIND_MIDDLE_BUTTON_UP = 520,
        COREWEBVIEW2_MOUSE_EVENT_KIND_MOVE = 512,
        COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOUBLE_CLICK = 518,
        COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_DOWN = 516,
        COREWEBVIEW2_MOUSE_EVENT_KIND_RIGHT_BUTTON_UP = 517,
        COREWEBVIEW2_MOUSE_EVENT_KIND_WHEEL = 522,
        COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOUBLE_CLICK = 525,
        COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_DOWN = 523,
        COREWEBVIEW2_MOUSE_EVENT_KIND_X_BUTTON_UP = 524,
        COREWEBVIEW2_MOUSE_EVENT_KIND_NON_CLIENT_RIGHT_BUTTON_DOWN = 164,
        COREWEBVIEW2_MOUSE_EVENT_KIND_NON_CLIENT_RIGHT_BUTTON_UP = 165
    } COREWEBVIEW2_MOUSE_EVENT_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS
    {
        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_NONE = 0,
        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_LEFT_BUTTON = 0x1,
        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_RIGHT_BUTTON = 0x2,
        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_SHIFT = 0x4,
        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_CONTROL = 0x8,
        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_MIDDLE_BUTTON = 0x10,
        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON1 = 0x20,
        COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS_X_BUTTON2 = 0x40
    } COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS;

    DEFINE_ENUM_FLAG_OPERATORS(COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS)
    typedef /* [v1_enum] */
        enum COREWEBVIEW2_MOVE_FOCUS_REASON
    {
        COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC = 0,
        COREWEBVIEW2_MOVE_FOCUS_REASON_NEXT = (COREWEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC + 1),
        COREWEBVIEW2_MOVE_FOCUS_REASON_PREVIOUS = (COREWEBVIEW2_MOVE_FOCUS_REASON_NEXT + 1)
    } COREWEBVIEW2_MOVE_FOCUS_REASON;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_NAVIGATION_KIND
    {
        COREWEBVIEW2_NAVIGATION_KIND_RELOAD = 0,
        COREWEBVIEW2_NAVIGATION_KIND_BACK_OR_FORWARD = (COREWEBVIEW2_NAVIGATION_KIND_RELOAD + 1),
        COREWEBVIEW2_NAVIGATION_KIND_NEW_DOCUMENT = (COREWEBVIEW2_NAVIGATION_KIND_BACK_OR_FORWARD + 1)
    } COREWEBVIEW2_NAVIGATION_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_NON_CLIENT_REGION_KIND
    {
        COREWEBVIEW2_NON_CLIENT_REGION_KIND_NOWHERE = 0,
        COREWEBVIEW2_NON_CLIENT_REGION_KIND_CLIENT = 1,
        COREWEBVIEW2_NON_CLIENT_REGION_KIND_CAPTION = 2,
        COREWEBVIEW2_NON_CLIENT_REGION_KIND_MINIMIZE = 8,
        COREWEBVIEW2_NON_CLIENT_REGION_KIND_MAXIMIZE = 9,
        COREWEBVIEW2_NON_CLIENT_REGION_KIND_CLOSE = 20
    } COREWEBVIEW2_NON_CLIENT_REGION_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PDF_TOOLBAR_ITEMS
    {
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_NONE = 0,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_SAVE = 0x1,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_PRINT = 0x2,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_SAVE_AS = 0x4,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_ZOOM_IN = 0x8,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_ZOOM_OUT = 0x10,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_ROTATE = 0x20,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_FIT_PAGE = 0x40,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_PAGE_LAYOUT = 0x80,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_BOOKMARKS = 0x100,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_PAGE_SELECTOR = 0x200,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_SEARCH = 0x400,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_FULL_SCREEN = 0x800,
        COREWEBVIEW2_PDF_TOOLBAR_ITEMS_MORE_SETTINGS = 0x1000
    } COREWEBVIEW2_PDF_TOOLBAR_ITEMS;

    DEFINE_ENUM_FLAG_OPERATORS(COREWEBVIEW2_PDF_TOOLBAR_ITEMS)
    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PERMISSION_KIND
    {
        COREWEBVIEW2_PERMISSION_KIND_UNKNOWN_PERMISSION = 0,
        COREWEBVIEW2_PERMISSION_KIND_MICROPHONE = (COREWEBVIEW2_PERMISSION_KIND_UNKNOWN_PERMISSION + 1),
        COREWEBVIEW2_PERMISSION_KIND_CAMERA = (COREWEBVIEW2_PERMISSION_KIND_MICROPHONE + 1),
        COREWEBVIEW2_PERMISSION_KIND_GEOLOCATION = (COREWEBVIEW2_PERMISSION_KIND_CAMERA + 1),
        COREWEBVIEW2_PERMISSION_KIND_NOTIFICATIONS = (COREWEBVIEW2_PERMISSION_KIND_GEOLOCATION + 1),
        COREWEBVIEW2_PERMISSION_KIND_OTHER_SENSORS = (COREWEBVIEW2_PERMISSION_KIND_NOTIFICATIONS + 1),
        COREWEBVIEW2_PERMISSION_KIND_CLIPBOARD_READ = (COREWEBVIEW2_PERMISSION_KIND_OTHER_SENSORS + 1),
        COREWEBVIEW2_PERMISSION_KIND_MULTIPLE_AUTOMATIC_DOWNLOADS = (COREWEBVIEW2_PERMISSION_KIND_CLIPBOARD_READ + 1),
        COREWEBVIEW2_PERMISSION_KIND_FILE_READ_WRITE = (COREWEBVIEW2_PERMISSION_KIND_MULTIPLE_AUTOMATIC_DOWNLOADS + 1),
        COREWEBVIEW2_PERMISSION_KIND_AUTOPLAY = (COREWEBVIEW2_PERMISSION_KIND_FILE_READ_WRITE + 1),
        COREWEBVIEW2_PERMISSION_KIND_LOCAL_FONTS = (COREWEBVIEW2_PERMISSION_KIND_AUTOPLAY + 1),
        COREWEBVIEW2_PERMISSION_KIND_MIDI_SYSTEM_EXCLUSIVE_MESSAGES = (COREWEBVIEW2_PERMISSION_KIND_LOCAL_FONTS + 1),
        COREWEBVIEW2_PERMISSION_KIND_WINDOW_MANAGEMENT = (COREWEBVIEW2_PERMISSION_KIND_MIDI_SYSTEM_EXCLUSIVE_MESSAGES + 1)
    } COREWEBVIEW2_PERMISSION_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PERMISSION_STATE
    {
        COREWEBVIEW2_PERMISSION_STATE_DEFAULT = 0,
        COREWEBVIEW2_PERMISSION_STATE_ALLOW = (COREWEBVIEW2_PERMISSION_STATE_DEFAULT + 1),
        COREWEBVIEW2_PERMISSION_STATE_DENY = (COREWEBVIEW2_PERMISSION_STATE_ALLOW + 1)
    } COREWEBVIEW2_PERMISSION_STATE;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_POINTER_EVENT_KIND
    {
        COREWEBVIEW2_POINTER_EVENT_KIND_ACTIVATE = 587,
        COREWEBVIEW2_POINTER_EVENT_KIND_DOWN = 582,
        COREWEBVIEW2_POINTER_EVENT_KIND_ENTER = 585,
        COREWEBVIEW2_POINTER_EVENT_KIND_LEAVE = 586,
        COREWEBVIEW2_POINTER_EVENT_KIND_UP = 583,
        COREWEBVIEW2_POINTER_EVENT_KIND_UPDATE = 581
    } COREWEBVIEW2_POINTER_EVENT_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PREFERRED_COLOR_SCHEME
    {
        COREWEBVIEW2_PREFERRED_COLOR_SCHEME_AUTO = 0,
        COREWEBVIEW2_PREFERRED_COLOR_SCHEME_LIGHT = (COREWEBVIEW2_PREFERRED_COLOR_SCHEME_AUTO + 1),
        COREWEBVIEW2_PREFERRED_COLOR_SCHEME_DARK = (COREWEBVIEW2_PREFERRED_COLOR_SCHEME_LIGHT + 1)
    } COREWEBVIEW2_PREFERRED_COLOR_SCHEME;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PRINT_COLLATION
    {
        COREWEBVIEW2_PRINT_COLLATION_DEFAULT = 0,
        COREWEBVIEW2_PRINT_COLLATION_COLLATED = (COREWEBVIEW2_PRINT_COLLATION_DEFAULT + 1),
        COREWEBVIEW2_PRINT_COLLATION_UNCOLLATED = (COREWEBVIEW2_PRINT_COLLATION_COLLATED + 1)
    } COREWEBVIEW2_PRINT_COLLATION;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PRINT_COLOR_MODE
    {
        COREWEBVIEW2_PRINT_COLOR_MODE_DEFAULT = 0,
        COREWEBVIEW2_PRINT_COLOR_MODE_COLOR = (COREWEBVIEW2_PRINT_COLOR_MODE_DEFAULT + 1),
        COREWEBVIEW2_PRINT_COLOR_MODE_GRAYSCALE = (COREWEBVIEW2_PRINT_COLOR_MODE_COLOR + 1)
    } COREWEBVIEW2_PRINT_COLOR_MODE;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PRINT_DIALOG_KIND
    {
        COREWEBVIEW2_PRINT_DIALOG_KIND_BROWSER = 0,
        COREWEBVIEW2_PRINT_DIALOG_KIND_SYSTEM = (COREWEBVIEW2_PRINT_DIALOG_KIND_BROWSER + 1)
    } COREWEBVIEW2_PRINT_DIALOG_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PRINT_DUPLEX
    {
        COREWEBVIEW2_PRINT_DUPLEX_DEFAULT = 0,
        COREWEBVIEW2_PRINT_DUPLEX_ONE_SIDED = (COREWEBVIEW2_PRINT_DUPLEX_DEFAULT + 1),
        COREWEBVIEW2_PRINT_DUPLEX_TWO_SIDED_LONG_EDGE = (COREWEBVIEW2_PRINT_DUPLEX_ONE_SIDED + 1),
        COREWEBVIEW2_PRINT_DUPLEX_TWO_SIDED_SHORT_EDGE = (COREWEBVIEW2_PRINT_DUPLEX_TWO_SIDED_LONG_EDGE + 1)
    } COREWEBVIEW2_PRINT_DUPLEX;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PRINT_MEDIA_SIZE
    {
        COREWEBVIEW2_PRINT_MEDIA_SIZE_DEFAULT = 0,
        COREWEBVIEW2_PRINT_MEDIA_SIZE_CUSTOM = (COREWEBVIEW2_PRINT_MEDIA_SIZE_DEFAULT + 1)
    } COREWEBVIEW2_PRINT_MEDIA_SIZE;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PRINT_ORIENTATION
    {
        COREWEBVIEW2_PRINT_ORIENTATION_PORTRAIT = 0,
        COREWEBVIEW2_PRINT_ORIENTATION_LANDSCAPE = (COREWEBVIEW2_PRINT_ORIENTATION_PORTRAIT + 1)
    } COREWEBVIEW2_PRINT_ORIENTATION;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PRINT_STATUS
    {
        COREWEBVIEW2_PRINT_STATUS_SUCCEEDED = 0,
        COREWEBVIEW2_PRINT_STATUS_PRINTER_UNAVAILABLE = (COREWEBVIEW2_PRINT_STATUS_SUCCEEDED + 1),
        COREWEBVIEW2_PRINT_STATUS_OTHER_ERROR = (COREWEBVIEW2_PRINT_STATUS_PRINTER_UNAVAILABLE + 1)
    } COREWEBVIEW2_PRINT_STATUS;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PROCESS_FAILED_KIND
    {
        COREWEBVIEW2_PROCESS_FAILED_KIND_BROWSER_PROCESS_EXITED = 0,
        COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_EXITED = (COREWEBVIEW2_PROCESS_FAILED_KIND_BROWSER_PROCESS_EXITED + 1),
        COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_UNRESPONSIVE = (COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_EXITED + 1),
        COREWEBVIEW2_PROCESS_FAILED_KIND_FRAME_RENDER_PROCESS_EXITED = (COREWEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_UNRESPONSIVE + 1),
        COREWEBVIEW2_PROCESS_FAILED_KIND_UTILITY_PROCESS_EXITED = (COREWEBVIEW2_PROCESS_FAILED_KIND_FRAME_RENDER_PROCESS_EXITED + 1),
        COREWEBVIEW2_PROCESS_FAILED_KIND_SANDBOX_HELPER_PROCESS_EXITED = (COREWEBVIEW2_PROCESS_FAILED_KIND_UTILITY_PROCESS_EXITED + 1),
        COREWEBVIEW2_PROCESS_FAILED_KIND_GPU_PROCESS_EXITED = (COREWEBVIEW2_PROCESS_FAILED_KIND_SANDBOX_HELPER_PROCESS_EXITED + 1),
        COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_PLUGIN_PROCESS_EXITED = (COREWEBVIEW2_PROCESS_FAILED_KIND_GPU_PROCESS_EXITED + 1),
        COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_BROKER_PROCESS_EXITED = (COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_PLUGIN_PROCESS_EXITED + 1),
        COREWEBVIEW2_PROCESS_FAILED_KIND_UNKNOWN_PROCESS_EXITED = (COREWEBVIEW2_PROCESS_FAILED_KIND_PPAPI_BROKER_PROCESS_EXITED + 1)
    } COREWEBVIEW2_PROCESS_FAILED_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PROCESS_FAILED_REASON
    {
        COREWEBVIEW2_PROCESS_FAILED_REASON_UNEXPECTED = 0,
        COREWEBVIEW2_PROCESS_FAILED_REASON_UNRESPONSIVE = (COREWEBVIEW2_PROCESS_FAILED_REASON_UNEXPECTED + 1),
        COREWEBVIEW2_PROCESS_FAILED_REASON_TERMINATED = (COREWEBVIEW2_PROCESS_FAILED_REASON_UNRESPONSIVE + 1),
        COREWEBVIEW2_PROCESS_FAILED_REASON_CRASHED = (COREWEBVIEW2_PROCESS_FAILED_REASON_TERMINATED + 1),
        COREWEBVIEW2_PROCESS_FAILED_REASON_LAUNCH_FAILED = (COREWEBVIEW2_PROCESS_FAILED_REASON_CRASHED + 1),
        COREWEBVIEW2_PROCESS_FAILED_REASON_OUT_OF_MEMORY = (COREWEBVIEW2_PROCESS_FAILED_REASON_LAUNCH_FAILED + 1),
        COREWEBVIEW2_PROCESS_FAILED_REASON_PROFILE_DELETED = (COREWEBVIEW2_PROCESS_FAILED_REASON_OUT_OF_MEMORY + 1)
    } COREWEBVIEW2_PROCESS_FAILED_REASON;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_PROCESS_KIND
    {
        COREWEBVIEW2_PROCESS_KIND_BROWSER = 0,
        COREWEBVIEW2_PROCESS_KIND_RENDERER = (COREWEBVIEW2_PROCESS_KIND_BROWSER + 1),
        COREWEBVIEW2_PROCESS_KIND_UTILITY = (COREWEBVIEW2_PROCESS_KIND_RENDERER + 1),
        COREWEBVIEW2_PROCESS_KIND_SANDBOX_HELPER = (COREWEBVIEW2_PROCESS_KIND_UTILITY + 1),
        COREWEBVIEW2_PROCESS_KIND_GPU = (COREWEBVIEW2_PROCESS_KIND_SANDBOX_HELPER + 1),
        COREWEBVIEW2_PROCESS_KIND_PPAPI_PLUGIN = (COREWEBVIEW2_PROCESS_KIND_GPU + 1),
        COREWEBVIEW2_PROCESS_KIND_PPAPI_BROKER = (COREWEBVIEW2_PROCESS_KIND_PPAPI_PLUGIN + 1)
    } COREWEBVIEW2_PROCESS_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_RELEASE_CHANNELS
    {
        COREWEBVIEW2_RELEASE_CHANNELS_NONE = 0,
        COREWEBVIEW2_RELEASE_CHANNELS_STABLE = 0x1,
        COREWEBVIEW2_RELEASE_CHANNELS_BETA = 0x2,
        COREWEBVIEW2_RELEASE_CHANNELS_DEV = 0x4,
        COREWEBVIEW2_RELEASE_CHANNELS_CANARY = 0x8
    } COREWEBVIEW2_RELEASE_CHANNELS;

    DEFINE_ENUM_FLAG_OPERATORS(COREWEBVIEW2_RELEASE_CHANNELS)
    typedef /* [v1_enum] */
        enum COREWEBVIEW2_SAVE_AS_KIND
    {
        COREWEBVIEW2_SAVE_AS_KIND_DEFAULT = 0,
        COREWEBVIEW2_SAVE_AS_KIND_HTML_ONLY = (COREWEBVIEW2_SAVE_AS_KIND_DEFAULT + 1),
        COREWEBVIEW2_SAVE_AS_KIND_SINGLE_FILE = (COREWEBVIEW2_SAVE_AS_KIND_HTML_ONLY + 1),
        COREWEBVIEW2_SAVE_AS_KIND_COMPLETE = (COREWEBVIEW2_SAVE_AS_KIND_SINGLE_FILE + 1)
    } COREWEBVIEW2_SAVE_AS_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_SAVE_AS_UI_RESULT
    {
        COREWEBVIEW2_SAVE_AS_UI_RESULT_SUCCESS = 0,
        COREWEBVIEW2_SAVE_AS_UI_RESULT_INVALID_PATH = (COREWEBVIEW2_SAVE_AS_UI_RESULT_SUCCESS + 1),
        COREWEBVIEW2_SAVE_AS_UI_RESULT_FILE_ALREADY_EXISTS = (COREWEBVIEW2_SAVE_AS_UI_RESULT_INVALID_PATH + 1),
        COREWEBVIEW2_SAVE_AS_UI_RESULT_KIND_NOT_SUPPORTED = (COREWEBVIEW2_SAVE_AS_UI_RESULT_FILE_ALREADY_EXISTS + 1),
        COREWEBVIEW2_SAVE_AS_UI_RESULT_CANCELLED = (COREWEBVIEW2_SAVE_AS_UI_RESULT_KIND_NOT_SUPPORTED + 1)
    } COREWEBVIEW2_SAVE_AS_UI_RESULT;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_SCRIPT_DIALOG_KIND
    {
        COREWEBVIEW2_SCRIPT_DIALOG_KIND_ALERT = 0,
        COREWEBVIEW2_SCRIPT_DIALOG_KIND_CONFIRM = (COREWEBVIEW2_SCRIPT_DIALOG_KIND_ALERT + 1),
        COREWEBVIEW2_SCRIPT_DIALOG_KIND_PROMPT = (COREWEBVIEW2_SCRIPT_DIALOG_KIND_CONFIRM + 1),
        COREWEBVIEW2_SCRIPT_DIALOG_KIND_BEFOREUNLOAD = (COREWEBVIEW2_SCRIPT_DIALOG_KIND_PROMPT + 1)
    } COREWEBVIEW2_SCRIPT_DIALOG_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_SCROLLBAR_STYLE
    {
        COREWEBVIEW2_SCROLLBAR_STYLE_DEFAULT = 0,
        COREWEBVIEW2_SCROLLBAR_STYLE_FLUENT_OVERLAY = (COREWEBVIEW2_SCROLLBAR_STYLE_DEFAULT + 1)
    } COREWEBVIEW2_SCROLLBAR_STYLE;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION
    {
        COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_ALWAYS_ALLOW = 0,
        COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_CANCEL = (COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_ALWAYS_ALLOW + 1),
        COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_DEFAULT = (COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION_CANCEL + 1)
    } COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_SHARED_BUFFER_ACCESS
    {
        COREWEBVIEW2_SHARED_BUFFER_ACCESS_READ_ONLY = 0,
        COREWEBVIEW2_SHARED_BUFFER_ACCESS_READ_WRITE = (COREWEBVIEW2_SHARED_BUFFER_ACCESS_READ_ONLY + 1)
    } COREWEBVIEW2_SHARED_BUFFER_ACCESS;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_TEXT_DIRECTION_KIND
    {
        COREWEBVIEW2_TEXT_DIRECTION_KIND_DEFAULT = 0,
        COREWEBVIEW2_TEXT_DIRECTION_KIND_LEFT_TO_RIGHT = (COREWEBVIEW2_TEXT_DIRECTION_KIND_DEFAULT + 1),
        COREWEBVIEW2_TEXT_DIRECTION_KIND_RIGHT_TO_LEFT = (COREWEBVIEW2_TEXT_DIRECTION_KIND_LEFT_TO_RIGHT + 1)
    } COREWEBVIEW2_TEXT_DIRECTION_KIND;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_TRACKING_PREVENTION_LEVEL
    {
        COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_NONE = 0,
        COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_BASIC = (COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_NONE + 1),
        COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_BALANCED = (COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_BASIC + 1),
        COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_STRICT = (COREWEBVIEW2_TRACKING_PREVENTION_LEVEL_BALANCED + 1)
    } COREWEBVIEW2_TRACKING_PREVENTION_LEVEL;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_WEB_ERROR_STATUS
    {
        COREWEBVIEW2_WEB_ERROR_STATUS_UNKNOWN = 0,
        COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT = (COREWEBVIEW2_WEB_ERROR_STATUS_UNKNOWN + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED = (COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS = (COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED = (COREWEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID = (COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE = (COREWEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_TIMEOUT = (COREWEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE = (COREWEBVIEW2_WEB_ERROR_STATUS_TIMEOUT + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED = (COREWEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET = (COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED = (COREWEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT = (COREWEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED = (COREWEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED = (COREWEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED = (COREWEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR = (COREWEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_VALID_AUTHENTICATION_CREDENTIALS_REQUIRED = (COREWEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR + 1),
        COREWEBVIEW2_WEB_ERROR_STATUS_VALID_PROXY_AUTHENTICATION_REQUIRED = (COREWEBVIEW2_WEB_ERROR_STATUS_VALID_AUTHENTICATION_CREDENTIALS_REQUIRED + 1)
    } COREWEBVIEW2_WEB_ERROR_STATUS;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_WEB_RESOURCE_CONTEXT
    {
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL = 0,
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_DOCUMENT = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_STYLESHEET = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_DOCUMENT + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_IMAGE = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_STYLESHEET + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MEDIA = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_IMAGE + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FONT = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MEDIA + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SCRIPT = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FONT + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_XML_HTTP_REQUEST = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SCRIPT + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FETCH = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_XML_HTTP_REQUEST + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_TEXT_TRACK = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_FETCH + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_EVENT_SOURCE = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_TEXT_TRACK + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_WEBSOCKET = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_EVENT_SOURCE + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MANIFEST = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_WEBSOCKET + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SIGNED_EXCHANGE = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_MANIFEST + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_PING = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_SIGNED_EXCHANGE + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_CSP_VIOLATION_REPORT = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_PING + 1),
        COREWEBVIEW2_WEB_RESOURCE_CONTEXT_OTHER = (COREWEBVIEW2_WEB_RESOURCE_CONTEXT_CSP_VIOLATION_REPORT + 1)
    } COREWEBVIEW2_WEB_RESOURCE_CONTEXT;

    typedef /* [v1_enum] */
        enum COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS
    {
        COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_NONE = 0,
        COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_DOCUMENT = 0x1,
        COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_SHARED_WORKER = 0x2,
        COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_SERVICE_WORKER = 0x4,
        COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_ALL = 0xffffffff
    } COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS;

    DEFINE_ENUM_FLAG_OPERATORS(COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS)
    typedef struct COREWEBVIEW2_COLOR
    {
        BYTE A;
        BYTE R;
        BYTE G;
        BYTE B;
    } COREWEBVIEW2_COLOR;

    typedef struct COREWEBVIEW2_PHYSICAL_KEY_STATUS
    {
        UINT32 RepeatCount;
        UINT32 ScanCode;
        BOOL IsExtendedKey;
        BOOL IsMenuKeyDown;
        BOOL WasKeyDown;
        BOOL IsKeyReleased;
    } COREWEBVIEW2_PHYSICAL_KEY_STATUS;

    STDAPI CreateCoreWebView2Environment(ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler *environmentCreatedHandler);
    STDAPI CreateCoreWebView2EnvironmentWithOptions(PCWSTR browserExecutableFolder, PCWSTR userDataFolder, ICoreWebView2EnvironmentOptions *environmentOptions, ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler *environmentCreatedHandler);
    STDAPI GetAvailableCoreWebView2BrowserVersionString(PCWSTR browserExecutableFolder, LPWSTR *versionInfo);
    STDAPI CompareBrowserVersions(PCWSTR version1, PCWSTR version2, int *result);
    STDAPI GetAvailableCoreWebView2BrowserVersionStringWithOptions(PCWSTR browserExecutableFolder, ICoreWebView2EnvironmentOptions *environmentOptions, LPWSTR *versionInfo);

    EXTERN_C const IID LIBID_WebView2;

#ifndef __ICoreWebView2_INTERFACE_DEFINED__
#define __ICoreWebView2_INTERFACE_DEFINED__

    /* interface ICoreWebView2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2 = {0x76eceacb, 0x0462, 0x4d94, {0xac, 0x83, 0x42, 0x3a, 0x67, 0x93, 0x77, 0x5e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("76eceacb-0462-4d94-ac83-423a6793775e")
    ICoreWebView2 : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Settings(
            /* [retval][out] */ ICoreWebView2Settings * *settings) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Source(
            /* [retval][out] */ LPWSTR * uri) = 0;

        virtual HRESULT STDMETHODCALLTYPE Navigate(
            /* [in] */ LPCWSTR uri) = 0;

        virtual HRESULT STDMETHODCALLTYPE NavigateToString(
            /* [in] */ LPCWSTR htmlContent) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_NavigationStarting(
            /* [in] */ ICoreWebView2NavigationStartingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_NavigationStarting(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_ContentLoading(
            /* [in] */ ICoreWebView2ContentLoadingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ContentLoading(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_SourceChanged(
            /* [in] */ ICoreWebView2SourceChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_SourceChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_HistoryChanged(
            /* [in] */ ICoreWebView2HistoryChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_HistoryChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_NavigationCompleted(
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_NavigationCompleted(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_FrameNavigationStarting(
            /* [in] */ ICoreWebView2NavigationStartingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_FrameNavigationStarting(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_FrameNavigationCompleted(
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_FrameNavigationCompleted(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_ScriptDialogOpening(
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ScriptDialogOpening(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_PermissionRequested(
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_PermissionRequested(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_ProcessFailed(
            /* [in] */ ICoreWebView2ProcessFailedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ProcessFailed(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE AddScriptToExecuteOnDocumentCreated(
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE RemoveScriptToExecuteOnDocumentCreated(
            /* [in] */ LPCWSTR id) = 0;

        virtual HRESULT STDMETHODCALLTYPE ExecuteScript(
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE CapturePreview(
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream * imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE Reload(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE PostWebMessageAsJson(
            /* [in] */ LPCWSTR webMessageAsJson) = 0;

        virtual HRESULT STDMETHODCALLTYPE PostWebMessageAsString(
            /* [in] */ LPCWSTR webMessageAsString) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_WebMessageReceived(
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler * handler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_WebMessageReceived(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE CallDevToolsProtocolMethod(
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler * handler) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrowserProcessId(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanGoBack(
            /* [retval][out] */ BOOL * canGoBack) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanGoForward(
            /* [retval][out] */ BOOL * canGoForward) = 0;

        virtual HRESULT STDMETHODCALLTYPE GoBack(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE GoForward(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDevToolsProtocolEventReceiver(
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver * *receiver) = 0;

        virtual HRESULT STDMETHODCALLTYPE Stop(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_NewWindowRequested(
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_NewWindowRequested(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_DocumentTitleChanged(
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_DocumentTitleChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DocumentTitle(
            /* [retval][out] */ LPWSTR * title) = 0;

        virtual HRESULT STDMETHODCALLTYPE AddHostObjectToScript(
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT * object) = 0;

        virtual HRESULT STDMETHODCALLTYPE RemoveHostObjectFromScript(
            /* [in] */ LPCWSTR name) = 0;

        virtual HRESULT STDMETHODCALLTYPE OpenDevToolsWindow(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_ContainsFullScreenElementChanged(
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ContainsFullScreenElementChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ContainsFullScreenElement(
            /* [retval][out] */ BOOL * containsFullScreenElement) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_WebResourceRequested(
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_WebResourceRequested(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE AddWebResourceRequestedFilter(
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext) = 0;

        virtual HRESULT STDMETHODCALLTYPE RemoveWebResourceRequestedFilter(
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_WindowCloseRequested(
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_WindowCloseRequested(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2Vtbl;

    interface ICoreWebView2
    {
        CONST_VTBL struct ICoreWebView2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ContainsFullScreenElementChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ContainsFullScreenElementChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ContainsFullScreenElementChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ContainsFullScreenElementChangedEventHandler = {0xe45d98b1, 0xafef, 0x45be, {0x8b, 0xaf, 0x6c, 0x77, 0x28, 0x86, 0x7f, 0x73}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e45d98b1-afef-45be-8baf-6c7728867f73")
    ICoreWebView2ContainsFullScreenElementChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ContainsFullScreenElementChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ContainsFullScreenElementChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ContainsFullScreenElementChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ContainsFullScreenElementChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ContainsFullScreenElementChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ContainsFullScreenElementChangedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2ContainsFullScreenElementChangedEventHandlerVtbl;

    interface ICoreWebView2ContainsFullScreenElementChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2ContainsFullScreenElementChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ContainsFullScreenElementChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ContainsFullScreenElementChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ContainsFullScreenElementChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ContainsFullScreenElementChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ContainsFullScreenElementChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ContentLoadingEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ContentLoadingEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ContentLoadingEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ContentLoadingEventHandler = {0x364471e7, 0xf2be, 0x4910, {0xbd, 0xba, 0xd7, 0x20, 0x77, 0xd5, 0x1c, 0x4b}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("364471e7-f2be-4910-bdba-d72077d51c4b")
    ICoreWebView2ContentLoadingEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2ContentLoadingEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ContentLoadingEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ContentLoadingEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ContentLoadingEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ContentLoadingEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ContentLoadingEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ContentLoadingEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2ContentLoadingEventArgs *args);

        END_INTERFACE
    } ICoreWebView2ContentLoadingEventHandlerVtbl;

    interface ICoreWebView2ContentLoadingEventHandler
    {
        CONST_VTBL struct ICoreWebView2ContentLoadingEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ContentLoadingEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ContentLoadingEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ContentLoadingEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ContentLoadingEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ContentLoadingEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DocumentTitleChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2DocumentTitleChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2DocumentTitleChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DocumentTitleChangedEventHandler = {0xf5f2b923, 0x953e, 0x4042, {0x9f, 0x95, 0xf3, 0xa1, 0x18, 0xe1, 0xaf, 0xd4}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f5f2b923-953e-4042-9f95-f3a118e1afd4")
    ICoreWebView2DocumentTitleChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DocumentTitleChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DocumentTitleChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DocumentTitleChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DocumentTitleChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DocumentTitleChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2DocumentTitleChangedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2DocumentTitleChangedEventHandlerVtbl;

    interface ICoreWebView2DocumentTitleChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2DocumentTitleChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DocumentTitleChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DocumentTitleChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DocumentTitleChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DocumentTitleChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DocumentTitleChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2HistoryChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2HistoryChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2HistoryChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2HistoryChangedEventHandler = {0xc79a420c, 0xefd9, 0x4058, {0x92, 0x95, 0x3e, 0x8b, 0x4b, 0xca, 0xb6, 0x45}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("c79a420c-efd9-4058-9295-3e8b4bcab645")
    ICoreWebView2HistoryChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2HistoryChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2HistoryChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2HistoryChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2HistoryChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2HistoryChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2HistoryChangedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2HistoryChangedEventHandlerVtbl;

    interface ICoreWebView2HistoryChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2HistoryChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2HistoryChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2HistoryChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2HistoryChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2HistoryChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2HistoryChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NavigationCompletedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2NavigationCompletedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2NavigationCompletedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NavigationCompletedEventHandler = {0xd33a35bf, 0x1c49, 0x4f98, {0x93, 0xab, 0x00, 0x6e, 0x05, 0x33, 0xfe, 0x1c}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("d33a35bf-1c49-4f98-93ab-006e0533fe1c")
    ICoreWebView2NavigationCompletedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2NavigationCompletedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NavigationCompletedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NavigationCompletedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NavigationCompletedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NavigationCompletedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationCompletedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2NavigationCompletedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2NavigationCompletedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2NavigationCompletedEventHandlerVtbl;

    interface ICoreWebView2NavigationCompletedEventHandler
    {
        CONST_VTBL struct ICoreWebView2NavigationCompletedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NavigationCompletedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NavigationCompletedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NavigationCompletedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NavigationCompletedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NavigationCompletedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NavigationStartingEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2NavigationStartingEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2NavigationStartingEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NavigationStartingEventHandler = {0x9adbe429, 0xf36d, 0x432b, {0x9d, 0xdc, 0xf8, 0x88, 0x1f, 0xbd, 0x76, 0xe3}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9adbe429-f36d-432b-9ddc-f8881fbd76e3")
    ICoreWebView2NavigationStartingEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2NavigationStartingEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NavigationStartingEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NavigationStartingEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NavigationStartingEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NavigationStartingEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2NavigationStartingEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2NavigationStartingEventArgs *args);

        END_INTERFACE
    } ICoreWebView2NavigationStartingEventHandlerVtbl;

    interface ICoreWebView2NavigationStartingEventHandler
    {
        CONST_VTBL struct ICoreWebView2NavigationStartingEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NavigationStartingEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NavigationStartingEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NavigationStartingEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NavigationStartingEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NavigationStartingEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NewWindowRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2NewWindowRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2NewWindowRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NewWindowRequestedEventHandler = {0xd4c185fe, 0xc81c, 0x4989, {0x97, 0xaf, 0x2d, 0x3f, 0xa7, 0xab, 0x56, 0x51}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("d4c185fe-c81c-4989-97af-2d3fa7ab5651")
    ICoreWebView2NewWindowRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2NewWindowRequestedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NewWindowRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NewWindowRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NewWindowRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NewWindowRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2NewWindowRequestedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2NewWindowRequestedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2NewWindowRequestedEventHandlerVtbl;

    interface ICoreWebView2NewWindowRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2NewWindowRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NewWindowRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NewWindowRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NewWindowRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NewWindowRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NewWindowRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PermissionRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2PermissionRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2PermissionRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PermissionRequestedEventHandler = {0x15e1c6a3, 0xc72a, 0x4df3, {0x91, 0xd7, 0xd0, 0x97, 0xfb, 0xec, 0x6b, 0xfd}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("15e1c6a3-c72a-4df3-91d7-d097fbec6bfd")
    ICoreWebView2PermissionRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2PermissionRequestedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PermissionRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PermissionRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PermissionRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PermissionRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2PermissionRequestedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2PermissionRequestedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2PermissionRequestedEventHandlerVtbl;

    interface ICoreWebView2PermissionRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2PermissionRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PermissionRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PermissionRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PermissionRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PermissionRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PermissionRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProcessFailedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ProcessFailedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProcessFailedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProcessFailedEventHandler = {0x79e0aea4, 0x990b, 0x42d9, {0xaa, 0x1d, 0x0f, 0xcc, 0x2e, 0x5b, 0xc7, 0xf1}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("79e0aea4-990b-42d9-aa1d-0fcc2e5bc7f1")
    ICoreWebView2ProcessFailedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2ProcessFailedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProcessFailedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProcessFailedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProcessFailedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProcessFailedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ProcessFailedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2ProcessFailedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2ProcessFailedEventHandlerVtbl;

    interface ICoreWebView2ProcessFailedEventHandler
    {
        CONST_VTBL struct ICoreWebView2ProcessFailedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProcessFailedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProcessFailedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProcessFailedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProcessFailedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProcessFailedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ScriptDialogOpeningEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ScriptDialogOpeningEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ScriptDialogOpeningEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ScriptDialogOpeningEventHandler = {0xef381bf9, 0xafa8, 0x4e37, {0x91, 0xc4, 0x8a, 0xc4, 0x85, 0x24, 0xbd, 0xfb}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ef381bf9-afa8-4e37-91c4-8ac48524bdfb")
    ICoreWebView2ScriptDialogOpeningEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ScriptDialogOpeningEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ScriptDialogOpeningEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ScriptDialogOpeningEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ScriptDialogOpeningEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptDialogOpeningEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ScriptDialogOpeningEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventArgs *args);

        END_INTERFACE
    } ICoreWebView2ScriptDialogOpeningEventHandlerVtbl;

    interface ICoreWebView2ScriptDialogOpeningEventHandler
    {
        CONST_VTBL struct ICoreWebView2ScriptDialogOpeningEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ScriptDialogOpeningEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ScriptDialogOpeningEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ScriptDialogOpeningEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ScriptDialogOpeningEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ScriptDialogOpeningEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2SourceChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2SourceChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2SourceChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2SourceChangedEventHandler = {0x3c067f9f, 0x5388, 0x4772, {0x8b, 0x48, 0x79, 0xf7, 0xef, 0x1a, 0xb3, 0x7c}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("3c067f9f-5388-4772-8b48-79f7ef1ab37c")
    ICoreWebView2SourceChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2SourceChangedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2SourceChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2SourceChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2SourceChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2SourceChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2SourceChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2SourceChangedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2SourceChangedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2SourceChangedEventHandlerVtbl;

    interface ICoreWebView2SourceChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2SourceChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2SourceChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2SourceChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2SourceChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2SourceChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2SourceChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebMessageReceivedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2WebMessageReceivedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebMessageReceivedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebMessageReceivedEventHandler = {0x57213f19, 0x00e6, 0x49fa, {0x8e, 0x07, 0x89, 0x8e, 0xa0, 0x1e, 0xcb, 0xd2}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("57213f19-00e6-49fa-8e07-898ea01ecbd2")
    ICoreWebView2WebMessageReceivedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2WebMessageReceivedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebMessageReceivedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebMessageReceivedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebMessageReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebMessageReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebMessageReceivedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2WebMessageReceivedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2WebMessageReceivedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2WebMessageReceivedEventHandlerVtbl;

    interface ICoreWebView2WebMessageReceivedEventHandler
    {
        CONST_VTBL struct ICoreWebView2WebMessageReceivedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebMessageReceivedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebMessageReceivedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebMessageReceivedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebMessageReceivedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebMessageReceivedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebResourceRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2WebResourceRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebResourceRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebResourceRequestedEventHandler = {0xab00b74c, 0x15f1, 0x4646, {0x80, 0xe8, 0xe7, 0x63, 0x41, 0xd2, 0x5d, 0x71}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ab00b74c-15f1-4646-80e8-e76341d25d71")
    ICoreWebView2WebResourceRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2WebResourceRequestedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebResourceRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebResourceRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebResourceRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebResourceRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2WebResourceRequestedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2WebResourceRequestedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2WebResourceRequestedEventHandlerVtbl;

    interface ICoreWebView2WebResourceRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2WebResourceRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebResourceRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebResourceRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebResourceRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebResourceRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebResourceRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WindowCloseRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2WindowCloseRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2WindowCloseRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WindowCloseRequestedEventHandler = {0x5c19e9e0, 0x092f, 0x486b, {0xaf, 0xfa, 0xca, 0x82, 0x31, 0x91, 0x30, 0x39}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("5c19e9e0-092f-486b-affa-ca8231913039")
    ICoreWebView2WindowCloseRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WindowCloseRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WindowCloseRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WindowCloseRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WindowCloseRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowCloseRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2WindowCloseRequestedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2WindowCloseRequestedEventHandlerVtbl;

    interface ICoreWebView2WindowCloseRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2WindowCloseRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WindowCloseRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WindowCloseRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WindowCloseRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WindowCloseRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WindowCloseRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler = {0xb99369f3, 0x9b11, 0x47b5, {0xbc, 0x6f, 0x8e, 0x78, 0x95, 0xfc, 0xea, 0x17}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b99369f3-9b11-47b5-bc6f-8e7895fcea17")
    ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ LPCWSTR result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ LPCWSTR result);

        END_INTERFACE
    } ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandlerVtbl;

    interface ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ExecuteScriptCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ExecuteScriptCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ExecuteScriptCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ExecuteScriptCompletedHandler = {0x49511172, 0xcc67, 0x4bca, {0x99, 0x23, 0x13, 0x71, 0x12, 0xf4, 0xc4, 0xcc}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("49511172-cc67-4bca-9923-137112f4c4cc")
    ICoreWebView2ExecuteScriptCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ LPCWSTR result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ExecuteScriptCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ExecuteScriptCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ExecuteScriptCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ExecuteScriptCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ExecuteScriptCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ExecuteScriptCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ LPCWSTR result);

        END_INTERFACE
    } ICoreWebView2ExecuteScriptCompletedHandlerVtbl;

    interface ICoreWebView2ExecuteScriptCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2ExecuteScriptCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ExecuteScriptCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ExecuteScriptCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ExecuteScriptCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ExecuteScriptCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ExecuteScriptCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CapturePreviewCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2CapturePreviewCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2CapturePreviewCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CapturePreviewCompletedHandler = {0x697e05e9, 0x3d8f, 0x45fa, {0x96, 0xf4, 0x8f, 0xfe, 0x1e, 0xde, 0xda, 0xf5}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("697e05e9-3d8f-45fa-96f4-8ffe1ededaf5")
    ICoreWebView2CapturePreviewCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CapturePreviewCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CapturePreviewCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CapturePreviewCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CapturePreviewCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CapturePreviewCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2CapturePreviewCompletedHandler *This,
            /* [in] */ HRESULT errorCode);

        END_INTERFACE
    } ICoreWebView2CapturePreviewCompletedHandlerVtbl;

    interface ICoreWebView2CapturePreviewCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2CapturePreviewCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CapturePreviewCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CapturePreviewCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CapturePreviewCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CapturePreviewCompletedHandler_Invoke(This, errorCode) \
    ((This)->lpVtbl->Invoke(This, errorCode))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CapturePreviewCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2CallDevToolsProtocolMethodCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CallDevToolsProtocolMethodCompletedHandler = {0x5c4889f0, 0x5ef6, 0x4c5a, {0x95, 0x2c, 0xd8, 0xf1, 0xb9, 0x2d, 0x05, 0x74}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("5c4889f0-5ef6-4c5a-952c-d8f1b92d0574")
    ICoreWebView2CallDevToolsProtocolMethodCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ LPCWSTR result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CallDevToolsProtocolMethodCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CallDevToolsProtocolMethodCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ LPCWSTR result);

        END_INTERFACE
    } ICoreWebView2CallDevToolsProtocolMethodCompletedHandlerVtbl;

    interface ICoreWebView2CallDevToolsProtocolMethodCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2CallDevToolsProtocolMethodCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CallDevToolsProtocolMethodCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_2_INTERFACE_DEFINED__
#define __ICoreWebView2_2_INTERFACE_DEFINED__

    /* interface ICoreWebView2_2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_2 = {0x9E8F0CF8, 0xE670, 0x4B5E, {0xB2, 0xBC, 0x73, 0xE0, 0x61, 0xE3, 0x18, 0x4C}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9E8F0CF8-E670-4B5E-B2BC-73E061E3184C")
    ICoreWebView2_2 : public ICoreWebView2
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_WebResourceResponseReceived(
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_WebResourceResponseReceived(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE NavigateWithWebResourceRequest(
            /* [in] */ ICoreWebView2WebResourceRequest * request) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_DOMContentLoaded(
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_DOMContentLoaded(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CookieManager(
            /* [retval][out] */ ICoreWebView2CookieManager * *cookieManager) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Environment(
            /* [retval][out] */ ICoreWebView2Environment * *environment) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_2 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_2 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_2 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_2 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_2 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_2 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_2 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_2 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_2 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_2 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_2 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_2 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_2 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_2 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        END_INTERFACE
    } ICoreWebView2_2Vtbl;

    interface ICoreWebView2_2
    {
        CONST_VTBL struct ICoreWebView2_2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_2_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_2_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_2_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_2_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_2_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_2_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_2_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_2_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_2_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_2_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_2_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_2_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_2_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_2_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_2_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_2_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_2_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_2_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_2_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_2_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_2_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_2_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_2_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_2_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_2_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_2_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_2_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_2_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_2_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_2_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_2_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_2_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_2_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_2_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_2_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_2_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_2_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_2_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_2_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_2_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_2_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_2_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_2_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_2_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_2_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_2_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_2_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_2_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_2_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_2_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_2_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_2_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_2_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_2_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_2_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_2_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_2_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_2_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_2_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_2_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_2_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_2_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_2_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_2_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_2_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DOMContentLoadedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2DOMContentLoadedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2DOMContentLoadedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DOMContentLoadedEventHandler = {0x4bac7e9c, 0x199e, 0x49ed, {0x87, 0xed, 0x24, 0x93, 0x03, 0xac, 0xf0, 0x19}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4bac7e9c-199e-49ed-87ed-249303acf019")
    ICoreWebView2DOMContentLoadedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2DOMContentLoadedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DOMContentLoadedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DOMContentLoadedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DOMContentLoadedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DOMContentLoadedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DOMContentLoadedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2DOMContentLoadedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2DOMContentLoadedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2DOMContentLoadedEventHandlerVtbl;

    interface ICoreWebView2DOMContentLoadedEventHandler
    {
        CONST_VTBL struct ICoreWebView2DOMContentLoadedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DOMContentLoadedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DOMContentLoadedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DOMContentLoadedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DOMContentLoadedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DOMContentLoadedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponseReceivedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2WebResourceResponseReceivedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebResourceResponseReceivedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebResourceResponseReceivedEventHandler = {0x7de9898a, 0x24f5, 0x40c3, {0xa2, 0xde, 0xd4, 0xf4, 0x58, 0xe6, 0x98, 0x28}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7de9898a-24f5-40c3-a2de-d4f458e69828")
    ICoreWebView2WebResourceResponseReceivedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebResourceResponseReceivedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebResourceResponseReceivedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebResourceResponseReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebResourceResponseReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponseReceivedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2WebResourceResponseReceivedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2WebResourceResponseReceivedEventHandlerVtbl;

    interface ICoreWebView2WebResourceResponseReceivedEventHandler
    {
        CONST_VTBL struct ICoreWebView2WebResourceResponseReceivedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebResourceResponseReceivedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebResourceResponseReceivedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebResourceResponseReceivedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebResourceResponseReceivedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebResourceResponseReceivedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_3_INTERFACE_DEFINED__
#define __ICoreWebView2_3_INTERFACE_DEFINED__

    /* interface ICoreWebView2_3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_3 = {0xA0D6DF20, 0x3B92, 0x416D, {0xAA, 0x0C, 0x43, 0x7A, 0x9C, 0x72, 0x78, 0x57}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("A0D6DF20-3B92-416D-AA0C-437A9C727857")
    ICoreWebView2_3 : public ICoreWebView2_2
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE TrySuspend(
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE Resume(void) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsSuspended(
            /* [retval][out] */ BOOL * isSuspended) = 0;

        virtual HRESULT STDMETHODCALLTYPE SetVirtualHostNameToFolderMapping(
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind) = 0;

        virtual HRESULT STDMETHODCALLTYPE ClearVirtualHostNameToFolderMapping(
            /* [in] */ LPCWSTR hostName) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_3 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_3 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_3 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_3 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_3 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_3 *This,
            /* [in] */ LPCWSTR hostName);

        END_INTERFACE
    } ICoreWebView2_3Vtbl;

    interface ICoreWebView2_3
    {
        CONST_VTBL struct ICoreWebView2_3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_3_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_3_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_3_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_3_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_3_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_3_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_3_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_3_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_3_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_3_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_3_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_3_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_3_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_3_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_3_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_3_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_3_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_3_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_3_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_3_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_3_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_3_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_3_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_3_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_3_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_3_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_3_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_3_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_3_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_3_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_3_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_3_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_3_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_3_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_3_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_3_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_3_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_3_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_3_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_3_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_3_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_3_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_3_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_3_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_3_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_3_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_3_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_3_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_3_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_3_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_3_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_3_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_3_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_3_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_3_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_3_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_3_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_3_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_3_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_3_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_3_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_3_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_3_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_3_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_3_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_3_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_3_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_3_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_3_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_3_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2TrySuspendCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2TrySuspendCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2TrySuspendCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2TrySuspendCompletedHandler = {0x00f206a7, 0x9d17, 0x4605, {0x91, 0xf6, 0x4e, 0x8e, 0x4d, 0xe1, 0x92, 0xe3}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("00f206a7-9d17-4605-91f6-4e8e4de192e3")
    ICoreWebView2TrySuspendCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ BOOL result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2TrySuspendCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2TrySuspendCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2TrySuspendCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2TrySuspendCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2TrySuspendCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2TrySuspendCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ BOOL result);

        END_INTERFACE
    } ICoreWebView2TrySuspendCompletedHandlerVtbl;

    interface ICoreWebView2TrySuspendCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2TrySuspendCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2TrySuspendCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2TrySuspendCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2TrySuspendCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2TrySuspendCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2TrySuspendCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_4_INTERFACE_DEFINED__
#define __ICoreWebView2_4_INTERFACE_DEFINED__

    /* interface ICoreWebView2_4 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_4 = {0x20d02d59, 0x6df2, 0x42dc, {0xbd, 0x06, 0xf9, 0x8a, 0x69, 0x4b, 0x13, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("20d02d59-6df2-42dc-bd06-f98a694b1302")
    ICoreWebView2_4 : public ICoreWebView2_3
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_FrameCreated(
            /* [in] */ ICoreWebView2FrameCreatedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_FrameCreated(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_DownloadStarting(
            /* [in] */ ICoreWebView2DownloadStartingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_DownloadStarting(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_4Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_4 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_4 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_4 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_4 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_4 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_4 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_4 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_4 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_4 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2_4Vtbl;

    interface ICoreWebView2_4
    {
        CONST_VTBL struct ICoreWebView2_4Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_4_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_4_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_4_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_4_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_4_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_4_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_4_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_4_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_4_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_4_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_4_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_4_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_4_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_4_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_4_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_4_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_4_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_4_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_4_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_4_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_4_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_4_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_4_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_4_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_4_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_4_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_4_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_4_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_4_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_4_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_4_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_4_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_4_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_4_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_4_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_4_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_4_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_4_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_4_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_4_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_4_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_4_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_4_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_4_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_4_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_4_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_4_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_4_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_4_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_4_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_4_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_4_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_4_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_4_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_4_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_4_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_4_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_4_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_4_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_4_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_4_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_4_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_4_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_4_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_4_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_4_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_4_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_4_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_4_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_4_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_4_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_4_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_4_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_4_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_4_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_4_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_4_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_4_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DownloadStartingEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2DownloadStartingEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2DownloadStartingEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DownloadStartingEventHandler = {0xefedc989, 0xc396, 0x41ca, {0x83, 0xf7, 0x07, 0xf8, 0x45, 0xa5, 0x57, 0x24}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("efedc989-c396-41ca-83f7-07f845a55724")
    ICoreWebView2DownloadStartingEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2DownloadStartingEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DownloadStartingEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DownloadStartingEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DownloadStartingEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DownloadStartingEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadStartingEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2DownloadStartingEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2DownloadStartingEventArgs *args);

        END_INTERFACE
    } ICoreWebView2DownloadStartingEventHandlerVtbl;

    interface ICoreWebView2DownloadStartingEventHandler
    {
        CONST_VTBL struct ICoreWebView2DownloadStartingEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DownloadStartingEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DownloadStartingEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DownloadStartingEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DownloadStartingEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DownloadStartingEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameCreatedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameCreatedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameCreatedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameCreatedEventHandler = {0x38059770, 0x9baa, 0x11eb, {0xa8, 0xb3, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("38059770-9baa-11eb-a8b3-0242ac130003")
    ICoreWebView2FrameCreatedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2FrameCreatedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameCreatedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameCreatedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameCreatedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameCreatedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameCreatedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameCreatedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2FrameCreatedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2FrameCreatedEventHandlerVtbl;

    interface ICoreWebView2FrameCreatedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameCreatedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameCreatedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameCreatedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameCreatedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameCreatedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameCreatedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_5_INTERFACE_DEFINED__
#define __ICoreWebView2_5_INTERFACE_DEFINED__

    /* interface ICoreWebView2_5 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_5 = {0xbedb11b8, 0xd63c, 0x11eb, {0xb8, 0xbc, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("bedb11b8-d63c-11eb-b8bc-0242ac130003")
    ICoreWebView2_5 : public ICoreWebView2_4
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_ClientCertificateRequested(
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ClientCertificateRequested(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_5Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_5 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_5 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_5 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_5 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_5 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_5 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_5 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_5 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2_5Vtbl;

    interface ICoreWebView2_5
    {
        CONST_VTBL struct ICoreWebView2_5Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_5_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_5_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_5_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_5_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_5_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_5_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_5_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_5_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_5_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_5_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_5_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_5_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_5_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_5_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_5_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_5_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_5_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_5_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_5_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_5_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_5_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_5_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_5_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_5_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_5_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_5_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_5_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_5_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_5_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_5_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_5_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_5_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_5_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_5_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_5_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_5_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_5_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_5_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_5_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_5_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_5_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_5_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_5_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_5_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_5_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_5_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_5_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_5_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_5_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_5_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_5_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_5_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_5_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_5_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_5_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_5_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_5_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_5_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_5_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_5_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_5_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_5_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_5_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_5_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_5_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_5_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_5_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_5_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_5_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_5_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_5_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_5_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_5_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_5_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_5_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_5_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_5_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_5_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_5_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_5_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ClientCertificateRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ClientCertificateRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ClientCertificateRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ClientCertificateRequestedEventHandler = {0xd7175ba2, 0xbcc3, 0x11eb, {0x85, 0x29, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("d7175ba2-bcc3-11eb-8529-0242ac130003")
    ICoreWebView2ClientCertificateRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ClientCertificateRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ClientCertificateRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ClientCertificateRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ClientCertificateRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ClientCertificateRequestedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2ClientCertificateRequestedEventHandlerVtbl;

    interface ICoreWebView2ClientCertificateRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2ClientCertificateRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ClientCertificateRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ClientCertificateRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ClientCertificateRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ClientCertificateRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ClientCertificateRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_6_INTERFACE_DEFINED__
#define __ICoreWebView2_6_INTERFACE_DEFINED__

    /* interface ICoreWebView2_6 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_6 = {0x499aadac, 0xd92c, 0x4589, {0x8a, 0x75, 0x11, 0x1b, 0xfc, 0x16, 0x77, 0x95}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("499aadac-d92c-4589-8a75-111bfc167795")
    ICoreWebView2_6 : public ICoreWebView2_5
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE OpenTaskManagerWindow(void) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_6Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_6 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_6 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_6 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_6 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_6 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_6 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_6 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_6 *This);

        END_INTERFACE
    } ICoreWebView2_6Vtbl;

    interface ICoreWebView2_6
    {
        CONST_VTBL struct ICoreWebView2_6Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_6_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_6_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_6_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_6_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_6_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_6_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_6_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_6_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_6_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_6_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_6_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_6_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_6_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_6_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_6_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_6_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_6_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_6_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_6_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_6_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_6_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_6_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_6_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_6_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_6_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_6_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_6_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_6_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_6_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_6_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_6_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_6_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_6_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_6_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_6_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_6_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_6_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_6_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_6_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_6_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_6_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_6_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_6_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_6_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_6_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_6_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_6_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_6_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_6_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_6_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_6_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_6_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_6_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_6_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_6_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_6_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_6_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_6_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_6_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_6_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_6_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_6_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_6_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_6_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_6_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_6_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_6_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_6_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_6_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_6_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_6_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_6_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_6_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_6_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_6_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_6_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_6_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_6_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_6_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_6_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_6_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_7_INTERFACE_DEFINED__
#define __ICoreWebView2_7_INTERFACE_DEFINED__

    /* interface ICoreWebView2_7 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_7 = {0x79c24d83, 0x09a3, 0x45ae, {0x94, 0x18, 0x48, 0x7f, 0x32, 0xa5, 0x87, 0x40}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("79c24d83-09a3-45ae-9418-487f32a58740")
    ICoreWebView2_7 : public ICoreWebView2_6
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE PrintToPdf(
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings * printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_7Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_7 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_7 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_7 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_7 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_7 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_7 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_7 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2_7Vtbl;

    interface ICoreWebView2_7
    {
        CONST_VTBL struct ICoreWebView2_7Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_7_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_7_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_7_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_7_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_7_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_7_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_7_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_7_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_7_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_7_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_7_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_7_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_7_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_7_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_7_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_7_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_7_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_7_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_7_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_7_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_7_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_7_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_7_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_7_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_7_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_7_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_7_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_7_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_7_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_7_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_7_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_7_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_7_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_7_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_7_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_7_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_7_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_7_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_7_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_7_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_7_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_7_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_7_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_7_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_7_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_7_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_7_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_7_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_7_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_7_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_7_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_7_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_7_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_7_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_7_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_7_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_7_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_7_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_7_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_7_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_7_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_7_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_7_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_7_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_7_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_7_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_7_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_7_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_7_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_7_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_7_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_7_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_7_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_7_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_7_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_7_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_7_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_7_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_7_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_7_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_7_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_7_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PrintToPdfCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2PrintToPdfCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2PrintToPdfCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PrintToPdfCompletedHandler = {0xccf1ef04, 0xfd8e, 0x4d5f, {0xb2, 0xde, 0x09, 0x83, 0xe4, 0x1b, 0x8c, 0x36}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ccf1ef04-fd8e-4d5f-b2de-0983e41b8c36")
    ICoreWebView2PrintToPdfCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ BOOL result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PrintToPdfCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PrintToPdfCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PrintToPdfCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PrintToPdfCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintToPdfCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2PrintToPdfCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ BOOL result);

        END_INTERFACE
    } ICoreWebView2PrintToPdfCompletedHandlerVtbl;

    interface ICoreWebView2PrintToPdfCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2PrintToPdfCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PrintToPdfCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PrintToPdfCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PrintToPdfCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PrintToPdfCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PrintToPdfCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_8_INTERFACE_DEFINED__
#define __ICoreWebView2_8_INTERFACE_DEFINED__

    /* interface ICoreWebView2_8 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_8 = {0xE9632730, 0x6E1E, 0x43AB, {0xB7, 0xB8, 0x7B, 0x2C, 0x9E, 0x62, 0xE0, 0x94}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("E9632730-6E1E-43AB-B7B8-7B2C9E62E094")
    ICoreWebView2_8 : public ICoreWebView2_7
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_IsMutedChanged(
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_IsMutedChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsMuted(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsMuted(
            /* [in] */ BOOL value) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_IsDocumentPlayingAudioChanged(
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_IsDocumentPlayingAudioChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsDocumentPlayingAudio(
            /* [retval][out] */ BOOL * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_8Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_8 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_8 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_8 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_8 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_8 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_8 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_8 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_8 *This,
            /* [retval][out] */ BOOL *value);

        END_INTERFACE
    } ICoreWebView2_8Vtbl;

    interface ICoreWebView2_8
    {
        CONST_VTBL struct ICoreWebView2_8Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_8_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_8_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_8_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_8_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_8_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_8_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_8_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_8_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_8_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_8_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_8_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_8_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_8_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_8_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_8_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_8_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_8_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_8_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_8_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_8_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_8_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_8_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_8_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_8_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_8_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_8_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_8_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_8_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_8_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_8_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_8_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_8_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_8_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_8_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_8_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_8_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_8_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_8_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_8_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_8_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_8_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_8_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_8_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_8_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_8_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_8_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_8_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_8_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_8_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_8_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_8_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_8_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_8_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_8_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_8_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_8_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_8_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_8_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_8_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_8_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_8_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_8_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_8_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_8_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_8_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_8_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_8_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_8_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_8_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_8_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_8_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_8_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_8_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_8_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_8_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_8_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_8_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_8_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_8_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_8_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_8_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_8_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_8_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_8_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_8_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_8_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_8_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_8_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_8_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2IsDocumentPlayingAudioChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2IsDocumentPlayingAudioChangedEventHandler = {0x5def109a, 0x2f4b, 0x49fa, {0xb7, 0xf6, 0x11, 0xc3, 0x9e, 0x51, 0x33, 0x28}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("5def109a-2f4b-49fa-b7f6-11c39e513328")
    ICoreWebView2IsDocumentPlayingAudioChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2IsDocumentPlayingAudioChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2IsDocumentPlayingAudioChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2IsDocumentPlayingAudioChangedEventHandlerVtbl;

    interface ICoreWebView2IsDocumentPlayingAudioChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2IsDocumentPlayingAudioChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2IsDocumentPlayingAudioChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2IsMutedChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2IsMutedChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2IsMutedChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2IsMutedChangedEventHandler = {0x57d90347, 0xcd0e, 0x4952, {0xa4, 0xa2, 0x74, 0x83, 0xa2, 0x75, 0x6f, 0x08}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("57d90347-cd0e-4952-a4a2-7483a2756f08")
    ICoreWebView2IsMutedChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2IsMutedChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2IsMutedChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2IsMutedChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2IsMutedChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2IsMutedChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2IsMutedChangedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2IsMutedChangedEventHandlerVtbl;

    interface ICoreWebView2IsMutedChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2IsMutedChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2IsMutedChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2IsMutedChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2IsMutedChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2IsMutedChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2IsMutedChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_9_INTERFACE_DEFINED__
#define __ICoreWebView2_9_INTERFACE_DEFINED__

    /* interface ICoreWebView2_9 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_9 = {0x4d7b2eab, 0x9fdc, 0x468d, {0xb9, 0x98, 0xa9, 0x26, 0x0b, 0x5e, 0xd6, 0x51}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4d7b2eab-9fdc-468d-b998-a9260b5ed651")
    ICoreWebView2_9 : public ICoreWebView2_8
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_IsDefaultDownloadDialogOpenChanged(
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler * handler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_IsDefaultDownloadDialogOpenChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsDefaultDownloadDialogOpen(
            /* [retval][out] */ BOOL * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE OpenDefaultDownloadDialog(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE CloseDefaultDownloadDialog(void) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultDownloadDialogCornerAlignment(
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_DefaultDownloadDialogCornerAlignment(
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultDownloadDialogMargin(
            /* [retval][out] */ POINT * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_DefaultDownloadDialogMargin(
            /* [in] */ POINT value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_9Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_9 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_9 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_9 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_9 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_9 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_9 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_9 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_9 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_9 *This,
            /* [in] */ POINT value);

        END_INTERFACE
    } ICoreWebView2_9Vtbl;

    interface ICoreWebView2_9
    {
        CONST_VTBL struct ICoreWebView2_9Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_9_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_9_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_9_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_9_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_9_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_9_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_9_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_9_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_9_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_9_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_9_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_9_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_9_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_9_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_9_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_9_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_9_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_9_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_9_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_9_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_9_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_9_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_9_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_9_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_9_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_9_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_9_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_9_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_9_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_9_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_9_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_9_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_9_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_9_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_9_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_9_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_9_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_9_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_9_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_9_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_9_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_9_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_9_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_9_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_9_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_9_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_9_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_9_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_9_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_9_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_9_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_9_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_9_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_9_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_9_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_9_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_9_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_9_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_9_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_9_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_9_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_9_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_9_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_9_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_9_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_9_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_9_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_9_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_9_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_9_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_9_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_9_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_9_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_9_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_9_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_9_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_9_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_9_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_9_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_9_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_9_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_9_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_9_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_9_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_9_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_9_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_9_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_9_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_9_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_9_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_9_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_9_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_9_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_9_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_9_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_9_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_9_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_9_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler = {0x3117da26, 0xae13, 0x438d, {0xbd, 0x46, 0xed, 0xbe, 0xb2, 0xc4, 0xce, 0x81}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("3117da26-ae13-438d-bd46-edbeb2c4ce81")
    ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandlerVtbl;

    interface ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_10_INTERFACE_DEFINED__
#define __ICoreWebView2_10_INTERFACE_DEFINED__

    /* interface ICoreWebView2_10 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_10 = {0xb1690564, 0x6f5a, 0x4983, {0x8e, 0x48, 0x31, 0xd1, 0x14, 0x3f, 0xec, 0xdb}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b1690564-6f5a-4983-8e48-31d1143fecdb")
    ICoreWebView2_10 : public ICoreWebView2_9
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_BasicAuthenticationRequested(
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_BasicAuthenticationRequested(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_10Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_10 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_10 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_10 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_10 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_10 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_10 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_10 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_10 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_10 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_10 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2_10Vtbl;

    interface ICoreWebView2_10
    {
        CONST_VTBL struct ICoreWebView2_10Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_10_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_10_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_10_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_10_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_10_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_10_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_10_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_10_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_10_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_10_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_10_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_10_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_10_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_10_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_10_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_10_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_10_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_10_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_10_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_10_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_10_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_10_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_10_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_10_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_10_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_10_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_10_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_10_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_10_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_10_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_10_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_10_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_10_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_10_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_10_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_10_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_10_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_10_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_10_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_10_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_10_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_10_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_10_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_10_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_10_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_10_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_10_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_10_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_10_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_10_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_10_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_10_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_10_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_10_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_10_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_10_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_10_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_10_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_10_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_10_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_10_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_10_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_10_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_10_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_10_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_10_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_10_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_10_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_10_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_10_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_10_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_10_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_10_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_10_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_10_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_10_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_10_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_10_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_10_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_10_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_10_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_10_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_10_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_10_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_10_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_10_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_10_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_10_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_10_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_10_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_10_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_10_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_10_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_10_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_10_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_10_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_10_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_10_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_10_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_10_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BasicAuthenticationRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2BasicAuthenticationRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2BasicAuthenticationRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BasicAuthenticationRequestedEventHandler = {0x58b4d6c2, 0x18d4, 0x497e, {0xb3, 0x9b, 0x9a, 0x96, 0x53, 0x3f, 0xa2, 0x78}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("58b4d6c2-18d4-497e-b39b-9a96533fa278")
    ICoreWebView2BasicAuthenticationRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BasicAuthenticationRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BasicAuthenticationRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BasicAuthenticationRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BasicAuthenticationRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2BasicAuthenticationRequestedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2BasicAuthenticationRequestedEventHandlerVtbl;

    interface ICoreWebView2BasicAuthenticationRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2BasicAuthenticationRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BasicAuthenticationRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BasicAuthenticationRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BasicAuthenticationRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BasicAuthenticationRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BasicAuthenticationRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_11_INTERFACE_DEFINED__
#define __ICoreWebView2_11_INTERFACE_DEFINED__

    /* interface ICoreWebView2_11 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_11 = {0x0be78e56, 0xc193, 0x4051, {0xb9, 0x43, 0x23, 0xb4, 0x60, 0xc0, 0x8b, 0xdb}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0be78e56-c193-4051-b943-23b460c08bdb")
    ICoreWebView2_11 : public ICoreWebView2_10
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CallDevToolsProtocolMethodForSession(
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_ContextMenuRequested(
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ContextMenuRequested(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_11Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_11 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_11 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_11 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_11 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_11 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_11 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_11 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_11 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_11 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_11 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2_11Vtbl;

    interface ICoreWebView2_11
    {
        CONST_VTBL struct ICoreWebView2_11Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_11_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_11_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_11_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_11_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_11_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_11_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_11_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_11_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_11_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_11_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_11_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_11_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_11_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_11_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_11_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_11_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_11_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_11_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_11_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_11_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_11_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_11_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_11_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_11_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_11_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_11_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_11_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_11_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_11_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_11_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_11_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_11_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_11_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_11_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_11_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_11_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_11_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_11_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_11_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_11_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_11_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_11_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_11_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_11_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_11_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_11_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_11_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_11_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_11_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_11_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_11_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_11_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_11_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_11_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_11_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_11_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_11_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_11_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_11_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_11_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_11_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_11_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_11_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_11_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_11_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_11_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_11_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_11_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_11_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_11_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_11_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_11_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_11_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_11_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_11_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_11_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_11_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_11_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_11_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_11_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_11_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_11_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_11_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_11_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_11_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_11_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_11_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_11_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_11_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_11_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_11_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_11_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_11_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_11_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_11_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_11_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_11_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_11_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_11_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_11_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_11_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_11_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_11_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ContextMenuRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ContextMenuRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ContextMenuRequestedEventHandler = {0x04d3fe1d, 0xab87, 0x42fb, {0xa8, 0x98, 0xda, 0x24, 0x1d, 0x35, 0xb6, 0x3c}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("04d3fe1d-ab87-42fb-a898-da241d35b63c")
    ICoreWebView2ContextMenuRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ContextMenuRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ContextMenuRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ContextMenuRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ContextMenuRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ContextMenuRequestedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2ContextMenuRequestedEventHandlerVtbl;

    interface ICoreWebView2ContextMenuRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2ContextMenuRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ContextMenuRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ContextMenuRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ContextMenuRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ContextMenuRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ContextMenuRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_12_INTERFACE_DEFINED__
#define __ICoreWebView2_12_INTERFACE_DEFINED__

    /* interface ICoreWebView2_12 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_12 = {0x35D69927, 0xBCFA, 0x4566, {0x93, 0x49, 0x6B, 0x3E, 0x0D, 0x15, 0x4C, 0xAC}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("35D69927-BCFA-4566-9349-6B3E0D154CAC")
    ICoreWebView2_12 : public ICoreWebView2_11
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_StatusBarTextChanged(
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_StatusBarTextChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StatusBarText(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_12Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_12 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_12 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_12 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_12 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_12 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_12 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_12 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_12 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_12 *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2_12Vtbl;

    interface ICoreWebView2_12
    {
        CONST_VTBL struct ICoreWebView2_12Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_12_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_12_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_12_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_12_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_12_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_12_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_12_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_12_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_12_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_12_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_12_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_12_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_12_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_12_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_12_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_12_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_12_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_12_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_12_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_12_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_12_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_12_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_12_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_12_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_12_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_12_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_12_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_12_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_12_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_12_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_12_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_12_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_12_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_12_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_12_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_12_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_12_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_12_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_12_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_12_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_12_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_12_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_12_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_12_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_12_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_12_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_12_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_12_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_12_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_12_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_12_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_12_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_12_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_12_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_12_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_12_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_12_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_12_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_12_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_12_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_12_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_12_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_12_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_12_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_12_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_12_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_12_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_12_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_12_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_12_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_12_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_12_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_12_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_12_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_12_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_12_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_12_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_12_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_12_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_12_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_12_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_12_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_12_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_12_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_12_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_12_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_12_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_12_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_12_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_12_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_12_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_12_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_12_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_12_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_12_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_12_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_12_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_12_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_12_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_12_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_12_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_12_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_12_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_12_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_12_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_12_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2StatusBarTextChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2StatusBarTextChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2StatusBarTextChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2StatusBarTextChangedEventHandler = {0xa5e3b0d0, 0x10df, 0x4156, {0xbf, 0xad, 0x3b, 0x43, 0x86, 0x7a, 0xca, 0xc6}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("a5e3b0d0-10df-4156-bfad-3b43867acac6")
    ICoreWebView2StatusBarTextChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2StatusBarTextChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2StatusBarTextChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2StatusBarTextChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2StatusBarTextChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2StatusBarTextChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2StatusBarTextChangedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2StatusBarTextChangedEventHandlerVtbl;

    interface ICoreWebView2StatusBarTextChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2StatusBarTextChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2StatusBarTextChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2StatusBarTextChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2StatusBarTextChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2StatusBarTextChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2StatusBarTextChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_13_INTERFACE_DEFINED__
#define __ICoreWebView2_13_INTERFACE_DEFINED__

    /* interface ICoreWebView2_13 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_13 = {0xf75f09a8, 0x667e, 0x4983, {0x88, 0xd6, 0xc8, 0x77, 0x3f, 0x31, 0x5e, 0x84}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f75f09a8-667e-4983-88d6-c8773f315e84")
    ICoreWebView2_13 : public ICoreWebView2_12
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Profile(
            /* [retval][out] */ ICoreWebView2Profile * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_13Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_13 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_13 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_13 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_13 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_13 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_13 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_13 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_13 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_13 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        END_INTERFACE
    } ICoreWebView2_13Vtbl;

    interface ICoreWebView2_13
    {
        CONST_VTBL struct ICoreWebView2_13Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_13_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_13_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_13_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_13_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_13_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_13_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_13_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_13_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_13_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_13_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_13_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_13_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_13_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_13_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_13_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_13_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_13_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_13_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_13_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_13_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_13_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_13_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_13_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_13_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_13_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_13_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_13_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_13_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_13_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_13_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_13_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_13_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_13_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_13_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_13_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_13_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_13_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_13_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_13_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_13_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_13_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_13_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_13_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_13_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_13_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_13_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_13_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_13_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_13_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_13_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_13_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_13_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_13_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_13_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_13_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_13_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_13_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_13_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_13_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_13_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_13_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_13_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_13_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_13_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_13_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_13_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_13_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_13_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_13_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_13_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_13_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_13_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_13_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_13_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_13_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_13_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_13_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_13_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_13_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_13_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_13_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_13_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_13_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_13_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_13_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_13_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_13_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_13_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_13_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_13_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_13_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_13_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_13_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_13_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_13_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_13_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_13_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_13_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_13_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_13_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_13_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_13_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_13_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_13_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_13_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_13_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_13_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_14_INTERFACE_DEFINED__
#define __ICoreWebView2_14_INTERFACE_DEFINED__

    /* interface ICoreWebView2_14 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_14 = {0x6daa4f10, 0x4a90, 0x4753, {0x88, 0x98, 0x77, 0xc5, 0xdf, 0x53, 0x41, 0x65}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("6daa4f10-4a90-4753-8898-77c5df534165")
    ICoreWebView2_14 : public ICoreWebView2_13
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_ServerCertificateErrorDetected(
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ServerCertificateErrorDetected(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE ClearServerCertificateErrorActions(
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_14Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_14 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_14 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_14 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_14 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_14 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_14 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_14 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_14 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_14 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_14 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2_14Vtbl;

    interface ICoreWebView2_14
    {
        CONST_VTBL struct ICoreWebView2_14Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_14_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_14_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_14_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_14_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_14_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_14_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_14_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_14_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_14_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_14_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_14_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_14_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_14_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_14_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_14_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_14_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_14_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_14_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_14_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_14_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_14_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_14_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_14_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_14_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_14_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_14_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_14_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_14_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_14_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_14_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_14_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_14_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_14_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_14_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_14_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_14_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_14_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_14_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_14_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_14_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_14_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_14_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_14_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_14_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_14_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_14_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_14_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_14_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_14_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_14_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_14_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_14_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_14_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_14_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_14_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_14_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_14_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_14_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_14_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_14_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_14_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_14_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_14_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_14_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_14_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_14_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_14_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_14_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_14_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_14_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_14_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_14_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_14_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_14_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_14_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_14_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_14_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_14_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_14_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_14_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_14_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_14_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_14_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_14_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_14_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_14_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_14_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_14_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_14_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_14_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_14_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_14_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_14_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_14_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_14_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_14_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_14_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_14_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_14_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_14_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_14_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_14_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_14_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_14_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_14_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_14_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_14_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_14_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_14_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_14_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ServerCertificateErrorDetectedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ServerCertificateErrorDetectedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ServerCertificateErrorDetectedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ServerCertificateErrorDetectedEventHandler = {0x969b3a26, 0xd85e, 0x4795, {0x81, 0x99, 0xfe, 0xf5, 0x73, 0x44, 0xda, 0x22}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("969b3a26-d85e-4795-8199-fef57344da22")
    ICoreWebView2ServerCertificateErrorDetectedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ServerCertificateErrorDetectedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ServerCertificateErrorDetectedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ServerCertificateErrorDetectedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ServerCertificateErrorDetectedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ServerCertificateErrorDetectedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ServerCertificateErrorDetectedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2ServerCertificateErrorDetectedEventHandlerVtbl;

    interface ICoreWebView2ServerCertificateErrorDetectedEventHandler
    {
        CONST_VTBL struct ICoreWebView2ServerCertificateErrorDetectedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ServerCertificateErrorDetectedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ServerCertificateErrorDetectedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ServerCertificateErrorDetectedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ServerCertificateErrorDetectedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ServerCertificateErrorDetectedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler = {0x3b40aac6, 0xacfe, 0x4ffd, {0x82, 0x11, 0xf6, 0x07, 0xb9, 0x6e, 0x2d, 0x5b}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("3b40aac6-acfe-4ffd-8211-f607b96e2d5b")
    ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ClearServerCertificateErrorActionsCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *This,
            /* [in] */ HRESULT errorCode);

        END_INTERFACE
    } ICoreWebView2ClearServerCertificateErrorActionsCompletedHandlerVtbl;

    interface ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2ClearServerCertificateErrorActionsCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_Invoke(This, errorCode) \
    ((This)->lpVtbl->Invoke(This, errorCode))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_15_INTERFACE_DEFINED__
#define __ICoreWebView2_15_INTERFACE_DEFINED__

    /* interface ICoreWebView2_15 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_15 = {0x517B2D1D, 0x7DAE, 0x4A66, {0xA4, 0xF4, 0x10, 0x35, 0x2F, 0xFB, 0x95, 0x18}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("517B2D1D-7DAE-4A66-A4F4-10352FFB9518")
    ICoreWebView2_15 : public ICoreWebView2_14
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_FaviconChanged(
            /* [in] */ ICoreWebView2FaviconChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_FaviconChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FaviconUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetFavicon(
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler * completedHandler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_15Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_15 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_15 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_15 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_15 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_15 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_15 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_15 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_15 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_15 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_15 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_15 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_15 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        END_INTERFACE
    } ICoreWebView2_15Vtbl;

    interface ICoreWebView2_15
    {
        CONST_VTBL struct ICoreWebView2_15Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_15_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_15_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_15_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_15_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_15_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_15_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_15_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_15_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_15_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_15_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_15_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_15_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_15_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_15_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_15_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_15_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_15_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_15_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_15_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_15_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_15_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_15_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_15_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_15_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_15_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_15_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_15_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_15_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_15_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_15_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_15_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_15_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_15_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_15_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_15_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_15_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_15_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_15_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_15_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_15_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_15_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_15_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_15_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_15_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_15_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_15_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_15_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_15_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_15_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_15_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_15_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_15_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_15_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_15_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_15_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_15_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_15_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_15_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_15_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_15_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_15_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_15_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_15_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_15_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_15_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_15_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_15_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_15_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_15_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_15_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_15_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_15_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_15_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_15_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_15_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_15_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_15_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_15_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_15_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_15_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_15_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_15_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_15_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_15_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_15_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_15_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_15_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_15_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_15_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_15_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_15_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_15_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_15_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_15_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_15_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_15_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_15_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_15_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_15_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_15_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_15_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_15_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_15_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_15_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_15_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_15_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_15_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_15_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_15_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_15_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_15_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_15_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_15_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_15_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FaviconChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FaviconChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FaviconChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FaviconChangedEventHandler = {0x2913da94, 0x833d, 0x4de0, {0x8d, 0xca, 0x90, 0x0f, 0xc5, 0x24, 0xa1, 0xa4}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("2913da94-833d-4de0-8dca-900fc524a1a4")
    ICoreWebView2FaviconChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FaviconChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FaviconChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FaviconChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FaviconChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FaviconChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FaviconChangedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2FaviconChangedEventHandlerVtbl;

    interface ICoreWebView2FaviconChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FaviconChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FaviconChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FaviconChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FaviconChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FaviconChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FaviconChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2GetFaviconCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2GetFaviconCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2GetFaviconCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2GetFaviconCompletedHandler = {0xa2508329, 0x7da8, 0x49d7, {0x8c, 0x05, 0xfa, 0x12, 0x5e, 0x4a, 0xee, 0x8d}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("a2508329-7da8-49d7-8c05-fa125e4aee8d")
    ICoreWebView2GetFaviconCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ IStream * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2GetFaviconCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2GetFaviconCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2GetFaviconCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2GetFaviconCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2GetFaviconCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2GetFaviconCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ IStream *result);

        END_INTERFACE
    } ICoreWebView2GetFaviconCompletedHandlerVtbl;

    interface ICoreWebView2GetFaviconCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2GetFaviconCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2GetFaviconCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2GetFaviconCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2GetFaviconCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2GetFaviconCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2GetFaviconCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_16_INTERFACE_DEFINED__
#define __ICoreWebView2_16_INTERFACE_DEFINED__

    /* interface ICoreWebView2_16 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_16 = {0x0EB34DC9, 0x9F91, 0x41E1, {0x86, 0x39, 0x95, 0xCD, 0x59, 0x43, 0x90, 0x6B}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0EB34DC9-9F91-41E1-8639-95CD5943906B")
    ICoreWebView2_16 : public ICoreWebView2_15
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Print(
            /* [in] */ ICoreWebView2PrintSettings * printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE ShowPrintUI(
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind) = 0;

        virtual HRESULT STDMETHODCALLTYPE PrintToPdfStream(
            /* [in] */ ICoreWebView2PrintSettings * printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_16Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_16 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_16 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_16 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_16 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_16 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_16 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_16 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_16 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_16 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_16 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_16 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_16 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_16 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_16 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2_16Vtbl;

    interface ICoreWebView2_16
    {
        CONST_VTBL struct ICoreWebView2_16Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_16_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_16_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_16_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_16_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_16_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_16_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_16_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_16_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_16_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_16_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_16_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_16_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_16_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_16_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_16_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_16_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_16_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_16_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_16_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_16_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_16_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_16_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_16_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_16_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_16_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_16_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_16_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_16_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_16_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_16_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_16_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_16_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_16_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_16_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_16_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_16_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_16_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_16_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_16_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_16_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_16_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_16_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_16_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_16_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_16_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_16_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_16_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_16_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_16_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_16_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_16_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_16_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_16_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_16_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_16_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_16_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_16_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_16_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_16_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_16_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_16_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_16_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_16_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_16_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_16_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_16_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_16_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_16_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_16_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_16_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_16_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_16_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_16_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_16_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_16_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_16_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_16_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_16_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_16_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_16_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_16_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_16_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_16_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_16_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_16_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_16_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_16_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_16_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_16_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_16_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_16_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_16_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_16_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_16_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_16_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_16_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_16_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_16_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_16_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_16_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_16_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_16_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_16_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_16_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_16_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_16_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_16_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_16_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_16_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_16_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_16_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_16_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_16_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_16_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_16_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_16_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_16_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PrintCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2PrintCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2PrintCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PrintCompletedHandler = {0x8fd80075, 0xed08, 0x42db, {0x85, 0x70, 0xf5, 0xd1, 0x49, 0x77, 0x46, 0x1e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("8fd80075-ed08-42db-8570-f5d14977461e")
    ICoreWebView2PrintCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ COREWEBVIEW2_PRINT_STATUS result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PrintCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PrintCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PrintCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PrintCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2PrintCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ COREWEBVIEW2_PRINT_STATUS result);

        END_INTERFACE
    } ICoreWebView2PrintCompletedHandlerVtbl;

    interface ICoreWebView2PrintCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2PrintCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PrintCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PrintCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PrintCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PrintCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PrintCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PrintToPdfStreamCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2PrintToPdfStreamCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2PrintToPdfStreamCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PrintToPdfStreamCompletedHandler = {0x4c9f8229, 0x8f93, 0x444f, {0xa7, 0x11, 0x2c, 0x0d, 0xfd, 0x63, 0x59, 0xd5}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4c9f8229-8f93-444f-a711-2c0dfd6359d5")
    ICoreWebView2PrintToPdfStreamCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ IStream * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PrintToPdfStreamCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PrintToPdfStreamCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PrintToPdfStreamCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PrintToPdfStreamCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintToPdfStreamCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2PrintToPdfStreamCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ IStream *result);

        END_INTERFACE
    } ICoreWebView2PrintToPdfStreamCompletedHandlerVtbl;

    interface ICoreWebView2PrintToPdfStreamCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2PrintToPdfStreamCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PrintToPdfStreamCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PrintToPdfStreamCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PrintToPdfStreamCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PrintToPdfStreamCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PrintToPdfStreamCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_17_INTERFACE_DEFINED__
#define __ICoreWebView2_17_INTERFACE_DEFINED__

    /* interface ICoreWebView2_17 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_17 = {0x702e75d4, 0xfd44, 0x434d, {0x9d, 0x70, 0x1a, 0x68, 0xa6, 0xb1, 0x19, 0x2a}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("702e75d4-fd44-434d-9d70-1a68a6b1192a")
    ICoreWebView2_17 : public ICoreWebView2_16
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE PostSharedBufferToScript(
            /* [in] */ ICoreWebView2SharedBuffer * sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_17Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_17 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_17 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_17 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_17 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_17 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_17 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_17 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_17 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_17 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_17 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_17 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_17 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_17 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_17 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        END_INTERFACE
    } ICoreWebView2_17Vtbl;

    interface ICoreWebView2_17
    {
        CONST_VTBL struct ICoreWebView2_17Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_17_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_17_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_17_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_17_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_17_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_17_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_17_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_17_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_17_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_17_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_17_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_17_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_17_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_17_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_17_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_17_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_17_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_17_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_17_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_17_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_17_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_17_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_17_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_17_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_17_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_17_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_17_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_17_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_17_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_17_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_17_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_17_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_17_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_17_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_17_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_17_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_17_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_17_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_17_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_17_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_17_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_17_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_17_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_17_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_17_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_17_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_17_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_17_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_17_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_17_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_17_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_17_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_17_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_17_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_17_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_17_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_17_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_17_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_17_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_17_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_17_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_17_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_17_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_17_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_17_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_17_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_17_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_17_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_17_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_17_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_17_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_17_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_17_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_17_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_17_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_17_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_17_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_17_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_17_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_17_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_17_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_17_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_17_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_17_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_17_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_17_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_17_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_17_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_17_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_17_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_17_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_17_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_17_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_17_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_17_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_17_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_17_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_17_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_17_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_17_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_17_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_17_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_17_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_17_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_17_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_17_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_17_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_17_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_17_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_17_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_17_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_17_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_17_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_17_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_17_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_17_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_17_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_17_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_18_INTERFACE_DEFINED__
#define __ICoreWebView2_18_INTERFACE_DEFINED__

    /* interface ICoreWebView2_18 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_18 = {0x7a626017, 0x28be, 0x49b2, {0xb8, 0x65, 0x3b, 0xa2, 0xb3, 0x52, 0x2d, 0x90}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7a626017-28be-49b2-b865-3ba2b3522d90")
    ICoreWebView2_18 : public ICoreWebView2_17
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_LaunchingExternalUriScheme(
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_LaunchingExternalUriScheme(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_18Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_18 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_18 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_18 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_18 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_18 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_18 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_18 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_18 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_18 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_18 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_18 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_18 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_18 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_18 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2_18Vtbl;

    interface ICoreWebView2_18
    {
        CONST_VTBL struct ICoreWebView2_18Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_18_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_18_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_18_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_18_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_18_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_18_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_18_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_18_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_18_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_18_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_18_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_18_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_18_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_18_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_18_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_18_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_18_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_18_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_18_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_18_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_18_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_18_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_18_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_18_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_18_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_18_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_18_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_18_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_18_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_18_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_18_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_18_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_18_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_18_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_18_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_18_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_18_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_18_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_18_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_18_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_18_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_18_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_18_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_18_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_18_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_18_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_18_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_18_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_18_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_18_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_18_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_18_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_18_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_18_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_18_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_18_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_18_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_18_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_18_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_18_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_18_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_18_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_18_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_18_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_18_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_18_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_18_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_18_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_18_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_18_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_18_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_18_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_18_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_18_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_18_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_18_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_18_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_18_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_18_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_18_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_18_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_18_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_18_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_18_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_18_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_18_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_18_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_18_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_18_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_18_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_18_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_18_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_18_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_18_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_18_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_18_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_18_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_18_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_18_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_18_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_18_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_18_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_18_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_18_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_18_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_18_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_18_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_18_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_18_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_18_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_18_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_18_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_18_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_18_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_18_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_18_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_18_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_18_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_18_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_18_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2LaunchingExternalUriSchemeEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2LaunchingExternalUriSchemeEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2LaunchingExternalUriSchemeEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2LaunchingExternalUriSchemeEventHandler = {0x74f712e0, 0x8165, 0x43a9, {0xa1, 0x3f, 0x0c, 0xce, 0x59, 0x7e, 0x75, 0xdf}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("74f712e0-8165-43a9-a13f-0cce597e75df")
    ICoreWebView2LaunchingExternalUriSchemeEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2LaunchingExternalUriSchemeEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2LaunchingExternalUriSchemeEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2LaunchingExternalUriSchemeEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2LaunchingExternalUriSchemeEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2LaunchingExternalUriSchemeEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2LaunchingExternalUriSchemeEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventArgs *args);

        END_INTERFACE
    } ICoreWebView2LaunchingExternalUriSchemeEventHandlerVtbl;

    interface ICoreWebView2LaunchingExternalUriSchemeEventHandler
    {
        CONST_VTBL struct ICoreWebView2LaunchingExternalUriSchemeEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2LaunchingExternalUriSchemeEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2LaunchingExternalUriSchemeEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2LaunchingExternalUriSchemeEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2LaunchingExternalUriSchemeEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2LaunchingExternalUriSchemeEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_19_INTERFACE_DEFINED__
#define __ICoreWebView2_19_INTERFACE_DEFINED__

    /* interface ICoreWebView2_19 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_19 = {0x6921f954, 0x79b0, 0x437f, {0xa9, 0x97, 0xc8, 0x58, 0x11, 0x89, 0x7c, 0x68}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("6921f954-79b0-437f-a997-c85811897c68")
    ICoreWebView2_19 : public ICoreWebView2_18
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MemoryUsageTargetLevel(
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MemoryUsageTargetLevel(
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_19Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_19 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_19 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_19 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_19 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_19 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_19 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_19 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_19 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_19 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_19 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_19 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_19 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_19 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, get_MemoryUsageTargetLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MemoryUsageTargetLevel)(
            ICoreWebView2_19 *This,
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, put_MemoryUsageTargetLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MemoryUsageTargetLevel)(
            ICoreWebView2_19 *This,
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value);

        END_INTERFACE
    } ICoreWebView2_19Vtbl;

    interface ICoreWebView2_19
    {
        CONST_VTBL struct ICoreWebView2_19Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_19_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_19_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_19_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_19_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_19_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_19_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_19_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_19_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_19_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_19_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_19_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_19_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_19_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_19_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_19_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_19_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_19_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_19_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_19_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_19_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_19_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_19_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_19_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_19_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_19_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_19_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_19_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_19_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_19_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_19_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_19_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_19_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_19_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_19_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_19_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_19_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_19_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_19_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_19_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_19_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_19_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_19_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_19_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_19_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_19_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_19_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_19_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_19_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_19_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_19_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_19_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_19_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_19_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_19_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_19_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_19_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_19_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_19_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_19_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_19_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_19_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_19_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_19_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_19_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_19_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_19_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_19_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_19_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_19_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_19_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_19_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_19_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_19_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_19_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_19_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_19_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_19_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_19_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_19_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_19_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_19_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_19_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_19_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_19_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_19_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_19_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_19_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_19_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_19_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_19_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_19_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_19_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_19_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_19_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_19_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_19_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_19_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_19_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_19_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_19_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_19_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_19_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_19_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_19_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_19_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_19_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_19_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_19_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_19_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_19_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_19_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_19_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_19_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_19_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_19_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_19_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_19_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_19_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_19_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#define ICoreWebView2_19_get_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->get_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_19_put_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->put_MemoryUsageTargetLevel(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_19_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_20_INTERFACE_DEFINED__
#define __ICoreWebView2_20_INTERFACE_DEFINED__

    /* interface ICoreWebView2_20 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_20 = {0xb4bc1926, 0x7305, 0x11ee, {0xb9, 0x62, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b4bc1926-7305-11ee-b962-0242ac120002")
    ICoreWebView2_20 : public ICoreWebView2_19
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FrameId(
            /* [retval][out] */ UINT32 * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_20Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_20 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_20 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_20 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_20 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_20 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_20 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_20 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_20 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_20 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_20 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_20 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_20 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_20 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, get_MemoryUsageTargetLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MemoryUsageTargetLevel)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, put_MemoryUsageTargetLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MemoryUsageTargetLevel)(
            ICoreWebView2_20 *This,
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_20, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2_20 *This,
            /* [retval][out] */ UINT32 *value);

        END_INTERFACE
    } ICoreWebView2_20Vtbl;

    interface ICoreWebView2_20
    {
        CONST_VTBL struct ICoreWebView2_20Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_20_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_20_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_20_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_20_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_20_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_20_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_20_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_20_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_20_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_20_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_20_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_20_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_20_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_20_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_20_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_20_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_20_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_20_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_20_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_20_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_20_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_20_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_20_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_20_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_20_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_20_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_20_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_20_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_20_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_20_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_20_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_20_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_20_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_20_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_20_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_20_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_20_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_20_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_20_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_20_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_20_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_20_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_20_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_20_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_20_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_20_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_20_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_20_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_20_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_20_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_20_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_20_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_20_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_20_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_20_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_20_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_20_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_20_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_20_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_20_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_20_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_20_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_20_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_20_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_20_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_20_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_20_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_20_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_20_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_20_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_20_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_20_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_20_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_20_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_20_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_20_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_20_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_20_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_20_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_20_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_20_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_20_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_20_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_20_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_20_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_20_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_20_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_20_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_20_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_20_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_20_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_20_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_20_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_20_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_20_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_20_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_20_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_20_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_20_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_20_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_20_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_20_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_20_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_20_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_20_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_20_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_20_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_20_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_20_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_20_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_20_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_20_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_20_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_20_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_20_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_20_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_20_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_20_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_20_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#define ICoreWebView2_20_get_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->get_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_20_put_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->put_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_20_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_20_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_21_INTERFACE_DEFINED__
#define __ICoreWebView2_21_INTERFACE_DEFINED__

    /* interface ICoreWebView2_21 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_21 = {0xc4980dea, 0x587b, 0x43b9, {0x81, 0x43, 0x3e, 0xf3, 0xbf, 0x55, 0x2d, 0x95}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("c4980dea-587b-43b9-8143-3ef3bf552d95")
    ICoreWebView2_21 : public ICoreWebView2_20
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE ExecuteScriptWithResult(
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptWithResultCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_21Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_21 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_21 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_21 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_21 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_21 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_21 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_21 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_21 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_21 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_21 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_21 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_21 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, get_MemoryUsageTargetLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MemoryUsageTargetLevel)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, put_MemoryUsageTargetLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MemoryUsageTargetLevel)(
            ICoreWebView2_21 *This,
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_20, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2_21 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_21, ExecuteScriptWithResult)
        HRESULT(STDMETHODCALLTYPE *ExecuteScriptWithResult)(
            ICoreWebView2_21 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptWithResultCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2_21Vtbl;

    interface ICoreWebView2_21
    {
        CONST_VTBL struct ICoreWebView2_21Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_21_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_21_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_21_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_21_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_21_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_21_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_21_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_21_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_21_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_21_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_21_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_21_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_21_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_21_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_21_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_21_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_21_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_21_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_21_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_21_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_21_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_21_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_21_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_21_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_21_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_21_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_21_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_21_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_21_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_21_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_21_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_21_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_21_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_21_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_21_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_21_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_21_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_21_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_21_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_21_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_21_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_21_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_21_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_21_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_21_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_21_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_21_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_21_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_21_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_21_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_21_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_21_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_21_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_21_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_21_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_21_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_21_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_21_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_21_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_21_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_21_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_21_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_21_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_21_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_21_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_21_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_21_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_21_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_21_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_21_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_21_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_21_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_21_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_21_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_21_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_21_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_21_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_21_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_21_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_21_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_21_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_21_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_21_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_21_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_21_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_21_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_21_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_21_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_21_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_21_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_21_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_21_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_21_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_21_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_21_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_21_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_21_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_21_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_21_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_21_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_21_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_21_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_21_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_21_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_21_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_21_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_21_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_21_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_21_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_21_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_21_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_21_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_21_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_21_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_21_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_21_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_21_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_21_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_21_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#define ICoreWebView2_21_get_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->get_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_21_put_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->put_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_21_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#define ICoreWebView2_21_ExecuteScriptWithResult(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScriptWithResult(This, javaScript, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_21_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ExecuteScriptWithResultCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ExecuteScriptWithResultCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ExecuteScriptWithResultCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ExecuteScriptWithResultCompletedHandler = {0x1bb5317b, 0x8238, 0x4c67, {0xa7, 0xff, 0xba, 0xf6, 0x55, 0x8f, 0x28, 0x9d}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("1bb5317b-8238-4c67-a7ff-baf6558f289d")
    ICoreWebView2ExecuteScriptWithResultCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2ExecuteScriptResult * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ExecuteScriptWithResultCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ExecuteScriptWithResultCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ExecuteScriptWithResultCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ExecuteScriptWithResultCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ExecuteScriptWithResultCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ExecuteScriptWithResultCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2ExecuteScriptResult *result);

        END_INTERFACE
    } ICoreWebView2ExecuteScriptWithResultCompletedHandlerVtbl;

    interface ICoreWebView2ExecuteScriptWithResultCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2ExecuteScriptWithResultCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ExecuteScriptWithResultCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ExecuteScriptWithResultCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ExecuteScriptWithResultCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ExecuteScriptWithResultCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ExecuteScriptWithResultCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_22_INTERFACE_DEFINED__
#define __ICoreWebView2_22_INTERFACE_DEFINED__

    /* interface ICoreWebView2_22 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_22 = {0xdb75dfc7, 0xa857, 0x4632, {0xa3, 0x98, 0x69, 0x69, 0xdd, 0xe2, 0x6c, 0x0a}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("db75dfc7-a857-4632-a398-6969dde26c0a")
    ICoreWebView2_22 : public ICoreWebView2_21
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AddWebResourceRequestedFilterWithRequestSourceKinds(
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds) = 0;

        virtual HRESULT STDMETHODCALLTYPE RemoveWebResourceRequestedFilterWithRequestSourceKinds(
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_22Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_22 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_22 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_22 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_22 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_22 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_22 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_22 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_22 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_22 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_22 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_22 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_22 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, get_MemoryUsageTargetLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MemoryUsageTargetLevel)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, put_MemoryUsageTargetLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MemoryUsageTargetLevel)(
            ICoreWebView2_22 *This,
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_20, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2_22 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_21, ExecuteScriptWithResult)
        HRESULT(STDMETHODCALLTYPE *ExecuteScriptWithResult)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptWithResultCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, AddWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, RemoveWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_22 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        END_INTERFACE
    } ICoreWebView2_22Vtbl;

    interface ICoreWebView2_22
    {
        CONST_VTBL struct ICoreWebView2_22Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_22_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_22_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_22_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_22_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_22_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_22_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_22_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_22_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_22_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_22_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_22_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_22_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_22_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_22_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_22_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_22_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_22_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_22_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_22_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_22_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_22_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_22_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_22_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_22_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_22_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_22_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_22_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_22_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_22_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_22_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_22_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_22_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_22_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_22_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_22_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_22_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_22_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_22_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_22_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_22_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_22_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_22_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_22_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_22_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_22_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_22_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_22_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_22_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_22_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_22_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_22_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_22_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_22_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_22_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_22_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_22_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_22_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_22_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_22_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_22_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_22_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_22_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_22_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_22_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_22_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_22_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_22_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_22_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_22_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_22_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_22_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_22_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_22_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_22_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_22_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_22_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_22_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_22_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_22_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_22_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_22_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_22_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_22_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_22_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_22_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_22_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_22_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_22_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_22_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_22_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_22_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_22_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_22_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_22_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_22_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_22_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_22_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_22_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_22_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_22_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_22_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_22_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_22_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_22_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_22_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_22_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_22_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_22_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_22_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_22_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_22_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_22_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_22_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_22_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_22_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_22_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_22_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_22_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_22_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#define ICoreWebView2_22_get_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->get_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_22_put_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->put_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_22_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#define ICoreWebView2_22_ExecuteScriptWithResult(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScriptWithResult(This, javaScript, handler))

#define ICoreWebView2_22_AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_22_RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_22_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_23_INTERFACE_DEFINED__
#define __ICoreWebView2_23_INTERFACE_DEFINED__

    /* interface ICoreWebView2_23 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_23 = {0x508f0db5, 0x90c4, 0x5872, {0x90, 0xa7, 0x26, 0x7a, 0x91, 0x37, 0x75, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("508f0db5-90c4-5872-90a7-267a91377502")
    ICoreWebView2_23 : public ICoreWebView2_22
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE PostWebMessageAsJsonWithAdditionalObjects(
            /* [in] */ LPCWSTR webMessageAsJson,
            /* [in] */ ICoreWebView2ObjectCollectionView * additionalObjects) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_23Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_23 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_23 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_23 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_23 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_23 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_23 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_23 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_23 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_23 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_23 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_23 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_23 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, get_MemoryUsageTargetLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MemoryUsageTargetLevel)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, put_MemoryUsageTargetLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MemoryUsageTargetLevel)(
            ICoreWebView2_23 *This,
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_20, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2_23 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_21, ExecuteScriptWithResult)
        HRESULT(STDMETHODCALLTYPE *ExecuteScriptWithResult)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptWithResultCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, AddWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, RemoveWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_23, PostWebMessageAsJsonWithAdditionalObjects)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJsonWithAdditionalObjects)(
            ICoreWebView2_23 *This,
            /* [in] */ LPCWSTR webMessageAsJson,
            /* [in] */ ICoreWebView2ObjectCollectionView *additionalObjects);

        END_INTERFACE
    } ICoreWebView2_23Vtbl;

    interface ICoreWebView2_23
    {
        CONST_VTBL struct ICoreWebView2_23Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_23_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_23_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_23_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_23_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_23_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_23_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_23_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_23_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_23_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_23_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_23_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_23_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_23_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_23_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_23_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_23_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_23_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_23_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_23_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_23_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_23_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_23_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_23_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_23_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_23_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_23_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_23_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_23_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_23_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_23_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_23_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_23_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_23_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_23_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_23_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_23_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_23_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_23_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_23_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_23_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_23_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_23_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_23_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_23_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_23_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_23_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_23_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_23_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_23_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_23_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_23_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_23_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_23_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_23_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_23_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_23_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_23_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_23_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_23_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_23_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_23_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_23_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_23_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_23_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_23_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_23_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_23_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_23_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_23_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_23_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_23_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_23_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_23_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_23_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_23_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_23_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_23_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_23_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_23_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_23_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_23_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_23_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_23_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_23_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_23_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_23_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_23_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_23_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_23_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_23_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_23_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_23_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_23_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_23_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_23_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_23_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_23_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_23_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_23_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_23_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_23_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_23_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_23_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_23_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_23_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_23_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_23_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_23_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_23_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_23_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_23_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_23_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_23_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_23_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_23_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_23_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_23_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_23_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_23_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#define ICoreWebView2_23_get_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->get_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_23_put_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->put_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_23_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#define ICoreWebView2_23_ExecuteScriptWithResult(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScriptWithResult(This, javaScript, handler))

#define ICoreWebView2_23_AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_23_RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_23_PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects) \
    ((This)->lpVtbl->PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_23_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_24_INTERFACE_DEFINED__
#define __ICoreWebView2_24_INTERFACE_DEFINED__

    /* interface ICoreWebView2_24 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_24 = {0x39a7ad55, 0x4287, 0x5cc1, {0x88, 0xa1, 0xc6, 0xf4, 0x58, 0x59, 0x38, 0x24}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("39a7ad55-4287-5cc1-88a1-c6f458593824")
    ICoreWebView2_24 : public ICoreWebView2_23
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_NotificationReceived(
            /* [in] */ ICoreWebView2NotificationReceivedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_NotificationReceived(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_24Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_24 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_24 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_24 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_24 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_24 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_24 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_24 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_24 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_24 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_24 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, get_MemoryUsageTargetLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MemoryUsageTargetLevel)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, put_MemoryUsageTargetLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MemoryUsageTargetLevel)(
            ICoreWebView2_24 *This,
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_20, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2_24 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_21, ExecuteScriptWithResult)
        HRESULT(STDMETHODCALLTYPE *ExecuteScriptWithResult)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptWithResultCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, AddWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, RemoveWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_23, PostWebMessageAsJsonWithAdditionalObjects)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJsonWithAdditionalObjects)(
            ICoreWebView2_24 *This,
            /* [in] */ LPCWSTR webMessageAsJson,
            /* [in] */ ICoreWebView2ObjectCollectionView *additionalObjects);

        DECLSPEC_XFGVIRT(ICoreWebView2_24, add_NotificationReceived)
        HRESULT(STDMETHODCALLTYPE *add_NotificationReceived)(
            ICoreWebView2_24 *This,
            /* [in] */ ICoreWebView2NotificationReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_24, remove_NotificationReceived)
        HRESULT(STDMETHODCALLTYPE *remove_NotificationReceived)(
            ICoreWebView2_24 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2_24Vtbl;

    interface ICoreWebView2_24
    {
        CONST_VTBL struct ICoreWebView2_24Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_24_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_24_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_24_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_24_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_24_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_24_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_24_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_24_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_24_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_24_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_24_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_24_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_24_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_24_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_24_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_24_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_24_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_24_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_24_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_24_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_24_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_24_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_24_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_24_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_24_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_24_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_24_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_24_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_24_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_24_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_24_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_24_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_24_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_24_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_24_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_24_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_24_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_24_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_24_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_24_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_24_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_24_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_24_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_24_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_24_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_24_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_24_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_24_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_24_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_24_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_24_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_24_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_24_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_24_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_24_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_24_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_24_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_24_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_24_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_24_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_24_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_24_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_24_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_24_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_24_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_24_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_24_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_24_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_24_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_24_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_24_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_24_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_24_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_24_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_24_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_24_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_24_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_24_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_24_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_24_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_24_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_24_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_24_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_24_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_24_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_24_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_24_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_24_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_24_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_24_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_24_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_24_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_24_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_24_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_24_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_24_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_24_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_24_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_24_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_24_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_24_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_24_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_24_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_24_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_24_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_24_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_24_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_24_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_24_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_24_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_24_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_24_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_24_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_24_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_24_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_24_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_24_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_24_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_24_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#define ICoreWebView2_24_get_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->get_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_24_put_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->put_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_24_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#define ICoreWebView2_24_ExecuteScriptWithResult(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScriptWithResult(This, javaScript, handler))

#define ICoreWebView2_24_AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_24_RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_24_PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects) \
    ((This)->lpVtbl->PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects))

#define ICoreWebView2_24_add_NotificationReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_NotificationReceived(This, eventHandler, token))

#define ICoreWebView2_24_remove_NotificationReceived(This, token) \
    ((This)->lpVtbl->remove_NotificationReceived(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2_24_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NotificationReceivedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2NotificationReceivedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2NotificationReceivedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NotificationReceivedEventHandler = {0x89c5d598, 0x8788, 0x423b, {0xbe, 0x97, 0xe6, 0xe0, 0x1c, 0x0f, 0x9e, 0xe3}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("89c5d598-8788-423b-be97-e6e01c0f9ee3")
    ICoreWebView2NotificationReceivedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2NotificationReceivedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NotificationReceivedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NotificationReceivedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NotificationReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NotificationReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NotificationReceivedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2NotificationReceivedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2NotificationReceivedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2NotificationReceivedEventHandlerVtbl;

    interface ICoreWebView2NotificationReceivedEventHandler
    {
        CONST_VTBL struct ICoreWebView2NotificationReceivedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NotificationReceivedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NotificationReceivedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NotificationReceivedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NotificationReceivedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NotificationReceivedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_25_INTERFACE_DEFINED__
#define __ICoreWebView2_25_INTERFACE_DEFINED__

    /* interface ICoreWebView2_25 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_25 = {0xb5a86092, 0xdf50, 0x5b4f, {0xa1, 0x7b, 0x6c, 0x8f, 0x8b, 0x40, 0xb7, 0x71}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b5a86092-df50-5b4f-a17b-6c8f8b40b771")
    ICoreWebView2_25 : public ICoreWebView2_24
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_SaveAsUIShowing(
            /* [in] */ ICoreWebView2SaveAsUIShowingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_SaveAsUIShowing(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE ShowSaveAsUI(
            /* [in] */ ICoreWebView2ShowSaveAsUICompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_25Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_25 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_25 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_25 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_25 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_25 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_25 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_25 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_25 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_25 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_25 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, get_MemoryUsageTargetLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MemoryUsageTargetLevel)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, put_MemoryUsageTargetLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MemoryUsageTargetLevel)(
            ICoreWebView2_25 *This,
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_20, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2_25 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_21, ExecuteScriptWithResult)
        HRESULT(STDMETHODCALLTYPE *ExecuteScriptWithResult)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptWithResultCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, AddWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, RemoveWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_23, PostWebMessageAsJsonWithAdditionalObjects)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJsonWithAdditionalObjects)(
            ICoreWebView2_25 *This,
            /* [in] */ LPCWSTR webMessageAsJson,
            /* [in] */ ICoreWebView2ObjectCollectionView *additionalObjects);

        DECLSPEC_XFGVIRT(ICoreWebView2_24, add_NotificationReceived)
        HRESULT(STDMETHODCALLTYPE *add_NotificationReceived)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2NotificationReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_24, remove_NotificationReceived)
        HRESULT(STDMETHODCALLTYPE *remove_NotificationReceived)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_25, add_SaveAsUIShowing)
        HRESULT(STDMETHODCALLTYPE *add_SaveAsUIShowing)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2SaveAsUIShowingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_25, remove_SaveAsUIShowing)
        HRESULT(STDMETHODCALLTYPE *remove_SaveAsUIShowing)(
            ICoreWebView2_25 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_25, ShowSaveAsUI)
        HRESULT(STDMETHODCALLTYPE *ShowSaveAsUI)(
            ICoreWebView2_25 *This,
            /* [in] */ ICoreWebView2ShowSaveAsUICompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2_25Vtbl;

    interface ICoreWebView2_25
    {
        CONST_VTBL struct ICoreWebView2_25Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_25_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_25_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_25_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_25_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_25_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_25_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_25_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_25_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_25_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_25_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_25_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_25_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_25_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_25_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_25_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_25_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_25_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_25_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_25_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_25_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_25_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_25_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_25_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_25_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_25_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_25_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_25_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_25_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_25_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_25_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_25_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_25_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_25_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_25_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_25_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_25_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_25_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_25_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_25_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_25_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_25_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_25_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_25_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_25_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_25_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_25_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_25_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_25_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_25_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_25_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_25_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_25_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_25_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_25_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_25_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_25_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_25_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_25_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_25_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_25_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_25_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_25_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_25_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_25_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_25_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_25_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_25_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_25_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_25_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_25_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_25_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_25_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_25_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_25_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_25_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_25_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_25_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_25_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_25_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_25_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_25_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_25_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_25_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_25_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_25_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_25_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_25_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_25_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_25_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_25_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_25_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_25_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_25_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_25_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_25_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_25_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_25_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_25_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_25_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_25_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_25_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_25_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_25_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_25_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_25_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_25_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_25_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_25_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_25_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_25_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_25_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_25_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_25_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_25_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_25_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_25_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_25_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_25_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_25_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#define ICoreWebView2_25_get_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->get_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_25_put_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->put_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_25_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#define ICoreWebView2_25_ExecuteScriptWithResult(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScriptWithResult(This, javaScript, handler))

#define ICoreWebView2_25_AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_25_RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_25_PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects) \
    ((This)->lpVtbl->PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects))

#define ICoreWebView2_25_add_NotificationReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_NotificationReceived(This, eventHandler, token))

#define ICoreWebView2_25_remove_NotificationReceived(This, token) \
    ((This)->lpVtbl->remove_NotificationReceived(This, token))

#define ICoreWebView2_25_add_SaveAsUIShowing(This, eventHandler, token) \
    ((This)->lpVtbl->add_SaveAsUIShowing(This, eventHandler, token))

#define ICoreWebView2_25_remove_SaveAsUIShowing(This, token) \
    ((This)->lpVtbl->remove_SaveAsUIShowing(This, token))

#define ICoreWebView2_25_ShowSaveAsUI(This, handler) \
    ((This)->lpVtbl->ShowSaveAsUI(This, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

    HRESULT STDMETHODCALLTYPE ICoreWebView2_25_add_SaveAsUIShowing_Proxy(
        ICoreWebView2_25 *This,
        /* [in] */ ICoreWebView2SaveAsUIShowingEventHandler *eventHandler,
        /* [out] */ EventRegistrationToken *token);

    void __RPC_STUB ICoreWebView2_25_add_SaveAsUIShowing_Stub(
        IRpcStubBuffer *This,
        IRpcChannelBuffer *_pRpcChannelBuffer,
        PRPC_MESSAGE _pRpcMessage,
        DWORD *_pdwStubPhase);

    HRESULT STDMETHODCALLTYPE ICoreWebView2_25_remove_SaveAsUIShowing_Proxy(
        ICoreWebView2_25 *This,
        /* [in] */ EventRegistrationToken token);

    void __RPC_STUB ICoreWebView2_25_remove_SaveAsUIShowing_Stub(
        IRpcStubBuffer *This,
        IRpcChannelBuffer *_pRpcChannelBuffer,
        PRPC_MESSAGE _pRpcMessage,
        DWORD *_pdwStubPhase);

    HRESULT STDMETHODCALLTYPE ICoreWebView2_25_ShowSaveAsUI_Proxy(
        ICoreWebView2_25 *This,
        /* [in] */ ICoreWebView2ShowSaveAsUICompletedHandler *handler);

    void __RPC_STUB ICoreWebView2_25_ShowSaveAsUI_Stub(
        IRpcStubBuffer *This,
        IRpcChannelBuffer *_pRpcChannelBuffer,
        PRPC_MESSAGE _pRpcMessage,
        DWORD *_pdwStubPhase);

#endif /* __ICoreWebView2_25_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2SaveAsUIShowingEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2SaveAsUIShowingEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2SaveAsUIShowingEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2SaveAsUIShowingEventHandler = {0x6baa177e, 0x3a2e, 0x5ccf, {0x9a, 0x13, 0xfa, 0xd6, 0x76, 0xcd, 0x05, 0x22}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("6baa177e-3a2e-5ccf-9a13-fad676cd0522")
    ICoreWebView2SaveAsUIShowingEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2SaveAsUIShowingEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2SaveAsUIShowingEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2SaveAsUIShowingEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2SaveAsUIShowingEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2SaveAsUIShowingEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2SaveAsUIShowingEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2SaveAsUIShowingEventArgs *args);

        END_INTERFACE
    } ICoreWebView2SaveAsUIShowingEventHandlerVtbl;

    interface ICoreWebView2SaveAsUIShowingEventHandler
    {
        CONST_VTBL struct ICoreWebView2SaveAsUIShowingEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2SaveAsUIShowingEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2SaveAsUIShowingEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2SaveAsUIShowingEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2SaveAsUIShowingEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2SaveAsUIShowingEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ShowSaveAsUICompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ShowSaveAsUICompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ShowSaveAsUICompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ShowSaveAsUICompletedHandler = {0xe24b07e3, 0x8169, 0x5c34, {0x99, 0x4a, 0x7f, 0x64, 0x78, 0x94, 0x6a, 0x3c}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e24b07e3-8169-5c34-994a-7f6478946a3c")
    ICoreWebView2ShowSaveAsUICompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ COREWEBVIEW2_SAVE_AS_UI_RESULT result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ShowSaveAsUICompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ShowSaveAsUICompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ShowSaveAsUICompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ShowSaveAsUICompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ShowSaveAsUICompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ShowSaveAsUICompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ COREWEBVIEW2_SAVE_AS_UI_RESULT result);

        END_INTERFACE
    } ICoreWebView2ShowSaveAsUICompletedHandlerVtbl;

    interface ICoreWebView2ShowSaveAsUICompletedHandler
    {
        CONST_VTBL struct ICoreWebView2ShowSaveAsUICompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ShowSaveAsUICompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ShowSaveAsUICompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ShowSaveAsUICompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ShowSaveAsUICompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ShowSaveAsUICompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_26_INTERFACE_DEFINED__
#define __ICoreWebView2_26_INTERFACE_DEFINED__

    /* interface ICoreWebView2_26 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_26 = {0x806268b8, 0xf897, 0x5685, {0x88, 0xe5, 0xc4, 0x5f, 0xca, 0x0b, 0x1a, 0x48}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("806268b8-f897-5685-88e5-c45fca0b1a48")
    ICoreWebView2_26 : public ICoreWebView2_25
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_SaveFileSecurityCheckStarting(
            /* [in] */ ICoreWebView2SaveFileSecurityCheckStartingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_SaveFileSecurityCheckStarting(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_26Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_26 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_26 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_26 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_26 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_26 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_26 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_26 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_26 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_26 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_26 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, get_MemoryUsageTargetLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MemoryUsageTargetLevel)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, put_MemoryUsageTargetLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MemoryUsageTargetLevel)(
            ICoreWebView2_26 *This,
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_20, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2_26 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_21, ExecuteScriptWithResult)
        HRESULT(STDMETHODCALLTYPE *ExecuteScriptWithResult)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptWithResultCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, AddWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, RemoveWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_23, PostWebMessageAsJsonWithAdditionalObjects)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJsonWithAdditionalObjects)(
            ICoreWebView2_26 *This,
            /* [in] */ LPCWSTR webMessageAsJson,
            /* [in] */ ICoreWebView2ObjectCollectionView *additionalObjects);

        DECLSPEC_XFGVIRT(ICoreWebView2_24, add_NotificationReceived)
        HRESULT(STDMETHODCALLTYPE *add_NotificationReceived)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2NotificationReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_24, remove_NotificationReceived)
        HRESULT(STDMETHODCALLTYPE *remove_NotificationReceived)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_25, add_SaveAsUIShowing)
        HRESULT(STDMETHODCALLTYPE *add_SaveAsUIShowing)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2SaveAsUIShowingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_25, remove_SaveAsUIShowing)
        HRESULT(STDMETHODCALLTYPE *remove_SaveAsUIShowing)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_25, ShowSaveAsUI)
        HRESULT(STDMETHODCALLTYPE *ShowSaveAsUI)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2ShowSaveAsUICompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_26, add_SaveFileSecurityCheckStarting)
        HRESULT(STDMETHODCALLTYPE *add_SaveFileSecurityCheckStarting)(
            ICoreWebView2_26 *This,
            /* [in] */ ICoreWebView2SaveFileSecurityCheckStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_26, remove_SaveFileSecurityCheckStarting)
        HRESULT(STDMETHODCALLTYPE *remove_SaveFileSecurityCheckStarting)(
            ICoreWebView2_26 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2_26Vtbl;

    interface ICoreWebView2_26
    {
        CONST_VTBL struct ICoreWebView2_26Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_26_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_26_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_26_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_26_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_26_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_26_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_26_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_26_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_26_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_26_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_26_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_26_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_26_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_26_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_26_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_26_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_26_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_26_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_26_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_26_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_26_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_26_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_26_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_26_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_26_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_26_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_26_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_26_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_26_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_26_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_26_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_26_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_26_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_26_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_26_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_26_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_26_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_26_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_26_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_26_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_26_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_26_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_26_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_26_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_26_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_26_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_26_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_26_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_26_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_26_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_26_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_26_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_26_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_26_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_26_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_26_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_26_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_26_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_26_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_26_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_26_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_26_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_26_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_26_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_26_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_26_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_26_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_26_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_26_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_26_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_26_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_26_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_26_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_26_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_26_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_26_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_26_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_26_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_26_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_26_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_26_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_26_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_26_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_26_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_26_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_26_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_26_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_26_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_26_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_26_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_26_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_26_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_26_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_26_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_26_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_26_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_26_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_26_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_26_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_26_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_26_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_26_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_26_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_26_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_26_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_26_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_26_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_26_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_26_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_26_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_26_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_26_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_26_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_26_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_26_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_26_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_26_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_26_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_26_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#define ICoreWebView2_26_get_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->get_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_26_put_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->put_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_26_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#define ICoreWebView2_26_ExecuteScriptWithResult(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScriptWithResult(This, javaScript, handler))

#define ICoreWebView2_26_AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_26_RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_26_PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects) \
    ((This)->lpVtbl->PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects))

#define ICoreWebView2_26_add_NotificationReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_NotificationReceived(This, eventHandler, token))

#define ICoreWebView2_26_remove_NotificationReceived(This, token) \
    ((This)->lpVtbl->remove_NotificationReceived(This, token))

#define ICoreWebView2_26_add_SaveAsUIShowing(This, eventHandler, token) \
    ((This)->lpVtbl->add_SaveAsUIShowing(This, eventHandler, token))

#define ICoreWebView2_26_remove_SaveAsUIShowing(This, token) \
    ((This)->lpVtbl->remove_SaveAsUIShowing(This, token))

#define ICoreWebView2_26_ShowSaveAsUI(This, handler) \
    ((This)->lpVtbl->ShowSaveAsUI(This, handler))

#define ICoreWebView2_26_add_SaveFileSecurityCheckStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_SaveFileSecurityCheckStarting(This, eventHandler, token))

#define ICoreWebView2_26_remove_SaveFileSecurityCheckStarting(This, token) \
    ((This)->lpVtbl->remove_SaveFileSecurityCheckStarting(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

    HRESULT STDMETHODCALLTYPE ICoreWebView2_26_add_SaveFileSecurityCheckStarting_Proxy(
        ICoreWebView2_26 *This,
        /* [in] */ ICoreWebView2SaveFileSecurityCheckStartingEventHandler *eventHandler,
        /* [out] */ EventRegistrationToken *token);

    void __RPC_STUB ICoreWebView2_26_add_SaveFileSecurityCheckStarting_Stub(
        IRpcStubBuffer *This,
        IRpcChannelBuffer *_pRpcChannelBuffer,
        PRPC_MESSAGE _pRpcMessage,
        DWORD *_pdwStubPhase);

    HRESULT STDMETHODCALLTYPE ICoreWebView2_26_remove_SaveFileSecurityCheckStarting_Proxy(
        ICoreWebView2_26 *This,
        /* [in] */ EventRegistrationToken token);

    void __RPC_STUB ICoreWebView2_26_remove_SaveFileSecurityCheckStarting_Stub(
        IRpcStubBuffer *This,
        IRpcChannelBuffer *_pRpcChannelBuffer,
        PRPC_MESSAGE _pRpcMessage,
        DWORD *_pdwStubPhase);

#endif /* __ICoreWebView2_26_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2SaveFileSecurityCheckStartingEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2SaveFileSecurityCheckStartingEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2SaveFileSecurityCheckStartingEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2SaveFileSecurityCheckStartingEventHandler = {0x7899576c, 0x19e3, 0x57c8, {0xb7, 0xd1, 0x55, 0x80, 0x82, 0x92, 0xde, 0x57}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7899576c-19e3-57c8-b7d1-55808292de57")
    ICoreWebView2SaveFileSecurityCheckStartingEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2SaveFileSecurityCheckStartingEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2SaveFileSecurityCheckStartingEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2SaveFileSecurityCheckStartingEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2SaveFileSecurityCheckStartingEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2SaveFileSecurityCheckStartingEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveFileSecurityCheckStartingEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2SaveFileSecurityCheckStartingEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2SaveFileSecurityCheckStartingEventArgs *args);

        END_INTERFACE
    } ICoreWebView2SaveFileSecurityCheckStartingEventHandlerVtbl;

    interface ICoreWebView2SaveFileSecurityCheckStartingEventHandler
    {
        CONST_VTBL struct ICoreWebView2SaveFileSecurityCheckStartingEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2SaveFileSecurityCheckStartingEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2SaveFileSecurityCheckStartingEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2SaveFileSecurityCheckStartingEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2SaveFileSecurityCheckStartingEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2_27_INTERFACE_DEFINED__
#define __ICoreWebView2_27_INTERFACE_DEFINED__

    /* interface ICoreWebView2_27 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2_27 = {0x00fbe33b, 0x8c07, 0x517c, {0xaa, 0x23, 0x0d, 0xdd, 0x4b, 0x5f, 0x6f, 0xa0}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("00fbe33b-8c07-517c-aa23-0ddd4b5f6fa0")
    ICoreWebView2_27 : public ICoreWebView2_26
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_ScreenCaptureStarting(
            /* [in] */ ICoreWebView2ScreenCaptureStartingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ScreenCaptureStarting(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2_27Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2_27 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Settings)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Settings)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ ICoreWebView2Settings **settings);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, Navigate)
        HRESULT(STDMETHODCALLTYPE *Navigate)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2, NavigateToString)
        HRESULT(STDMETHODCALLTYPE *NavigateToString)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR htmlContent);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *add_SourceChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2SourceChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_SourceChanged)
        HRESULT(STDMETHODCALLTYPE *remove_SourceChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *add_HistoryChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2HistoryChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_HistoryChanged)
        HRESULT(STDMETHODCALLTYPE *remove_HistoryChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2NavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_FrameNavigationCompleted)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2NavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_FrameNavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_FrameNavigationCompleted)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *add_ScriptDialogOpening)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ScriptDialogOpeningEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ScriptDialogOpening)
        HRESULT(STDMETHODCALLTYPE *remove_ScriptDialogOpening)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2PermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *add_ProcessFailed)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ProcessFailedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ProcessFailed)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessFailed)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *AddScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2AddScriptToExecuteOnDocumentCreatedCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveScriptToExecuteOnDocumentCreated)
        HRESULT(STDMETHODCALLTYPE *RemoveScriptToExecuteOnDocumentCreated)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR id);

        DECLSPEC_XFGVIRT(ICoreWebView2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, CapturePreview)
        HRESULT(STDMETHODCALLTYPE *CapturePreview)(
            ICoreWebView2_27 *This,
            /* [in] */ COREWEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT imageFormat,
            /* [in] */ IStream *imageStream,
            /* [in] */ ICoreWebView2CapturePreviewCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, Reload)
        HRESULT(STDMETHODCALLTYPE *Reload)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2WebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, CallDevToolsProtocolMethod)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethod)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoBack)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoBack)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ BOOL *canGoBack);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_CanGoForward)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanGoForward)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ BOOL *canGoForward);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoBack)
        HRESULT(STDMETHODCALLTYPE *GoBack)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GoForward)
        HRESULT(STDMETHODCALLTYPE *GoForward)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, GetDevToolsProtocolEventReceiver)
        HRESULT(STDMETHODCALLTYPE *GetDevToolsProtocolEventReceiver)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR eventName,
            /* [retval][out] */ ICoreWebView2DevToolsProtocolEventReceiver **receiver);

        DECLSPEC_XFGVIRT(ICoreWebView2, Stop)
        HRESULT(STDMETHODCALLTYPE *Stop)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *add_NewWindowRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2NewWindowRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_NewWindowRequested)
        HRESULT(STDMETHODCALLTYPE *remove_NewWindowRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *add_DocumentTitleChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2DocumentTitleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_DocumentTitleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_DocumentTitleChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_DocumentTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentTitle)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ LPWSTR *title);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddHostObjectToScript)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScript)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2, OpenDevToolsWindow)
        HRESULT(STDMETHODCALLTYPE *OpenDevToolsWindow)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *add_ContainsFullScreenElementChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ContainsFullScreenElementChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_ContainsFullScreenElementChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ContainsFullScreenElementChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, get_ContainsFullScreenElement)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContainsFullScreenElement)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ BOOL *containsFullScreenElement);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2WebResourceRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WebResourceRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2, AddWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilter)(
            ICoreWebView2_27 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, RemoveWebResourceRequestedFilter)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilter)(
            ICoreWebView2_27 *This,
            /* [in] */ const LPCWSTR uri,
            /* [in] */ const COREWEBVIEW2_WEB_RESOURCE_CONTEXT resourceContext);

        DECLSPEC_XFGVIRT(ICoreWebView2, add_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_WindowCloseRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2WindowCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2, remove_WindowCloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_WindowCloseRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebResourceResponseReceived)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2WebResourceResponseReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_WebResourceResponseReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebResourceResponseReceived)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, NavigateWithWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *NavigateWithWebResourceRequest)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2WebResourceRequest *request);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2DOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **cookieManager);

        DECLSPEC_XFGVIRT(ICoreWebView2_2, get_Environment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Environment)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ ICoreWebView2Environment **environment);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, TrySuspend)
        HRESULT(STDMETHODCALLTYPE *TrySuspend)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2TrySuspendCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, get_IsSuspended)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuspended)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ BOOL *isSuspended);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, SetVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *SetVirtualHostNameToFolderMapping)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR hostName,
            /* [in] */ LPCWSTR folderPath,
            /* [in] */ COREWEBVIEW2_HOST_RESOURCE_ACCESS_KIND accessKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_3, ClearVirtualHostNameToFolderMapping)
        HRESULT(STDMETHODCALLTYPE *ClearVirtualHostNameToFolderMapping)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR hostName);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2FrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, add_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *add_DownloadStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2DownloadStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_4, remove_DownloadStarting)
        HRESULT(STDMETHODCALLTYPE *remove_DownloadStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, add_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *add_ClientCertificateRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ClientCertificateRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_5, remove_ClientCertificateRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ClientCertificateRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_6, OpenTaskManagerWindow)
        HRESULT(STDMETHODCALLTYPE *OpenTaskManagerWindow)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_7, PrintToPdf)
        HRESULT(STDMETHODCALLTYPE *PrintToPdf)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR ResultFilePath,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsMutedChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2IsMutedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsMutedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsMutedChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsMuted)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsMuted)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, put_IsMuted)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsMuted)(
            ICoreWebView2_27 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, add_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2IsDocumentPlayingAudioChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, remove_IsDocumentPlayingAudioChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDocumentPlayingAudioChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_8, get_IsDocumentPlayingAudio)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDocumentPlayingAudio)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, add_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *add_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2IsDefaultDownloadDialogOpenChangedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, remove_IsDefaultDownloadDialogOpenChanged)
        HRESULT(STDMETHODCALLTYPE *remove_IsDefaultDownloadDialogOpenChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_IsDefaultDownloadDialogOpen)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsDefaultDownloadDialogOpen)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, OpenDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *OpenDefaultDownloadDialog)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, CloseDefaultDownloadDialog)
        HRESULT(STDMETHODCALLTYPE *CloseDefaultDownloadDialog)(
            ICoreWebView2_27 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogCornerAlignment)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogCornerAlignment)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogCornerAlignment)(
            ICoreWebView2_27 *This,
            /* [in] */ COREWEBVIEW2_DEFAULT_DOWNLOAD_DIALOG_CORNER_ALIGNMENT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, get_DefaultDownloadDialogMargin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadDialogMargin)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_9, put_DefaultDownloadDialogMargin)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadDialogMargin)(
            ICoreWebView2_27 *This,
            /* [in] */ POINT value);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, add_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *add_BasicAuthenticationRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2BasicAuthenticationRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_10, remove_BasicAuthenticationRequested)
        HRESULT(STDMETHODCALLTYPE *remove_BasicAuthenticationRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, CallDevToolsProtocolMethodForSession)
        HRESULT(STDMETHODCALLTYPE *CallDevToolsProtocolMethodForSession)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR sessionId,
            /* [in] */ LPCWSTR methodName,
            /* [in] */ LPCWSTR parametersAsJson,
            /* [in] */ ICoreWebView2CallDevToolsProtocolMethodCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, add_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *add_ContextMenuRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ContextMenuRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_11, remove_ContextMenuRequested)
        HRESULT(STDMETHODCALLTYPE *remove_ContextMenuRequested)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, add_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *add_StatusBarTextChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2StatusBarTextChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, remove_StatusBarTextChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StatusBarTextChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_12, get_StatusBarText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusBarText)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_13, get_Profile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Profile)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ ICoreWebView2Profile **value);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, add_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *add_ServerCertificateErrorDetected)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ServerCertificateErrorDetectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, remove_ServerCertificateErrorDetected)
        HRESULT(STDMETHODCALLTYPE *remove_ServerCertificateErrorDetected)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_14, ClearServerCertificateErrorActions)
        HRESULT(STDMETHODCALLTYPE *ClearServerCertificateErrorActions)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ClearServerCertificateErrorActionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, add_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *add_FaviconChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2FaviconChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, remove_FaviconChanged)
        HRESULT(STDMETHODCALLTYPE *remove_FaviconChanged)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, get_FaviconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FaviconUri)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_15, GetFavicon)
        HRESULT(STDMETHODCALLTYPE *GetFavicon)(
            ICoreWebView2_27 *This,
            /* [in] */ COREWEBVIEW2_FAVICON_IMAGE_FORMAT format,
            /* [in] */ ICoreWebView2GetFaviconCompletedHandler *completedHandler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, Print)
        HRESULT(STDMETHODCALLTYPE *Print)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, ShowPrintUI)
        HRESULT(STDMETHODCALLTYPE *ShowPrintUI)(
            ICoreWebView2_27 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DIALOG_KIND printDialogKind);

        DECLSPEC_XFGVIRT(ICoreWebView2_16, PrintToPdfStream)
        HRESULT(STDMETHODCALLTYPE *PrintToPdfStream)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2PrintSettings *printSettings,
            /* [in] */ ICoreWebView2PrintToPdfStreamCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_17, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, add_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *add_LaunchingExternalUriScheme)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2LaunchingExternalUriSchemeEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_18, remove_LaunchingExternalUriScheme)
        HRESULT(STDMETHODCALLTYPE *remove_LaunchingExternalUriScheme)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, get_MemoryUsageTargetLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MemoryUsageTargetLevel)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_19, put_MemoryUsageTargetLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MemoryUsageTargetLevel)(
            ICoreWebView2_27 *This,
            /* [in] */ COREWEBVIEW2_MEMORY_USAGE_TARGET_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2_20, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2_27 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2_21, ExecuteScriptWithResult)
        HRESULT(STDMETHODCALLTYPE *ExecuteScriptWithResult)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptWithResultCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, AddWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *AddWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_22, RemoveWebResourceRequestedFilterWithRequestSourceKinds)
        HRESULT(STDMETHODCALLTYPE *RemoveWebResourceRequestedFilterWithRequestSourceKinds)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT ResourceContext,
            /* [in] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS requestSourceKinds);

        DECLSPEC_XFGVIRT(ICoreWebView2_23, PostWebMessageAsJsonWithAdditionalObjects)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJsonWithAdditionalObjects)(
            ICoreWebView2_27 *This,
            /* [in] */ LPCWSTR webMessageAsJson,
            /* [in] */ ICoreWebView2ObjectCollectionView *additionalObjects);

        DECLSPEC_XFGVIRT(ICoreWebView2_24, add_NotificationReceived)
        HRESULT(STDMETHODCALLTYPE *add_NotificationReceived)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2NotificationReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_24, remove_NotificationReceived)
        HRESULT(STDMETHODCALLTYPE *remove_NotificationReceived)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_25, add_SaveAsUIShowing)
        HRESULT(STDMETHODCALLTYPE *add_SaveAsUIShowing)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2SaveAsUIShowingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_25, remove_SaveAsUIShowing)
        HRESULT(STDMETHODCALLTYPE *remove_SaveAsUIShowing)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_25, ShowSaveAsUI)
        HRESULT(STDMETHODCALLTYPE *ShowSaveAsUI)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ShowSaveAsUICompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2_26, add_SaveFileSecurityCheckStarting)
        HRESULT(STDMETHODCALLTYPE *add_SaveFileSecurityCheckStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2SaveFileSecurityCheckStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_26, remove_SaveFileSecurityCheckStarting)
        HRESULT(STDMETHODCALLTYPE *remove_SaveFileSecurityCheckStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2_27, add_ScreenCaptureStarting)
        HRESULT(STDMETHODCALLTYPE *add_ScreenCaptureStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ ICoreWebView2ScreenCaptureStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2_27, remove_ScreenCaptureStarting)
        HRESULT(STDMETHODCALLTYPE *remove_ScreenCaptureStarting)(
            ICoreWebView2_27 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2_27Vtbl;

    interface ICoreWebView2_27
    {
        CONST_VTBL struct ICoreWebView2_27Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2_27_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2_27_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2_27_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2_27_get_Settings(This, settings) \
    ((This)->lpVtbl->get_Settings(This, settings))

#define ICoreWebView2_27_get_Source(This, uri) \
    ((This)->lpVtbl->get_Source(This, uri))

#define ICoreWebView2_27_Navigate(This, uri) \
    ((This)->lpVtbl->Navigate(This, uri))

#define ICoreWebView2_27_NavigateToString(This, htmlContent) \
    ((This)->lpVtbl->NavigateToString(This, htmlContent))

#define ICoreWebView2_27_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2_27_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2_27_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2_27_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2_27_add_SourceChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_SourceChanged(This, eventHandler, token))

#define ICoreWebView2_27_remove_SourceChanged(This, token) \
    ((This)->lpVtbl->remove_SourceChanged(This, token))

#define ICoreWebView2_27_add_HistoryChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_HistoryChanged(This, eventHandler, token))

#define ICoreWebView2_27_remove_HistoryChanged(This, token) \
    ((This)->lpVtbl->remove_HistoryChanged(This, token))

#define ICoreWebView2_27_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_27_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2_27_add_FrameNavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationStarting(This, eventHandler, token))

#define ICoreWebView2_27_remove_FrameNavigationStarting(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationStarting(This, token))

#define ICoreWebView2_27_add_FrameNavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameNavigationCompleted(This, eventHandler, token))

#define ICoreWebView2_27_remove_FrameNavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_FrameNavigationCompleted(This, token))

#define ICoreWebView2_27_add_ScriptDialogOpening(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScriptDialogOpening(This, eventHandler, token))

#define ICoreWebView2_27_remove_ScriptDialogOpening(This, token) \
    ((This)->lpVtbl->remove_ScriptDialogOpening(This, token))

#define ICoreWebView2_27_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2_27_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2_27_add_ProcessFailed(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessFailed(This, eventHandler, token))

#define ICoreWebView2_27_remove_ProcessFailed(This, token) \
    ((This)->lpVtbl->remove_ProcessFailed(This, token))

#define ICoreWebView2_27_AddScriptToExecuteOnDocumentCreated(This, javaScript, handler) \
    ((This)->lpVtbl->AddScriptToExecuteOnDocumentCreated(This, javaScript, handler))

#define ICoreWebView2_27_RemoveScriptToExecuteOnDocumentCreated(This, id) \
    ((This)->lpVtbl->RemoveScriptToExecuteOnDocumentCreated(This, id))

#define ICoreWebView2_27_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2_27_CapturePreview(This, imageFormat, imageStream, handler) \
    ((This)->lpVtbl->CapturePreview(This, imageFormat, imageStream, handler))

#define ICoreWebView2_27_Reload(This) \
    ((This)->lpVtbl->Reload(This))

#define ICoreWebView2_27_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2_27_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2_27_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2_27_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2_27_CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethod(This, methodName, parametersAsJson, handler))

#define ICoreWebView2_27_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#define ICoreWebView2_27_get_CanGoBack(This, canGoBack) \
    ((This)->lpVtbl->get_CanGoBack(This, canGoBack))

#define ICoreWebView2_27_get_CanGoForward(This, canGoForward) \
    ((This)->lpVtbl->get_CanGoForward(This, canGoForward))

#define ICoreWebView2_27_GoBack(This) \
    ((This)->lpVtbl->GoBack(This))

#define ICoreWebView2_27_GoForward(This) \
    ((This)->lpVtbl->GoForward(This))

#define ICoreWebView2_27_GetDevToolsProtocolEventReceiver(This, eventName, receiver) \
    ((This)->lpVtbl->GetDevToolsProtocolEventReceiver(This, eventName, receiver))

#define ICoreWebView2_27_Stop(This) \
    ((This)->lpVtbl->Stop(This))

#define ICoreWebView2_27_add_NewWindowRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewWindowRequested(This, eventHandler, token))

#define ICoreWebView2_27_remove_NewWindowRequested(This, token) \
    ((This)->lpVtbl->remove_NewWindowRequested(This, token))

#define ICoreWebView2_27_add_DocumentTitleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_DocumentTitleChanged(This, eventHandler, token))

#define ICoreWebView2_27_remove_DocumentTitleChanged(This, token) \
    ((This)->lpVtbl->remove_DocumentTitleChanged(This, token))

#define ICoreWebView2_27_get_DocumentTitle(This, title) \
    ((This)->lpVtbl->get_DocumentTitle(This, title))

#define ICoreWebView2_27_AddHostObjectToScript(This, name, object) \
    ((This)->lpVtbl->AddHostObjectToScript(This, name, object))

#define ICoreWebView2_27_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2_27_OpenDevToolsWindow(This) \
    ((This)->lpVtbl->OpenDevToolsWindow(This))

#define ICoreWebView2_27_add_ContainsFullScreenElementChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContainsFullScreenElementChanged(This, eventHandler, token))

#define ICoreWebView2_27_remove_ContainsFullScreenElementChanged(This, token) \
    ((This)->lpVtbl->remove_ContainsFullScreenElementChanged(This, token))

#define ICoreWebView2_27_get_ContainsFullScreenElement(This, containsFullScreenElement) \
    ((This)->lpVtbl->get_ContainsFullScreenElement(This, containsFullScreenElement))

#define ICoreWebView2_27_add_WebResourceRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceRequested(This, eventHandler, token))

#define ICoreWebView2_27_remove_WebResourceRequested(This, token) \
    ((This)->lpVtbl->remove_WebResourceRequested(This, token))

#define ICoreWebView2_27_AddWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->AddWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_27_RemoveWebResourceRequestedFilter(This, uri, resourceContext) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilter(This, uri, resourceContext))

#define ICoreWebView2_27_add_WindowCloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_WindowCloseRequested(This, eventHandler, token))

#define ICoreWebView2_27_remove_WindowCloseRequested(This, token) \
    ((This)->lpVtbl->remove_WindowCloseRequested(This, token))

#define ICoreWebView2_27_add_WebResourceResponseReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_WebResourceResponseReceived(This, eventHandler, token))

#define ICoreWebView2_27_remove_WebResourceResponseReceived(This, token) \
    ((This)->lpVtbl->remove_WebResourceResponseReceived(This, token))

#define ICoreWebView2_27_NavigateWithWebResourceRequest(This, request) \
    ((This)->lpVtbl->NavigateWithWebResourceRequest(This, request))

#define ICoreWebView2_27_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2_27_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2_27_get_CookieManager(This, cookieManager) \
    ((This)->lpVtbl->get_CookieManager(This, cookieManager))

#define ICoreWebView2_27_get_Environment(This, environment) \
    ((This)->lpVtbl->get_Environment(This, environment))

#define ICoreWebView2_27_TrySuspend(This, handler) \
    ((This)->lpVtbl->TrySuspend(This, handler))

#define ICoreWebView2_27_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2_27_get_IsSuspended(This, isSuspended) \
    ((This)->lpVtbl->get_IsSuspended(This, isSuspended))

#define ICoreWebView2_27_SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind) \
    ((This)->lpVtbl->SetVirtualHostNameToFolderMapping(This, hostName, folderPath, accessKind))

#define ICoreWebView2_27_ClearVirtualHostNameToFolderMapping(This, hostName) \
    ((This)->lpVtbl->ClearVirtualHostNameToFolderMapping(This, hostName))

#define ICoreWebView2_27_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2_27_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#define ICoreWebView2_27_add_DownloadStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_DownloadStarting(This, eventHandler, token))

#define ICoreWebView2_27_remove_DownloadStarting(This, token) \
    ((This)->lpVtbl->remove_DownloadStarting(This, token))

#define ICoreWebView2_27_add_ClientCertificateRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ClientCertificateRequested(This, eventHandler, token))

#define ICoreWebView2_27_remove_ClientCertificateRequested(This, token) \
    ((This)->lpVtbl->remove_ClientCertificateRequested(This, token))

#define ICoreWebView2_27_OpenTaskManagerWindow(This) \
    ((This)->lpVtbl->OpenTaskManagerWindow(This))

#define ICoreWebView2_27_PrintToPdf(This, ResultFilePath, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdf(This, ResultFilePath, printSettings, handler))

#define ICoreWebView2_27_add_IsMutedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsMutedChanged(This, eventHandler, token))

#define ICoreWebView2_27_remove_IsMutedChanged(This, token) \
    ((This)->lpVtbl->remove_IsMutedChanged(This, token))

#define ICoreWebView2_27_get_IsMuted(This, value) \
    ((This)->lpVtbl->get_IsMuted(This, value))

#define ICoreWebView2_27_put_IsMuted(This, value) \
    ((This)->lpVtbl->put_IsMuted(This, value))

#define ICoreWebView2_27_add_IsDocumentPlayingAudioChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_IsDocumentPlayingAudioChanged(This, eventHandler, token))

#define ICoreWebView2_27_remove_IsDocumentPlayingAudioChanged(This, token) \
    ((This)->lpVtbl->remove_IsDocumentPlayingAudioChanged(This, token))

#define ICoreWebView2_27_get_IsDocumentPlayingAudio(This, value) \
    ((This)->lpVtbl->get_IsDocumentPlayingAudio(This, value))

#define ICoreWebView2_27_add_IsDefaultDownloadDialogOpenChanged(This, handler, token) \
    ((This)->lpVtbl->add_IsDefaultDownloadDialogOpenChanged(This, handler, token))

#define ICoreWebView2_27_remove_IsDefaultDownloadDialogOpenChanged(This, token) \
    ((This)->lpVtbl->remove_IsDefaultDownloadDialogOpenChanged(This, token))

#define ICoreWebView2_27_get_IsDefaultDownloadDialogOpen(This, value) \
    ((This)->lpVtbl->get_IsDefaultDownloadDialogOpen(This, value))

#define ICoreWebView2_27_OpenDefaultDownloadDialog(This) \
    ((This)->lpVtbl->OpenDefaultDownloadDialog(This))

#define ICoreWebView2_27_CloseDefaultDownloadDialog(This) \
    ((This)->lpVtbl->CloseDefaultDownloadDialog(This))

#define ICoreWebView2_27_get_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_27_put_DefaultDownloadDialogCornerAlignment(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogCornerAlignment(This, value))

#define ICoreWebView2_27_get_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_27_put_DefaultDownloadDialogMargin(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadDialogMargin(This, value))

#define ICoreWebView2_27_add_BasicAuthenticationRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_BasicAuthenticationRequested(This, eventHandler, token))

#define ICoreWebView2_27_remove_BasicAuthenticationRequested(This, token) \
    ((This)->lpVtbl->remove_BasicAuthenticationRequested(This, token))

#define ICoreWebView2_27_CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler) \
    ((This)->lpVtbl->CallDevToolsProtocolMethodForSession(This, sessionId, methodName, parametersAsJson, handler))

#define ICoreWebView2_27_add_ContextMenuRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContextMenuRequested(This, eventHandler, token))

#define ICoreWebView2_27_remove_ContextMenuRequested(This, token) \
    ((This)->lpVtbl->remove_ContextMenuRequested(This, token))

#define ICoreWebView2_27_add_StatusBarTextChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StatusBarTextChanged(This, eventHandler, token))

#define ICoreWebView2_27_remove_StatusBarTextChanged(This, token) \
    ((This)->lpVtbl->remove_StatusBarTextChanged(This, token))

#define ICoreWebView2_27_get_StatusBarText(This, value) \
    ((This)->lpVtbl->get_StatusBarText(This, value))

#define ICoreWebView2_27_get_Profile(This, value) \
    ((This)->lpVtbl->get_Profile(This, value))

#define ICoreWebView2_27_add_ServerCertificateErrorDetected(This, eventHandler, token) \
    ((This)->lpVtbl->add_ServerCertificateErrorDetected(This, eventHandler, token))

#define ICoreWebView2_27_remove_ServerCertificateErrorDetected(This, token) \
    ((This)->lpVtbl->remove_ServerCertificateErrorDetected(This, token))

#define ICoreWebView2_27_ClearServerCertificateErrorActions(This, handler) \
    ((This)->lpVtbl->ClearServerCertificateErrorActions(This, handler))

#define ICoreWebView2_27_add_FaviconChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_FaviconChanged(This, eventHandler, token))

#define ICoreWebView2_27_remove_FaviconChanged(This, token) \
    ((This)->lpVtbl->remove_FaviconChanged(This, token))

#define ICoreWebView2_27_get_FaviconUri(This, value) \
    ((This)->lpVtbl->get_FaviconUri(This, value))

#define ICoreWebView2_27_GetFavicon(This, format, completedHandler) \
    ((This)->lpVtbl->GetFavicon(This, format, completedHandler))

#define ICoreWebView2_27_Print(This, printSettings, handler) \
    ((This)->lpVtbl->Print(This, printSettings, handler))

#define ICoreWebView2_27_ShowPrintUI(This, printDialogKind) \
    ((This)->lpVtbl->ShowPrintUI(This, printDialogKind))

#define ICoreWebView2_27_PrintToPdfStream(This, printSettings, handler) \
    ((This)->lpVtbl->PrintToPdfStream(This, printSettings, handler))

#define ICoreWebView2_27_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2_27_add_LaunchingExternalUriScheme(This, eventHandler, token) \
    ((This)->lpVtbl->add_LaunchingExternalUriScheme(This, eventHandler, token))

#define ICoreWebView2_27_remove_LaunchingExternalUriScheme(This, token) \
    ((This)->lpVtbl->remove_LaunchingExternalUriScheme(This, token))

#define ICoreWebView2_27_get_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->get_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_27_put_MemoryUsageTargetLevel(This, value) \
    ((This)->lpVtbl->put_MemoryUsageTargetLevel(This, value))

#define ICoreWebView2_27_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#define ICoreWebView2_27_ExecuteScriptWithResult(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScriptWithResult(This, javaScript, handler))

#define ICoreWebView2_27_AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->AddWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_27_RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds) \
    ((This)->lpVtbl->RemoveWebResourceRequestedFilterWithRequestSourceKinds(This, uri, ResourceContext, requestSourceKinds))

#define ICoreWebView2_27_PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects) \
    ((This)->lpVtbl->PostWebMessageAsJsonWithAdditionalObjects(This, webMessageAsJson, additionalObjects))

#define ICoreWebView2_27_add_NotificationReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_NotificationReceived(This, eventHandler, token))

#define ICoreWebView2_27_remove_NotificationReceived(This, token) \
    ((This)->lpVtbl->remove_NotificationReceived(This, token))

#define ICoreWebView2_27_add_SaveAsUIShowing(This, eventHandler, token) \
    ((This)->lpVtbl->add_SaveAsUIShowing(This, eventHandler, token))

#define ICoreWebView2_27_remove_SaveAsUIShowing(This, token) \
    ((This)->lpVtbl->remove_SaveAsUIShowing(This, token))

#define ICoreWebView2_27_ShowSaveAsUI(This, handler) \
    ((This)->lpVtbl->ShowSaveAsUI(This, handler))

#define ICoreWebView2_27_add_SaveFileSecurityCheckStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_SaveFileSecurityCheckStarting(This, eventHandler, token))

#define ICoreWebView2_27_remove_SaveFileSecurityCheckStarting(This, token) \
    ((This)->lpVtbl->remove_SaveFileSecurityCheckStarting(This, token))

#define ICoreWebView2_27_add_ScreenCaptureStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScreenCaptureStarting(This, eventHandler, token))

#define ICoreWebView2_27_remove_ScreenCaptureStarting(This, token) \
    ((This)->lpVtbl->remove_ScreenCaptureStarting(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

    HRESULT STDMETHODCALLTYPE ICoreWebView2_27_add_ScreenCaptureStarting_Proxy(
        ICoreWebView2_27 *This,
        /* [in] */ ICoreWebView2ScreenCaptureStartingEventHandler *eventHandler,
        /* [out] */ EventRegistrationToken *token);

    void __RPC_STUB ICoreWebView2_27_add_ScreenCaptureStarting_Stub(
        IRpcStubBuffer *This,
        IRpcChannelBuffer *_pRpcChannelBuffer,
        PRPC_MESSAGE _pRpcMessage,
        DWORD *_pdwStubPhase);

    HRESULT STDMETHODCALLTYPE ICoreWebView2_27_remove_ScreenCaptureStarting_Proxy(
        ICoreWebView2_27 *This,
        /* [in] */ EventRegistrationToken token);

    void __RPC_STUB ICoreWebView2_27_remove_ScreenCaptureStarting_Stub(
        IRpcStubBuffer *This,
        IRpcChannelBuffer *_pRpcChannelBuffer,
        PRPC_MESSAGE _pRpcMessage,
        DWORD *_pdwStubPhase);

#endif /* __ICoreWebView2_27_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ScreenCaptureStartingEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ScreenCaptureStartingEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ScreenCaptureStartingEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ScreenCaptureStartingEventHandler = {0xe24ff05a, 0x1db5, 0x59d9, {0x89, 0xf3, 0x3c, 0x86, 0x42, 0x68, 0xdb, 0x4a}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e24ff05a-1db5-59d9-89f3-3c864268db4a")
    ICoreWebView2ScreenCaptureStartingEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2ScreenCaptureStartingEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ScreenCaptureStartingEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ScreenCaptureStartingEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ScreenCaptureStartingEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ScreenCaptureStartingEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ScreenCaptureStartingEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ScreenCaptureStartingEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2ScreenCaptureStartingEventArgs *args);

        END_INTERFACE
    } ICoreWebView2ScreenCaptureStartingEventHandlerVtbl;

    interface ICoreWebView2ScreenCaptureStartingEventHandler
    {
        CONST_VTBL struct ICoreWebView2ScreenCaptureStartingEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ScreenCaptureStartingEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ScreenCaptureStartingEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ScreenCaptureStartingEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ScreenCaptureStartingEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ScreenCaptureStartingEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2AcceleratorKeyPressedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2AcceleratorKeyPressedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2AcceleratorKeyPressedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2AcceleratorKeyPressedEventArgs = {0x9f760f8a, 0xfb79, 0x42be, {0x99, 0x90, 0x7b, 0x56, 0x90, 0x0f, 0xa9, 0xc7}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9f760f8a-fb79-42be-9990-7b56900fa9c7")
    ICoreWebView2AcceleratorKeyPressedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeyEventKind(
            /* [retval][out] */ COREWEBVIEW2_KEY_EVENT_KIND * keyEventKind) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_VirtualKey(
            /* [retval][out] */ UINT * virtualKey) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeyEventLParam(
            /* [retval][out] */ INT * lParam) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PhysicalKeyStatus(
            /* [retval][out] */ COREWEBVIEW2_PHYSICAL_KEY_STATUS * physicalKeyStatus) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handled(
            /* [retval][out] */ BOOL * handled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handled(
            /* [in] */ BOOL handled) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2AcceleratorKeyPressedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2AcceleratorKeyPressedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2AcceleratorKeyPressedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2AcceleratorKeyPressedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_KeyEventKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_KeyEventKind)(
            ICoreWebView2AcceleratorKeyPressedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_KEY_EVENT_KIND *keyEventKind);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_VirtualKey)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_VirtualKey)(
            ICoreWebView2AcceleratorKeyPressedEventArgs *This,
            /* [retval][out] */ UINT *virtualKey);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_KeyEventLParam)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_KeyEventLParam)(
            ICoreWebView2AcceleratorKeyPressedEventArgs *This,
            /* [retval][out] */ INT *lParam);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_PhysicalKeyStatus)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PhysicalKeyStatus)(
            ICoreWebView2AcceleratorKeyPressedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_PHYSICAL_KEY_STATUS *physicalKeyStatus);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2AcceleratorKeyPressedEventArgs *This,
            /* [retval][out] */ BOOL *handled);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2AcceleratorKeyPressedEventArgs *This,
            /* [in] */ BOOL handled);

        END_INTERFACE
    } ICoreWebView2AcceleratorKeyPressedEventArgsVtbl;

    interface ICoreWebView2AcceleratorKeyPressedEventArgs
    {
        CONST_VTBL struct ICoreWebView2AcceleratorKeyPressedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2AcceleratorKeyPressedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2AcceleratorKeyPressedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2AcceleratorKeyPressedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2AcceleratorKeyPressedEventArgs_get_KeyEventKind(This, keyEventKind) \
    ((This)->lpVtbl->get_KeyEventKind(This, keyEventKind))

#define ICoreWebView2AcceleratorKeyPressedEventArgs_get_VirtualKey(This, virtualKey) \
    ((This)->lpVtbl->get_VirtualKey(This, virtualKey))

#define ICoreWebView2AcceleratorKeyPressedEventArgs_get_KeyEventLParam(This, lParam) \
    ((This)->lpVtbl->get_KeyEventLParam(This, lParam))

#define ICoreWebView2AcceleratorKeyPressedEventArgs_get_PhysicalKeyStatus(This, physicalKeyStatus) \
    ((This)->lpVtbl->get_PhysicalKeyStatus(This, physicalKeyStatus))

#define ICoreWebView2AcceleratorKeyPressedEventArgs_get_Handled(This, handled) \
    ((This)->lpVtbl->get_Handled(This, handled))

#define ICoreWebView2AcceleratorKeyPressedEventArgs_put_Handled(This, handled) \
    ((This)->lpVtbl->put_Handled(This, handled))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2AcceleratorKeyPressedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2AcceleratorKeyPressedEventArgs2_INTERFACE_DEFINED__
#define __ICoreWebView2AcceleratorKeyPressedEventArgs2_INTERFACE_DEFINED__

    /* interface ICoreWebView2AcceleratorKeyPressedEventArgs2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2AcceleratorKeyPressedEventArgs2 = {0x03b2c8c8, 0x7799, 0x4e34, {0xbd, 0x66, 0xed, 0x26, 0xaa, 0x85, 0xf2, 0xbf}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("03b2c8c8-7799-4e34-bd66-ed26aa85f2bf")
    ICoreWebView2AcceleratorKeyPressedEventArgs2 : public ICoreWebView2AcceleratorKeyPressedEventArgs
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsBrowserAcceleratorKeyEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsBrowserAcceleratorKeyEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2AcceleratorKeyPressedEventArgs2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_KeyEventKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_KeyEventKind)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This,
            /* [retval][out] */ COREWEBVIEW2_KEY_EVENT_KIND *keyEventKind);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_VirtualKey)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_VirtualKey)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This,
            /* [retval][out] */ UINT *virtualKey);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_KeyEventLParam)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_KeyEventLParam)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This,
            /* [retval][out] */ INT *lParam);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_PhysicalKeyStatus)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PhysicalKeyStatus)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This,
            /* [retval][out] */ COREWEBVIEW2_PHYSICAL_KEY_STATUS *physicalKeyStatus);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This,
            /* [retval][out] */ BOOL *handled);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This,
            /* [in] */ BOOL handled);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs2, get_IsBrowserAcceleratorKeyEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBrowserAcceleratorKeyEnabled)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventArgs2, put_IsBrowserAcceleratorKeyEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBrowserAcceleratorKeyEnabled)(
            ICoreWebView2AcceleratorKeyPressedEventArgs2 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2AcceleratorKeyPressedEventArgs2Vtbl;

    interface ICoreWebView2AcceleratorKeyPressedEventArgs2
    {
        CONST_VTBL struct ICoreWebView2AcceleratorKeyPressedEventArgs2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_get_KeyEventKind(This, keyEventKind) \
    ((This)->lpVtbl->get_KeyEventKind(This, keyEventKind))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_get_VirtualKey(This, virtualKey) \
    ((This)->lpVtbl->get_VirtualKey(This, virtualKey))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_get_KeyEventLParam(This, lParam) \
    ((This)->lpVtbl->get_KeyEventLParam(This, lParam))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_get_PhysicalKeyStatus(This, physicalKeyStatus) \
    ((This)->lpVtbl->get_PhysicalKeyStatus(This, physicalKeyStatus))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_get_Handled(This, handled) \
    ((This)->lpVtbl->get_Handled(This, handled))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_put_Handled(This, handled) \
    ((This)->lpVtbl->put_Handled(This, handled))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_get_IsBrowserAcceleratorKeyEnabled(This, value) \
    ((This)->lpVtbl->get_IsBrowserAcceleratorKeyEnabled(This, value))

#define ICoreWebView2AcceleratorKeyPressedEventArgs2_put_IsBrowserAcceleratorKeyEnabled(This, value) \
    ((This)->lpVtbl->put_IsBrowserAcceleratorKeyEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2AcceleratorKeyPressedEventArgs2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BasicAuthenticationRequestedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2BasicAuthenticationRequestedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2BasicAuthenticationRequestedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BasicAuthenticationRequestedEventArgs = {0xef05516f, 0xd897, 0x4f9e, {0xb6, 0x72, 0xd8, 0xe2, 0x30, 0x7a, 0x3f, 0xb0}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ef05516f-d897-4f9e-b672-d8e2307a3fb0")
    ICoreWebView2BasicAuthenticationRequestedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Uri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Challenge(
            /* [retval][out] */ LPWSTR * challenge) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Response(
            /* [retval][out] */ ICoreWebView2BasicAuthenticationResponse * *response) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Cancel(
            /* [retval][out] */ BOOL * cancel) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Cancel(
            /* [in] */ BOOL cancel) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BasicAuthenticationRequestedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BasicAuthenticationRequestedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BasicAuthenticationRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BasicAuthenticationRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationRequestedEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2BasicAuthenticationRequestedEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationRequestedEventArgs, get_Challenge)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Challenge)(
            ICoreWebView2BasicAuthenticationRequestedEventArgs *This,
            /* [retval][out] */ LPWSTR *challenge);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationRequestedEventArgs, get_Response)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Response)(
            ICoreWebView2BasicAuthenticationRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2BasicAuthenticationResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationRequestedEventArgs, get_Cancel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cancel)(
            ICoreWebView2BasicAuthenticationRequestedEventArgs *This,
            /* [retval][out] */ BOOL *cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationRequestedEventArgs, put_Cancel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Cancel)(
            ICoreWebView2BasicAuthenticationRequestedEventArgs *This,
            /* [in] */ BOOL cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2BasicAuthenticationRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        END_INTERFACE
    } ICoreWebView2BasicAuthenticationRequestedEventArgsVtbl;

    interface ICoreWebView2BasicAuthenticationRequestedEventArgs
    {
        CONST_VTBL struct ICoreWebView2BasicAuthenticationRequestedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BasicAuthenticationRequestedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BasicAuthenticationRequestedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BasicAuthenticationRequestedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BasicAuthenticationRequestedEventArgs_get_Uri(This, value) \
    ((This)->lpVtbl->get_Uri(This, value))

#define ICoreWebView2BasicAuthenticationRequestedEventArgs_get_Challenge(This, challenge) \
    ((This)->lpVtbl->get_Challenge(This, challenge))

#define ICoreWebView2BasicAuthenticationRequestedEventArgs_get_Response(This, response) \
    ((This)->lpVtbl->get_Response(This, response))

#define ICoreWebView2BasicAuthenticationRequestedEventArgs_get_Cancel(This, cancel) \
    ((This)->lpVtbl->get_Cancel(This, cancel))

#define ICoreWebView2BasicAuthenticationRequestedEventArgs_put_Cancel(This, cancel) \
    ((This)->lpVtbl->put_Cancel(This, cancel))

#define ICoreWebView2BasicAuthenticationRequestedEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BasicAuthenticationRequestedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BasicAuthenticationResponse_INTERFACE_DEFINED__
#define __ICoreWebView2BasicAuthenticationResponse_INTERFACE_DEFINED__

    /* interface ICoreWebView2BasicAuthenticationResponse */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BasicAuthenticationResponse = {0x07023f7d, 0x2d77, 0x4d67, {0x90, 0x40, 0x6e, 0x7d, 0x42, 0x8c, 0x6a, 0x40}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("07023f7d-2d77-4d67-9040-6e7d428c6a40")
    ICoreWebView2BasicAuthenticationResponse : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UserName(
            /* [retval][out] */ LPWSTR * userName) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_UserName(
            /* [in] */ LPCWSTR userName) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Password(
            /* [retval][out] */ LPWSTR * password) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Password(
            /* [in] */ LPCWSTR password) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BasicAuthenticationResponseVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BasicAuthenticationResponse *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BasicAuthenticationResponse *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BasicAuthenticationResponse *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationResponse, get_UserName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserName)(
            ICoreWebView2BasicAuthenticationResponse *This,
            /* [retval][out] */ LPWSTR *userName);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationResponse, put_UserName)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_UserName)(
            ICoreWebView2BasicAuthenticationResponse *This,
            /* [in] */ LPCWSTR userName);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationResponse, get_Password)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Password)(
            ICoreWebView2BasicAuthenticationResponse *This,
            /* [retval][out] */ LPWSTR *password);

        DECLSPEC_XFGVIRT(ICoreWebView2BasicAuthenticationResponse, put_Password)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Password)(
            ICoreWebView2BasicAuthenticationResponse *This,
            /* [in] */ LPCWSTR password);

        END_INTERFACE
    } ICoreWebView2BasicAuthenticationResponseVtbl;

    interface ICoreWebView2BasicAuthenticationResponse
    {
        CONST_VTBL struct ICoreWebView2BasicAuthenticationResponseVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BasicAuthenticationResponse_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BasicAuthenticationResponse_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BasicAuthenticationResponse_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BasicAuthenticationResponse_get_UserName(This, userName) \
    ((This)->lpVtbl->get_UserName(This, userName))

#define ICoreWebView2BasicAuthenticationResponse_put_UserName(This, userName) \
    ((This)->lpVtbl->put_UserName(This, userName))

#define ICoreWebView2BasicAuthenticationResponse_get_Password(This, password) \
    ((This)->lpVtbl->get_Password(This, password))

#define ICoreWebView2BasicAuthenticationResponse_put_Password(This, password) \
    ((This)->lpVtbl->put_Password(This, password))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BasicAuthenticationResponse_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BrowserExtension_INTERFACE_DEFINED__
#define __ICoreWebView2BrowserExtension_INTERFACE_DEFINED__

    /* interface ICoreWebView2BrowserExtension */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BrowserExtension = {0x7EF7FFA0, 0xFAC5, 0x462C, {0xB1, 0x89, 0x3D, 0x9E, 0xDB, 0xE5, 0x75, 0xDA}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7EF7FFA0-FAC5-462C-B189-3D9EDBE575DA")
    ICoreWebView2BrowserExtension : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Id(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE Remove(
            /* [in] */ ICoreWebView2BrowserExtensionRemoveCompletedHandler * handler) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE Enable(
            /* [in] */ BOOL isEnabled,
            /* [in] */ ICoreWebView2BrowserExtensionEnableCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BrowserExtensionVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BrowserExtension *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BrowserExtension *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BrowserExtension *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserExtension, get_Id)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Id)(
            ICoreWebView2BrowserExtension *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserExtension, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2BrowserExtension *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserExtension, Remove)
        HRESULT(STDMETHODCALLTYPE *Remove)(
            ICoreWebView2BrowserExtension *This,
            /* [in] */ ICoreWebView2BrowserExtensionRemoveCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserExtension, get_IsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsEnabled)(
            ICoreWebView2BrowserExtension *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserExtension, Enable)
        HRESULT(STDMETHODCALLTYPE *Enable)(
            ICoreWebView2BrowserExtension *This,
            /* [in] */ BOOL isEnabled,
            /* [in] */ ICoreWebView2BrowserExtensionEnableCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2BrowserExtensionVtbl;

    interface ICoreWebView2BrowserExtension
    {
        CONST_VTBL struct ICoreWebView2BrowserExtensionVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BrowserExtension_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BrowserExtension_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BrowserExtension_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BrowserExtension_get_Id(This, value) \
    ((This)->lpVtbl->get_Id(This, value))

#define ICoreWebView2BrowserExtension_get_Name(This, value) \
    ((This)->lpVtbl->get_Name(This, value))

#define ICoreWebView2BrowserExtension_Remove(This, handler) \
    ((This)->lpVtbl->Remove(This, handler))

#define ICoreWebView2BrowserExtension_get_IsEnabled(This, value) \
    ((This)->lpVtbl->get_IsEnabled(This, value))

#define ICoreWebView2BrowserExtension_Enable(This, isEnabled, handler) \
    ((This)->lpVtbl->Enable(This, isEnabled, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BrowserExtension_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BrowserExtensionRemoveCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2BrowserExtensionRemoveCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2BrowserExtensionRemoveCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BrowserExtensionRemoveCompletedHandler = {0x8e41909a, 0x9b18, 0x4bb1, {0x8c, 0xdf, 0x93, 0x0f, 0x46, 0x7a, 0x50, 0xbe}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("8e41909a-9b18-4bb1-8cdf-930f467a50be")
    ICoreWebView2BrowserExtensionRemoveCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BrowserExtensionRemoveCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BrowserExtensionRemoveCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BrowserExtensionRemoveCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BrowserExtensionRemoveCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserExtensionRemoveCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2BrowserExtensionRemoveCompletedHandler *This,
            /* [in] */ HRESULT errorCode);

        END_INTERFACE
    } ICoreWebView2BrowserExtensionRemoveCompletedHandlerVtbl;

    interface ICoreWebView2BrowserExtensionRemoveCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2BrowserExtensionRemoveCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BrowserExtensionRemoveCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BrowserExtensionRemoveCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BrowserExtensionRemoveCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BrowserExtensionRemoveCompletedHandler_Invoke(This, errorCode) \
    ((This)->lpVtbl->Invoke(This, errorCode))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BrowserExtensionRemoveCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BrowserExtensionEnableCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2BrowserExtensionEnableCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2BrowserExtensionEnableCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BrowserExtensionEnableCompletedHandler = {0x30c186ce, 0x7fad, 0x421f, {0xa3, 0xbc, 0xa8, 0xea, 0xf0, 0x71, 0xdd, 0xb8}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("30c186ce-7fad-421f-a3bc-a8eaf071ddb8")
    ICoreWebView2BrowserExtensionEnableCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BrowserExtensionEnableCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BrowserExtensionEnableCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BrowserExtensionEnableCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BrowserExtensionEnableCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserExtensionEnableCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2BrowserExtensionEnableCompletedHandler *This,
            /* [in] */ HRESULT errorCode);

        END_INTERFACE
    } ICoreWebView2BrowserExtensionEnableCompletedHandlerVtbl;

    interface ICoreWebView2BrowserExtensionEnableCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2BrowserExtensionEnableCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BrowserExtensionEnableCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BrowserExtensionEnableCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BrowserExtensionEnableCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BrowserExtensionEnableCompletedHandler_Invoke(This, errorCode) \
    ((This)->lpVtbl->Invoke(This, errorCode))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BrowserExtensionEnableCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BrowserProcessExitedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2BrowserProcessExitedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2BrowserProcessExitedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BrowserProcessExitedEventArgs = {0x1f00663f, 0xaf8c, 0x4782, {0x9c, 0xdd, 0xdd, 0x01, 0xc5, 0x2e, 0x34, 0xcb}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("1f00663f-af8c-4782-9cdd-dd01c52e34cb")
    ICoreWebView2BrowserProcessExitedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrowserProcessExitKind(
            /* [retval][out] */ COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrowserProcessId(
            /* [retval][out] */ UINT32 * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BrowserProcessExitedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BrowserProcessExitedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BrowserProcessExitedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BrowserProcessExitedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserProcessExitedEventArgs, get_BrowserProcessExitKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessExitKind)(
            ICoreWebView2BrowserProcessExitedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_BROWSER_PROCESS_EXIT_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserProcessExitedEventArgs, get_BrowserProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserProcessId)(
            ICoreWebView2BrowserProcessExitedEventArgs *This,
            /* [retval][out] */ UINT32 *value);

        END_INTERFACE
    } ICoreWebView2BrowserProcessExitedEventArgsVtbl;

    interface ICoreWebView2BrowserProcessExitedEventArgs
    {
        CONST_VTBL struct ICoreWebView2BrowserProcessExitedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BrowserProcessExitedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BrowserProcessExitedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BrowserProcessExitedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BrowserProcessExitedEventArgs_get_BrowserProcessExitKind(This, value) \
    ((This)->lpVtbl->get_BrowserProcessExitKind(This, value))

#define ICoreWebView2BrowserProcessExitedEventArgs_get_BrowserProcessId(This, value) \
    ((This)->lpVtbl->get_BrowserProcessId(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BrowserProcessExitedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Certificate_INTERFACE_DEFINED__
#define __ICoreWebView2Certificate_INTERFACE_DEFINED__

    /* interface ICoreWebView2Certificate */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Certificate = {0xC5FB2FCE, 0x1CAC, 0x4AEE, {0x9C, 0x79, 0x5E, 0xD0, 0x36, 0x2E, 0xAA, 0xE0}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("C5FB2FCE-1CAC-4AEE-9C79-5ED0362EAAE0")
    ICoreWebView2Certificate : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Subject(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Issuer(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ValidFrom(
            /* [retval][out] */ double *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ValidTo(
            /* [retval][out] */ double *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DerEncodedSerialNumber(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DisplayName(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE ToPemEncoding(
            /* [retval][out] */ LPWSTR * pemEncodedData) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PemEncodedIssuerCertificateChain(
            /* [retval][out] */ ICoreWebView2StringCollection * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CertificateVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Certificate *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Certificate *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Certificate *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Certificate, get_Subject)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Subject)(
            ICoreWebView2Certificate *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Certificate, get_Issuer)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Issuer)(
            ICoreWebView2Certificate *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Certificate, get_ValidFrom)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ValidFrom)(
            ICoreWebView2Certificate *This,
            /* [retval][out] */ double *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Certificate, get_ValidTo)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ValidTo)(
            ICoreWebView2Certificate *This,
            /* [retval][out] */ double *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Certificate, get_DerEncodedSerialNumber)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DerEncodedSerialNumber)(
            ICoreWebView2Certificate *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Certificate, get_DisplayName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DisplayName)(
            ICoreWebView2Certificate *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Certificate, ToPemEncoding)
        HRESULT(STDMETHODCALLTYPE *ToPemEncoding)(
            ICoreWebView2Certificate *This,
            /* [retval][out] */ LPWSTR *pemEncodedData);

        DECLSPEC_XFGVIRT(ICoreWebView2Certificate, get_PemEncodedIssuerCertificateChain)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PemEncodedIssuerCertificateChain)(
            ICoreWebView2Certificate *This,
            /* [retval][out] */ ICoreWebView2StringCollection **value);

        END_INTERFACE
    } ICoreWebView2CertificateVtbl;

    interface ICoreWebView2Certificate
    {
        CONST_VTBL struct ICoreWebView2CertificateVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Certificate_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Certificate_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Certificate_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Certificate_get_Subject(This, value) \
    ((This)->lpVtbl->get_Subject(This, value))

#define ICoreWebView2Certificate_get_Issuer(This, value) \
    ((This)->lpVtbl->get_Issuer(This, value))

#define ICoreWebView2Certificate_get_ValidFrom(This, value) \
    ((This)->lpVtbl->get_ValidFrom(This, value))

#define ICoreWebView2Certificate_get_ValidTo(This, value) \
    ((This)->lpVtbl->get_ValidTo(This, value))

#define ICoreWebView2Certificate_get_DerEncodedSerialNumber(This, value) \
    ((This)->lpVtbl->get_DerEncodedSerialNumber(This, value))

#define ICoreWebView2Certificate_get_DisplayName(This, value) \
    ((This)->lpVtbl->get_DisplayName(This, value))

#define ICoreWebView2Certificate_ToPemEncoding(This, pemEncodedData) \
    ((This)->lpVtbl->ToPemEncoding(This, pemEncodedData))

#define ICoreWebView2Certificate_get_PemEncodedIssuerCertificateChain(This, value) \
    ((This)->lpVtbl->get_PemEncodedIssuerCertificateChain(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Certificate_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ClientCertificate_INTERFACE_DEFINED__
#define __ICoreWebView2ClientCertificate_INTERFACE_DEFINED__

    /* interface ICoreWebView2ClientCertificate */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ClientCertificate = {0xe7188076, 0xbcc3, 0x11eb, {0x85, 0x29, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e7188076-bcc3-11eb-8529-0242ac130003")
    ICoreWebView2ClientCertificate : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Subject(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Issuer(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ValidFrom(
            /* [retval][out] */ double *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ValidTo(
            /* [retval][out] */ double *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DerEncodedSerialNumber(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DisplayName(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE ToPemEncoding(
            /* [retval][out] */ LPWSTR * pemEncodedData) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PemEncodedIssuerCertificateChain(
            /* [retval][out] */ ICoreWebView2StringCollection * *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Kind(
            /* [retval][out] */ COREWEBVIEW2_CLIENT_CERTIFICATE_KIND * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ClientCertificateVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ClientCertificate *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ClientCertificate *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ClientCertificate *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificate, get_Subject)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Subject)(
            ICoreWebView2ClientCertificate *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificate, get_Issuer)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Issuer)(
            ICoreWebView2ClientCertificate *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificate, get_ValidFrom)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ValidFrom)(
            ICoreWebView2ClientCertificate *This,
            /* [retval][out] */ double *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificate, get_ValidTo)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ValidTo)(
            ICoreWebView2ClientCertificate *This,
            /* [retval][out] */ double *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificate, get_DerEncodedSerialNumber)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DerEncodedSerialNumber)(
            ICoreWebView2ClientCertificate *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificate, get_DisplayName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DisplayName)(
            ICoreWebView2ClientCertificate *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificate, ToPemEncoding)
        HRESULT(STDMETHODCALLTYPE *ToPemEncoding)(
            ICoreWebView2ClientCertificate *This,
            /* [retval][out] */ LPWSTR *pemEncodedData);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificate, get_PemEncodedIssuerCertificateChain)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PemEncodedIssuerCertificateChain)(
            ICoreWebView2ClientCertificate *This,
            /* [retval][out] */ ICoreWebView2StringCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificate, get_Kind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Kind)(
            ICoreWebView2ClientCertificate *This,
            /* [retval][out] */ COREWEBVIEW2_CLIENT_CERTIFICATE_KIND *value);

        END_INTERFACE
    } ICoreWebView2ClientCertificateVtbl;

    interface ICoreWebView2ClientCertificate
    {
        CONST_VTBL struct ICoreWebView2ClientCertificateVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ClientCertificate_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ClientCertificate_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ClientCertificate_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ClientCertificate_get_Subject(This, value) \
    ((This)->lpVtbl->get_Subject(This, value))

#define ICoreWebView2ClientCertificate_get_Issuer(This, value) \
    ((This)->lpVtbl->get_Issuer(This, value))

#define ICoreWebView2ClientCertificate_get_ValidFrom(This, value) \
    ((This)->lpVtbl->get_ValidFrom(This, value))

#define ICoreWebView2ClientCertificate_get_ValidTo(This, value) \
    ((This)->lpVtbl->get_ValidTo(This, value))

#define ICoreWebView2ClientCertificate_get_DerEncodedSerialNumber(This, value) \
    ((This)->lpVtbl->get_DerEncodedSerialNumber(This, value))

#define ICoreWebView2ClientCertificate_get_DisplayName(This, value) \
    ((This)->lpVtbl->get_DisplayName(This, value))

#define ICoreWebView2ClientCertificate_ToPemEncoding(This, pemEncodedData) \
    ((This)->lpVtbl->ToPemEncoding(This, pemEncodedData))

#define ICoreWebView2ClientCertificate_get_PemEncodedIssuerCertificateChain(This, value) \
    ((This)->lpVtbl->get_PemEncodedIssuerCertificateChain(This, value))

#define ICoreWebView2ClientCertificate_get_Kind(This, value) \
    ((This)->lpVtbl->get_Kind(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ClientCertificate_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ClientCertificateRequestedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2ClientCertificateRequestedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2ClientCertificateRequestedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ClientCertificateRequestedEventArgs = {0xbc59db28, 0xbcc3, 0x11eb, {0x85, 0x29, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("bc59db28-bcc3-11eb-8529-0242ac130003")
    ICoreWebView2ClientCertificateRequestedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Host(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Port(
            /* [retval][out] */ int *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsProxy(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AllowedCertificateAuthorities(
            /* [retval][out] */ ICoreWebView2StringCollection * *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MutuallyTrustedCertificates(
            /* [retval][out] */ ICoreWebView2ClientCertificateCollection * *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SelectedCertificate(
            /* [retval][out] */ ICoreWebView2ClientCertificate * *value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SelectedCertificate(
            /* [in] */ ICoreWebView2ClientCertificate * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Cancel(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Cancel(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handled(
            /* [in] */ BOOL value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ClientCertificateRequestedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, get_Host)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Host)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, get_Port)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Port)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [retval][out] */ int *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, get_IsProxy)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsProxy)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, get_AllowedCertificateAuthorities)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AllowedCertificateAuthorities)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2StringCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, get_MutuallyTrustedCertificates)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MutuallyTrustedCertificates)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2ClientCertificateCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, get_SelectedCertificate)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SelectedCertificate)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2ClientCertificate **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, put_SelectedCertificate)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_SelectedCertificate)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [in] */ ICoreWebView2ClientCertificate *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, get_Cancel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cancel)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, put_Cancel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Cancel)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2ClientCertificateRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        END_INTERFACE
    } ICoreWebView2ClientCertificateRequestedEventArgsVtbl;

    interface ICoreWebView2ClientCertificateRequestedEventArgs
    {
        CONST_VTBL struct ICoreWebView2ClientCertificateRequestedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ClientCertificateRequestedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ClientCertificateRequestedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ClientCertificateRequestedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ClientCertificateRequestedEventArgs_get_Host(This, value) \
    ((This)->lpVtbl->get_Host(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_get_Port(This, value) \
    ((This)->lpVtbl->get_Port(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_get_IsProxy(This, value) \
    ((This)->lpVtbl->get_IsProxy(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_get_AllowedCertificateAuthorities(This, value) \
    ((This)->lpVtbl->get_AllowedCertificateAuthorities(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_get_MutuallyTrustedCertificates(This, value) \
    ((This)->lpVtbl->get_MutuallyTrustedCertificates(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_get_SelectedCertificate(This, value) \
    ((This)->lpVtbl->get_SelectedCertificate(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_put_SelectedCertificate(This, value) \
    ((This)->lpVtbl->put_SelectedCertificate(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_get_Cancel(This, value) \
    ((This)->lpVtbl->get_Cancel(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_put_Cancel(This, value) \
    ((This)->lpVtbl->put_Cancel(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_get_Handled(This, value) \
    ((This)->lpVtbl->get_Handled(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_put_Handled(This, value) \
    ((This)->lpVtbl->put_Handled(This, value))

#define ICoreWebView2ClientCertificateRequestedEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ClientCertificateRequestedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2StringCollection_INTERFACE_DEFINED__
#define __ICoreWebView2StringCollection_INTERFACE_DEFINED__

    /* interface ICoreWebView2StringCollection */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2StringCollection = {0xf41f3f8a, 0xbcc3, 0x11eb, {0x85, 0x29, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f41f3f8a-bcc3-11eb-8529-0242ac130003")
    ICoreWebView2StringCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2StringCollectionVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2StringCollection *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2StringCollection *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2StringCollection *This);

        DECLSPEC_XFGVIRT(ICoreWebView2StringCollection, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2StringCollection *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2StringCollection, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2StringCollection *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2StringCollectionVtbl;

    interface ICoreWebView2StringCollection
    {
        CONST_VTBL struct ICoreWebView2StringCollectionVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2StringCollection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2StringCollection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2StringCollection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2StringCollection_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2StringCollection_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2StringCollection_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ClientCertificateCollection_INTERFACE_DEFINED__
#define __ICoreWebView2ClientCertificateCollection_INTERFACE_DEFINED__

    /* interface ICoreWebView2ClientCertificateCollection */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ClientCertificateCollection = {0xef5674d2, 0xbcc3, 0x11eb, {0x85, 0x29, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ef5674d2-bcc3-11eb-8529-0242ac130003")
    ICoreWebView2ClientCertificateCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2ClientCertificate * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ClientCertificateCollectionVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ClientCertificateCollection *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ClientCertificateCollection *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ClientCertificateCollection *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateCollection, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2ClientCertificateCollection *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ClientCertificateCollection, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2ClientCertificateCollection *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2ClientCertificate **value);

        END_INTERFACE
    } ICoreWebView2ClientCertificateCollectionVtbl;

    interface ICoreWebView2ClientCertificateCollection
    {
        CONST_VTBL struct ICoreWebView2ClientCertificateCollectionVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ClientCertificateCollection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ClientCertificateCollection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ClientCertificateCollection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ClientCertificateCollection_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2ClientCertificateCollection_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ClientCertificateCollection_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CompositionController_INTERFACE_DEFINED__
#define __ICoreWebView2CompositionController_INTERFACE_DEFINED__

    /* interface ICoreWebView2CompositionController */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CompositionController = {0x3df9b733, 0xb9ae, 0x4a15, {0x86, 0xb4, 0xeb, 0x9e, 0xe9, 0x82, 0x64, 0x69}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("3df9b733-b9ae-4a15-86b4-eb9ee9826469")
    ICoreWebView2CompositionController : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RootVisualTarget(
            /* [retval][out] */ IUnknown * *target) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_RootVisualTarget(
            /* [in] */ IUnknown * target) = 0;

        virtual HRESULT STDMETHODCALLTYPE SendMouseInput(
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_KIND eventKind,
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS virtualKeys,
            /* [in] */ UINT32 mouseData,
            /* [in] */ POINT point) = 0;

        virtual HRESULT STDMETHODCALLTYPE SendPointerInput(
            /* [in] */ COREWEBVIEW2_POINTER_EVENT_KIND eventKind,
            /* [in] */ ICoreWebView2PointerInfo * pointerInfo) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Cursor(
            /* [retval][out] */ HCURSOR * cursor) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SystemCursorId(
            /* [retval][out] */ UINT32 * systemCursorId) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_CursorChanged(
            /* [in] */ ICoreWebView2CursorChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_CursorChanged(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CompositionControllerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CompositionController *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CompositionController *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CompositionController *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_RootVisualTarget)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RootVisualTarget)(
            ICoreWebView2CompositionController *This,
            /* [retval][out] */ IUnknown **target);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, put_RootVisualTarget)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_RootVisualTarget)(
            ICoreWebView2CompositionController *This,
            /* [in] */ IUnknown *target);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, SendMouseInput)
        HRESULT(STDMETHODCALLTYPE *SendMouseInput)(
            ICoreWebView2CompositionController *This,
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_KIND eventKind,
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS virtualKeys,
            /* [in] */ UINT32 mouseData,
            /* [in] */ POINT point);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, SendPointerInput)
        HRESULT(STDMETHODCALLTYPE *SendPointerInput)(
            ICoreWebView2CompositionController *This,
            /* [in] */ COREWEBVIEW2_POINTER_EVENT_KIND eventKind,
            /* [in] */ ICoreWebView2PointerInfo *pointerInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_Cursor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cursor)(
            ICoreWebView2CompositionController *This,
            /* [retval][out] */ HCURSOR *cursor);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_SystemCursorId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SystemCursorId)(
            ICoreWebView2CompositionController *This,
            /* [retval][out] */ UINT32 *systemCursorId);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, add_CursorChanged)
        HRESULT(STDMETHODCALLTYPE *add_CursorChanged)(
            ICoreWebView2CompositionController *This,
            /* [in] */ ICoreWebView2CursorChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, remove_CursorChanged)
        HRESULT(STDMETHODCALLTYPE *remove_CursorChanged)(
            ICoreWebView2CompositionController *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2CompositionControllerVtbl;

    interface ICoreWebView2CompositionController
    {
        CONST_VTBL struct ICoreWebView2CompositionControllerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CompositionController_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CompositionController_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CompositionController_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CompositionController_get_RootVisualTarget(This, target) \
    ((This)->lpVtbl->get_RootVisualTarget(This, target))

#define ICoreWebView2CompositionController_put_RootVisualTarget(This, target) \
    ((This)->lpVtbl->put_RootVisualTarget(This, target))

#define ICoreWebView2CompositionController_SendMouseInput(This, eventKind, virtualKeys, mouseData, point) \
    ((This)->lpVtbl->SendMouseInput(This, eventKind, virtualKeys, mouseData, point))

#define ICoreWebView2CompositionController_SendPointerInput(This, eventKind, pointerInfo) \
    ((This)->lpVtbl->SendPointerInput(This, eventKind, pointerInfo))

#define ICoreWebView2CompositionController_get_Cursor(This, cursor) \
    ((This)->lpVtbl->get_Cursor(This, cursor))

#define ICoreWebView2CompositionController_get_SystemCursorId(This, systemCursorId) \
    ((This)->lpVtbl->get_SystemCursorId(This, systemCursorId))

#define ICoreWebView2CompositionController_add_CursorChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_CursorChanged(This, eventHandler, token))

#define ICoreWebView2CompositionController_remove_CursorChanged(This, token) \
    ((This)->lpVtbl->remove_CursorChanged(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CompositionController_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CursorChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2CursorChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2CursorChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CursorChangedEventHandler = {0x9da43ccc, 0x26e1, 0x4dad, {0xb5, 0x6c, 0xd8, 0x96, 0x1c, 0x94, 0xc5, 0x71}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9da43ccc-26e1-4dad-b56c-d8961c94c571")
    ICoreWebView2CursorChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2CompositionController * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CursorChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CursorChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CursorChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CursorChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CursorChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2CursorChangedEventHandler *This,
            /* [in] */ ICoreWebView2CompositionController *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2CursorChangedEventHandlerVtbl;

    interface ICoreWebView2CursorChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2CursorChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CursorChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CursorChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CursorChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CursorChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CursorChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CompositionController2_INTERFACE_DEFINED__
#define __ICoreWebView2CompositionController2_INTERFACE_DEFINED__

    /* interface ICoreWebView2CompositionController2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CompositionController2 = {0x0b6a3d24, 0x49cb, 0x4806, {0xba, 0x20, 0xb5, 0xe0, 0x73, 0x4a, 0x7b, 0x26}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0b6a3d24-49cb-4806-ba20-b5e0734a7b26")
    ICoreWebView2CompositionController2 : public ICoreWebView2CompositionController
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AutomationProvider(
            /* [retval][out] */ IUnknown * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CompositionController2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CompositionController2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CompositionController2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CompositionController2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_RootVisualTarget)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RootVisualTarget)(
            ICoreWebView2CompositionController2 *This,
            /* [retval][out] */ IUnknown **target);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, put_RootVisualTarget)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_RootVisualTarget)(
            ICoreWebView2CompositionController2 *This,
            /* [in] */ IUnknown *target);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, SendMouseInput)
        HRESULT(STDMETHODCALLTYPE *SendMouseInput)(
            ICoreWebView2CompositionController2 *This,
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_KIND eventKind,
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS virtualKeys,
            /* [in] */ UINT32 mouseData,
            /* [in] */ POINT point);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, SendPointerInput)
        HRESULT(STDMETHODCALLTYPE *SendPointerInput)(
            ICoreWebView2CompositionController2 *This,
            /* [in] */ COREWEBVIEW2_POINTER_EVENT_KIND eventKind,
            /* [in] */ ICoreWebView2PointerInfo *pointerInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_Cursor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cursor)(
            ICoreWebView2CompositionController2 *This,
            /* [retval][out] */ HCURSOR *cursor);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_SystemCursorId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SystemCursorId)(
            ICoreWebView2CompositionController2 *This,
            /* [retval][out] */ UINT32 *systemCursorId);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, add_CursorChanged)
        HRESULT(STDMETHODCALLTYPE *add_CursorChanged)(
            ICoreWebView2CompositionController2 *This,
            /* [in] */ ICoreWebView2CursorChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, remove_CursorChanged)
        HRESULT(STDMETHODCALLTYPE *remove_CursorChanged)(
            ICoreWebView2CompositionController2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController2, get_AutomationProvider)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AutomationProvider)(
            ICoreWebView2CompositionController2 *This,
            /* [retval][out] */ IUnknown **value);

        END_INTERFACE
    } ICoreWebView2CompositionController2Vtbl;

    interface ICoreWebView2CompositionController2
    {
        CONST_VTBL struct ICoreWebView2CompositionController2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CompositionController2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CompositionController2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CompositionController2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CompositionController2_get_RootVisualTarget(This, target) \
    ((This)->lpVtbl->get_RootVisualTarget(This, target))

#define ICoreWebView2CompositionController2_put_RootVisualTarget(This, target) \
    ((This)->lpVtbl->put_RootVisualTarget(This, target))

#define ICoreWebView2CompositionController2_SendMouseInput(This, eventKind, virtualKeys, mouseData, point) \
    ((This)->lpVtbl->SendMouseInput(This, eventKind, virtualKeys, mouseData, point))

#define ICoreWebView2CompositionController2_SendPointerInput(This, eventKind, pointerInfo) \
    ((This)->lpVtbl->SendPointerInput(This, eventKind, pointerInfo))

#define ICoreWebView2CompositionController2_get_Cursor(This, cursor) \
    ((This)->lpVtbl->get_Cursor(This, cursor))

#define ICoreWebView2CompositionController2_get_SystemCursorId(This, systemCursorId) \
    ((This)->lpVtbl->get_SystemCursorId(This, systemCursorId))

#define ICoreWebView2CompositionController2_add_CursorChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_CursorChanged(This, eventHandler, token))

#define ICoreWebView2CompositionController2_remove_CursorChanged(This, token) \
    ((This)->lpVtbl->remove_CursorChanged(This, token))

#define ICoreWebView2CompositionController2_get_AutomationProvider(This, value) \
    ((This)->lpVtbl->get_AutomationProvider(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CompositionController2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CompositionController3_INTERFACE_DEFINED__
#define __ICoreWebView2CompositionController3_INTERFACE_DEFINED__

    /* interface ICoreWebView2CompositionController3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CompositionController3 = {0x9570570e, 0x4d76, 0x4361, {0x9e, 0xe1, 0xf0, 0x4d, 0x0d, 0xbd, 0xfb, 0x1e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9570570e-4d76-4361-9ee1-f04d0dbdfb1e")
    ICoreWebView2CompositionController3 : public ICoreWebView2CompositionController2
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE DragEnter(
            /* [in] */ IDataObject * dataObject,
            /* [in] */ DWORD keyState,
            /* [in] */ POINT point,
            /* [retval][out] */ DWORD * effect) = 0;

        virtual HRESULT STDMETHODCALLTYPE DragLeave(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE DragOver(
            /* [in] */ DWORD keyState,
            /* [in] */ POINT point,
            /* [retval][out] */ DWORD * effect) = 0;

        virtual HRESULT STDMETHODCALLTYPE Drop(
            /* [in] */ IDataObject * dataObject,
            /* [in] */ DWORD keyState,
            /* [in] */ POINT point,
            /* [retval][out] */ DWORD * effect) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CompositionController3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CompositionController3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CompositionController3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CompositionController3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_RootVisualTarget)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RootVisualTarget)(
            ICoreWebView2CompositionController3 *This,
            /* [retval][out] */ IUnknown **target);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, put_RootVisualTarget)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_RootVisualTarget)(
            ICoreWebView2CompositionController3 *This,
            /* [in] */ IUnknown *target);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, SendMouseInput)
        HRESULT(STDMETHODCALLTYPE *SendMouseInput)(
            ICoreWebView2CompositionController3 *This,
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_KIND eventKind,
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS virtualKeys,
            /* [in] */ UINT32 mouseData,
            /* [in] */ POINT point);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, SendPointerInput)
        HRESULT(STDMETHODCALLTYPE *SendPointerInput)(
            ICoreWebView2CompositionController3 *This,
            /* [in] */ COREWEBVIEW2_POINTER_EVENT_KIND eventKind,
            /* [in] */ ICoreWebView2PointerInfo *pointerInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_Cursor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cursor)(
            ICoreWebView2CompositionController3 *This,
            /* [retval][out] */ HCURSOR *cursor);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_SystemCursorId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SystemCursorId)(
            ICoreWebView2CompositionController3 *This,
            /* [retval][out] */ UINT32 *systemCursorId);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, add_CursorChanged)
        HRESULT(STDMETHODCALLTYPE *add_CursorChanged)(
            ICoreWebView2CompositionController3 *This,
            /* [in] */ ICoreWebView2CursorChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, remove_CursorChanged)
        HRESULT(STDMETHODCALLTYPE *remove_CursorChanged)(
            ICoreWebView2CompositionController3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController2, get_AutomationProvider)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AutomationProvider)(
            ICoreWebView2CompositionController3 *This,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController3, DragEnter)
        HRESULT(STDMETHODCALLTYPE *DragEnter)(
            ICoreWebView2CompositionController3 *This,
            /* [in] */ IDataObject *dataObject,
            /* [in] */ DWORD keyState,
            /* [in] */ POINT point,
            /* [retval][out] */ DWORD *effect);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController3, DragLeave)
        HRESULT(STDMETHODCALLTYPE *DragLeave)(
            ICoreWebView2CompositionController3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController3, DragOver)
        HRESULT(STDMETHODCALLTYPE *DragOver)(
            ICoreWebView2CompositionController3 *This,
            /* [in] */ DWORD keyState,
            /* [in] */ POINT point,
            /* [retval][out] */ DWORD *effect);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController3, Drop)
        HRESULT(STDMETHODCALLTYPE *Drop)(
            ICoreWebView2CompositionController3 *This,
            /* [in] */ IDataObject *dataObject,
            /* [in] */ DWORD keyState,
            /* [in] */ POINT point,
            /* [retval][out] */ DWORD *effect);

        END_INTERFACE
    } ICoreWebView2CompositionController3Vtbl;

    interface ICoreWebView2CompositionController3
    {
        CONST_VTBL struct ICoreWebView2CompositionController3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CompositionController3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CompositionController3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CompositionController3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CompositionController3_get_RootVisualTarget(This, target) \
    ((This)->lpVtbl->get_RootVisualTarget(This, target))

#define ICoreWebView2CompositionController3_put_RootVisualTarget(This, target) \
    ((This)->lpVtbl->put_RootVisualTarget(This, target))

#define ICoreWebView2CompositionController3_SendMouseInput(This, eventKind, virtualKeys, mouseData, point) \
    ((This)->lpVtbl->SendMouseInput(This, eventKind, virtualKeys, mouseData, point))

#define ICoreWebView2CompositionController3_SendPointerInput(This, eventKind, pointerInfo) \
    ((This)->lpVtbl->SendPointerInput(This, eventKind, pointerInfo))

#define ICoreWebView2CompositionController3_get_Cursor(This, cursor) \
    ((This)->lpVtbl->get_Cursor(This, cursor))

#define ICoreWebView2CompositionController3_get_SystemCursorId(This, systemCursorId) \
    ((This)->lpVtbl->get_SystemCursorId(This, systemCursorId))

#define ICoreWebView2CompositionController3_add_CursorChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_CursorChanged(This, eventHandler, token))

#define ICoreWebView2CompositionController3_remove_CursorChanged(This, token) \
    ((This)->lpVtbl->remove_CursorChanged(This, token))

#define ICoreWebView2CompositionController3_get_AutomationProvider(This, value) \
    ((This)->lpVtbl->get_AutomationProvider(This, value))

#define ICoreWebView2CompositionController3_DragEnter(This, dataObject, keyState, point, effect) \
    ((This)->lpVtbl->DragEnter(This, dataObject, keyState, point, effect))

#define ICoreWebView2CompositionController3_DragLeave(This) \
    ((This)->lpVtbl->DragLeave(This))

#define ICoreWebView2CompositionController3_DragOver(This, keyState, point, effect) \
    ((This)->lpVtbl->DragOver(This, keyState, point, effect))

#define ICoreWebView2CompositionController3_Drop(This, dataObject, keyState, point, effect) \
    ((This)->lpVtbl->Drop(This, dataObject, keyState, point, effect))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CompositionController3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CompositionController4_INTERFACE_DEFINED__
#define __ICoreWebView2CompositionController4_INTERFACE_DEFINED__

    /* interface ICoreWebView2CompositionController4 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CompositionController4 = {0x7C367B9B, 0x3D2B, 0x450F, {0x9E, 0x58, 0xD6, 0x1A, 0x20, 0xF4, 0x86, 0xAA}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7C367B9B-3D2B-450F-9E58-D61A20F486AA")
    ICoreWebView2CompositionController4 : public ICoreWebView2CompositionController3
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetNonClientRegionAtPoint(
            /* [in] */ POINT point,
            /* [retval][out] */ COREWEBVIEW2_NON_CLIENT_REGION_KIND * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE QueryNonClientRegion(
            /* [in] */ COREWEBVIEW2_NON_CLIENT_REGION_KIND kind,
            /* [retval][out] */ ICoreWebView2RegionRectCollectionView * *rects) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_NonClientRegionChanged(
            /* [in] */ ICoreWebView2NonClientRegionChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_NonClientRegionChanged(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CompositionController4Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CompositionController4 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CompositionController4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_RootVisualTarget)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RootVisualTarget)(
            ICoreWebView2CompositionController4 *This,
            /* [retval][out] */ IUnknown **target);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, put_RootVisualTarget)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_RootVisualTarget)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ IUnknown *target);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, SendMouseInput)
        HRESULT(STDMETHODCALLTYPE *SendMouseInput)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_KIND eventKind,
            /* [in] */ COREWEBVIEW2_MOUSE_EVENT_VIRTUAL_KEYS virtualKeys,
            /* [in] */ UINT32 mouseData,
            /* [in] */ POINT point);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, SendPointerInput)
        HRESULT(STDMETHODCALLTYPE *SendPointerInput)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ COREWEBVIEW2_POINTER_EVENT_KIND eventKind,
            /* [in] */ ICoreWebView2PointerInfo *pointerInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_Cursor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cursor)(
            ICoreWebView2CompositionController4 *This,
            /* [retval][out] */ HCURSOR *cursor);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, get_SystemCursorId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SystemCursorId)(
            ICoreWebView2CompositionController4 *This,
            /* [retval][out] */ UINT32 *systemCursorId);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, add_CursorChanged)
        HRESULT(STDMETHODCALLTYPE *add_CursorChanged)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ ICoreWebView2CursorChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController, remove_CursorChanged)
        HRESULT(STDMETHODCALLTYPE *remove_CursorChanged)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController2, get_AutomationProvider)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AutomationProvider)(
            ICoreWebView2CompositionController4 *This,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController3, DragEnter)
        HRESULT(STDMETHODCALLTYPE *DragEnter)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ IDataObject *dataObject,
            /* [in] */ DWORD keyState,
            /* [in] */ POINT point,
            /* [retval][out] */ DWORD *effect);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController3, DragLeave)
        HRESULT(STDMETHODCALLTYPE *DragLeave)(
            ICoreWebView2CompositionController4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController3, DragOver)
        HRESULT(STDMETHODCALLTYPE *DragOver)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ DWORD keyState,
            /* [in] */ POINT point,
            /* [retval][out] */ DWORD *effect);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController3, Drop)
        HRESULT(STDMETHODCALLTYPE *Drop)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ IDataObject *dataObject,
            /* [in] */ DWORD keyState,
            /* [in] */ POINT point,
            /* [retval][out] */ DWORD *effect);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController4, GetNonClientRegionAtPoint)
        HRESULT(STDMETHODCALLTYPE *GetNonClientRegionAtPoint)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ POINT point,
            /* [retval][out] */ COREWEBVIEW2_NON_CLIENT_REGION_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController4, QueryNonClientRegion)
        HRESULT(STDMETHODCALLTYPE *QueryNonClientRegion)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ COREWEBVIEW2_NON_CLIENT_REGION_KIND kind,
            /* [retval][out] */ ICoreWebView2RegionRectCollectionView **rects);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController4, add_NonClientRegionChanged)
        HRESULT(STDMETHODCALLTYPE *add_NonClientRegionChanged)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ ICoreWebView2NonClientRegionChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2CompositionController4, remove_NonClientRegionChanged)
        HRESULT(STDMETHODCALLTYPE *remove_NonClientRegionChanged)(
            ICoreWebView2CompositionController4 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2CompositionController4Vtbl;

    interface ICoreWebView2CompositionController4
    {
        CONST_VTBL struct ICoreWebView2CompositionController4Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CompositionController4_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CompositionController4_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CompositionController4_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CompositionController4_get_RootVisualTarget(This, target) \
    ((This)->lpVtbl->get_RootVisualTarget(This, target))

#define ICoreWebView2CompositionController4_put_RootVisualTarget(This, target) \
    ((This)->lpVtbl->put_RootVisualTarget(This, target))

#define ICoreWebView2CompositionController4_SendMouseInput(This, eventKind, virtualKeys, mouseData, point) \
    ((This)->lpVtbl->SendMouseInput(This, eventKind, virtualKeys, mouseData, point))

#define ICoreWebView2CompositionController4_SendPointerInput(This, eventKind, pointerInfo) \
    ((This)->lpVtbl->SendPointerInput(This, eventKind, pointerInfo))

#define ICoreWebView2CompositionController4_get_Cursor(This, cursor) \
    ((This)->lpVtbl->get_Cursor(This, cursor))

#define ICoreWebView2CompositionController4_get_SystemCursorId(This, systemCursorId) \
    ((This)->lpVtbl->get_SystemCursorId(This, systemCursorId))

#define ICoreWebView2CompositionController4_add_CursorChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_CursorChanged(This, eventHandler, token))

#define ICoreWebView2CompositionController4_remove_CursorChanged(This, token) \
    ((This)->lpVtbl->remove_CursorChanged(This, token))

#define ICoreWebView2CompositionController4_get_AutomationProvider(This, value) \
    ((This)->lpVtbl->get_AutomationProvider(This, value))

#define ICoreWebView2CompositionController4_DragEnter(This, dataObject, keyState, point, effect) \
    ((This)->lpVtbl->DragEnter(This, dataObject, keyState, point, effect))

#define ICoreWebView2CompositionController4_DragLeave(This) \
    ((This)->lpVtbl->DragLeave(This))

#define ICoreWebView2CompositionController4_DragOver(This, keyState, point, effect) \
    ((This)->lpVtbl->DragOver(This, keyState, point, effect))

#define ICoreWebView2CompositionController4_Drop(This, dataObject, keyState, point, effect) \
    ((This)->lpVtbl->Drop(This, dataObject, keyState, point, effect))

#define ICoreWebView2CompositionController4_GetNonClientRegionAtPoint(This, point, value) \
    ((This)->lpVtbl->GetNonClientRegionAtPoint(This, point, value))

#define ICoreWebView2CompositionController4_QueryNonClientRegion(This, kind, rects) \
    ((This)->lpVtbl->QueryNonClientRegion(This, kind, rects))

#define ICoreWebView2CompositionController4_add_NonClientRegionChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_NonClientRegionChanged(This, eventHandler, token))

#define ICoreWebView2CompositionController4_remove_NonClientRegionChanged(This, token) \
    ((This)->lpVtbl->remove_NonClientRegionChanged(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CompositionController4_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NonClientRegionChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2NonClientRegionChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2NonClientRegionChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NonClientRegionChangedEventHandler = {0x4a794e66, 0xaa6c, 0x46bd, {0x93, 0xa3, 0x38, 0x21, 0x96, 0x83, 0x76, 0x80}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4a794e66-aa6c-46bd-93a3-382196837680")
    ICoreWebView2NonClientRegionChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2CompositionController * sender,
            /* [in] */ ICoreWebView2NonClientRegionChangedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NonClientRegionChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NonClientRegionChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NonClientRegionChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NonClientRegionChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NonClientRegionChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2NonClientRegionChangedEventHandler *This,
            /* [in] */ ICoreWebView2CompositionController *sender,
            /* [in] */ ICoreWebView2NonClientRegionChangedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2NonClientRegionChangedEventHandlerVtbl;

    interface ICoreWebView2NonClientRegionChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2NonClientRegionChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NonClientRegionChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NonClientRegionChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NonClientRegionChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NonClientRegionChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NonClientRegionChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2RegionRectCollectionView_INTERFACE_DEFINED__
#define __ICoreWebView2RegionRectCollectionView_INTERFACE_DEFINED__

    /* interface ICoreWebView2RegionRectCollectionView */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2RegionRectCollectionView = {0x333353b8, 0x48bf, 0x4449, {0x8f, 0xcc, 0x22, 0x69, 0x7f, 0xaf, 0x57, 0x53}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("333353b8-48bf-4449-8fcc-22697faf5753")
    ICoreWebView2RegionRectCollectionView : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ RECT * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2RegionRectCollectionViewVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2RegionRectCollectionView *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2RegionRectCollectionView *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2RegionRectCollectionView *This);

        DECLSPEC_XFGVIRT(ICoreWebView2RegionRectCollectionView, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2RegionRectCollectionView *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2RegionRectCollectionView, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2RegionRectCollectionView *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ RECT *value);

        END_INTERFACE
    } ICoreWebView2RegionRectCollectionViewVtbl;

    interface ICoreWebView2RegionRectCollectionView
    {
        CONST_VTBL struct ICoreWebView2RegionRectCollectionViewVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2RegionRectCollectionView_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2RegionRectCollectionView_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2RegionRectCollectionView_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2RegionRectCollectionView_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2RegionRectCollectionView_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2RegionRectCollectionView_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ContentLoadingEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2ContentLoadingEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2ContentLoadingEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ContentLoadingEventArgs = {0x0c8a1275, 0x9b6b, 0x4901, {0x87, 0xad, 0x70, 0xdf, 0x25, 0xba, 0xfa, 0x6e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0c8a1275-9b6b-4901-87ad-70df25bafa6e")
    ICoreWebView2ContentLoadingEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsErrorPage(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NavigationId(
            /* [retval][out] */ UINT64 * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ContentLoadingEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ContentLoadingEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ContentLoadingEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ContentLoadingEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ContentLoadingEventArgs, get_IsErrorPage)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsErrorPage)(
            ICoreWebView2ContentLoadingEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContentLoadingEventArgs, get_NavigationId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NavigationId)(
            ICoreWebView2ContentLoadingEventArgs *This,
            /* [retval][out] */ UINT64 *value);

        END_INTERFACE
    } ICoreWebView2ContentLoadingEventArgsVtbl;

    interface ICoreWebView2ContentLoadingEventArgs
    {
        CONST_VTBL struct ICoreWebView2ContentLoadingEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ContentLoadingEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ContentLoadingEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ContentLoadingEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ContentLoadingEventArgs_get_IsErrorPage(This, value) \
    ((This)->lpVtbl->get_IsErrorPage(This, value))

#define ICoreWebView2ContentLoadingEventArgs_get_NavigationId(This, value) \
    ((This)->lpVtbl->get_NavigationId(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ContentLoadingEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuItem_INTERFACE_DEFINED__
#define __ICoreWebView2ContextMenuItem_INTERFACE_DEFINED__

    /* interface ICoreWebView2ContextMenuItem */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ContextMenuItem = {0x7aed49e3, 0xa93f, 0x497a, {0x81, 0x1c, 0x74, 0x9c, 0x6b, 0x6b, 0x6c, 0x65}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7aed49e3-a93f-497a-811c-749c6b6b6c65")
    ICoreWebView2ContextMenuItem : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Label(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CommandId(
            /* [retval][out] */ INT32 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShortcutKeyDescription(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Icon(
            /* [retval][out] */ IStream * *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Kind(
            /* [retval][out] */ COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsEnabled(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsChecked(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsChecked(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Children(
            /* [retval][out] */ ICoreWebView2ContextMenuItemCollection * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_CustomItemSelected(
            /* [in] */ ICoreWebView2CustomItemSelectedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_CustomItemSelected(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ContextMenuItemVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ContextMenuItem *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ContextMenuItem *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ContextMenuItem *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2ContextMenuItem *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, get_Label)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Label)(
            ICoreWebView2ContextMenuItem *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, get_CommandId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CommandId)(
            ICoreWebView2ContextMenuItem *This,
            /* [retval][out] */ INT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, get_ShortcutKeyDescription)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShortcutKeyDescription)(
            ICoreWebView2ContextMenuItem *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, get_Icon)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Icon)(
            ICoreWebView2ContextMenuItem *This,
            /* [retval][out] */ IStream **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, get_Kind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Kind)(
            ICoreWebView2ContextMenuItem *This,
            /* [retval][out] */ COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, put_IsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsEnabled)(
            ICoreWebView2ContextMenuItem *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, get_IsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsEnabled)(
            ICoreWebView2ContextMenuItem *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, put_IsChecked)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsChecked)(
            ICoreWebView2ContextMenuItem *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, get_IsChecked)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsChecked)(
            ICoreWebView2ContextMenuItem *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, get_Children)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Children)(
            ICoreWebView2ContextMenuItem *This,
            /* [retval][out] */ ICoreWebView2ContextMenuItemCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, add_CustomItemSelected)
        HRESULT(STDMETHODCALLTYPE *add_CustomItemSelected)(
            ICoreWebView2ContextMenuItem *This,
            /* [in] */ ICoreWebView2CustomItemSelectedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItem, remove_CustomItemSelected)
        HRESULT(STDMETHODCALLTYPE *remove_CustomItemSelected)(
            ICoreWebView2ContextMenuItem *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2ContextMenuItemVtbl;

    interface ICoreWebView2ContextMenuItem
    {
        CONST_VTBL struct ICoreWebView2ContextMenuItemVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ContextMenuItem_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ContextMenuItem_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ContextMenuItem_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ContextMenuItem_get_Name(This, value) \
    ((This)->lpVtbl->get_Name(This, value))

#define ICoreWebView2ContextMenuItem_get_Label(This, value) \
    ((This)->lpVtbl->get_Label(This, value))

#define ICoreWebView2ContextMenuItem_get_CommandId(This, value) \
    ((This)->lpVtbl->get_CommandId(This, value))

#define ICoreWebView2ContextMenuItem_get_ShortcutKeyDescription(This, value) \
    ((This)->lpVtbl->get_ShortcutKeyDescription(This, value))

#define ICoreWebView2ContextMenuItem_get_Icon(This, value) \
    ((This)->lpVtbl->get_Icon(This, value))

#define ICoreWebView2ContextMenuItem_get_Kind(This, value) \
    ((This)->lpVtbl->get_Kind(This, value))

#define ICoreWebView2ContextMenuItem_put_IsEnabled(This, value) \
    ((This)->lpVtbl->put_IsEnabled(This, value))

#define ICoreWebView2ContextMenuItem_get_IsEnabled(This, value) \
    ((This)->lpVtbl->get_IsEnabled(This, value))

#define ICoreWebView2ContextMenuItem_put_IsChecked(This, value) \
    ((This)->lpVtbl->put_IsChecked(This, value))

#define ICoreWebView2ContextMenuItem_get_IsChecked(This, value) \
    ((This)->lpVtbl->get_IsChecked(This, value))

#define ICoreWebView2ContextMenuItem_get_Children(This, value) \
    ((This)->lpVtbl->get_Children(This, value))

#define ICoreWebView2ContextMenuItem_add_CustomItemSelected(This, eventHandler, token) \
    ((This)->lpVtbl->add_CustomItemSelected(This, eventHandler, token))

#define ICoreWebView2ContextMenuItem_remove_CustomItemSelected(This, token) \
    ((This)->lpVtbl->remove_CustomItemSelected(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ContextMenuItem_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CustomItemSelectedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2CustomItemSelectedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2CustomItemSelectedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CustomItemSelectedEventHandler = {0x49e1d0bc, 0xfe9e, 0x4481, {0xb7, 0xc2, 0x32, 0x32, 0x4a, 0xa2, 0x19, 0x98}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("49e1d0bc-fe9e-4481-b7c2-32324aa21998")
    ICoreWebView2CustomItemSelectedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2ContextMenuItem * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CustomItemSelectedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CustomItemSelectedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CustomItemSelectedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CustomItemSelectedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CustomItemSelectedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2CustomItemSelectedEventHandler *This,
            /* [in] */ ICoreWebView2ContextMenuItem *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2CustomItemSelectedEventHandlerVtbl;

    interface ICoreWebView2CustomItemSelectedEventHandler
    {
        CONST_VTBL struct ICoreWebView2CustomItemSelectedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CustomItemSelectedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CustomItemSelectedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CustomItemSelectedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CustomItemSelectedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CustomItemSelectedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuItemCollection_INTERFACE_DEFINED__
#define __ICoreWebView2ContextMenuItemCollection_INTERFACE_DEFINED__

    /* interface ICoreWebView2ContextMenuItemCollection */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ContextMenuItemCollection = {0xf562a2f5, 0xc415, 0x45cf, {0xb9, 0x09, 0xd4, 0xb7, 0xc1, 0xe2, 0x76, 0xd3}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f562a2f5-c415-45cf-b909-d4b7c1e276d3")
    ICoreWebView2ContextMenuItemCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2ContextMenuItem * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE RemoveValueAtIndex(
            /* [in] */ UINT32 index) = 0;

        virtual HRESULT STDMETHODCALLTYPE InsertValueAtIndex(
            /* [in] */ UINT32 index,
            /* [in] */ ICoreWebView2ContextMenuItem * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ContextMenuItemCollectionVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ContextMenuItemCollection *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ContextMenuItemCollection *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ContextMenuItemCollection *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItemCollection, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2ContextMenuItemCollection *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItemCollection, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2ContextMenuItemCollection *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2ContextMenuItem **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItemCollection, RemoveValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *RemoveValueAtIndex)(
            ICoreWebView2ContextMenuItemCollection *This,
            /* [in] */ UINT32 index);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuItemCollection, InsertValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *InsertValueAtIndex)(
            ICoreWebView2ContextMenuItemCollection *This,
            /* [in] */ UINT32 index,
            /* [in] */ ICoreWebView2ContextMenuItem *value);

        END_INTERFACE
    } ICoreWebView2ContextMenuItemCollectionVtbl;

    interface ICoreWebView2ContextMenuItemCollection
    {
        CONST_VTBL struct ICoreWebView2ContextMenuItemCollectionVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ContextMenuItemCollection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ContextMenuItemCollection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ContextMenuItemCollection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ContextMenuItemCollection_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2ContextMenuItemCollection_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#define ICoreWebView2ContextMenuItemCollection_RemoveValueAtIndex(This, index) \
    ((This)->lpVtbl->RemoveValueAtIndex(This, index))

#define ICoreWebView2ContextMenuItemCollection_InsertValueAtIndex(This, index, value) \
    ((This)->lpVtbl->InsertValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ContextMenuItemCollection_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuRequestedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2ContextMenuRequestedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2ContextMenuRequestedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ContextMenuRequestedEventArgs = {0xa1d309ee, 0xc03f, 0x11eb, {0x85, 0x29, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("a1d309ee-c03f-11eb-8529-0242ac130003")
    ICoreWebView2ContextMenuRequestedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MenuItems(
            /* [retval][out] */ ICoreWebView2ContextMenuItemCollection * *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ContextMenuTarget(
            /* [retval][out] */ ICoreWebView2ContextMenuTarget * *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Location(
            /* [retval][out] */ POINT * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SelectedCommandId(
            /* [in] */ INT32 value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SelectedCommandId(
            /* [retval][out] */ INT32 * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handled(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ContextMenuRequestedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ContextMenuRequestedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ContextMenuRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ContextMenuRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuRequestedEventArgs, get_MenuItems)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MenuItems)(
            ICoreWebView2ContextMenuRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2ContextMenuItemCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuRequestedEventArgs, get_ContextMenuTarget)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContextMenuTarget)(
            ICoreWebView2ContextMenuRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2ContextMenuTarget **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuRequestedEventArgs, get_Location)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Location)(
            ICoreWebView2ContextMenuRequestedEventArgs *This,
            /* [retval][out] */ POINT *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuRequestedEventArgs, put_SelectedCommandId)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_SelectedCommandId)(
            ICoreWebView2ContextMenuRequestedEventArgs *This,
            /* [in] */ INT32 value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuRequestedEventArgs, get_SelectedCommandId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SelectedCommandId)(
            ICoreWebView2ContextMenuRequestedEventArgs *This,
            /* [retval][out] */ INT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuRequestedEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2ContextMenuRequestedEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuRequestedEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2ContextMenuRequestedEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2ContextMenuRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        END_INTERFACE
    } ICoreWebView2ContextMenuRequestedEventArgsVtbl;

    interface ICoreWebView2ContextMenuRequestedEventArgs
    {
        CONST_VTBL struct ICoreWebView2ContextMenuRequestedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ContextMenuRequestedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ContextMenuRequestedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ContextMenuRequestedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ContextMenuRequestedEventArgs_get_MenuItems(This, value) \
    ((This)->lpVtbl->get_MenuItems(This, value))

#define ICoreWebView2ContextMenuRequestedEventArgs_get_ContextMenuTarget(This, value) \
    ((This)->lpVtbl->get_ContextMenuTarget(This, value))

#define ICoreWebView2ContextMenuRequestedEventArgs_get_Location(This, value) \
    ((This)->lpVtbl->get_Location(This, value))

#define ICoreWebView2ContextMenuRequestedEventArgs_put_SelectedCommandId(This, value) \
    ((This)->lpVtbl->put_SelectedCommandId(This, value))

#define ICoreWebView2ContextMenuRequestedEventArgs_get_SelectedCommandId(This, value) \
    ((This)->lpVtbl->get_SelectedCommandId(This, value))

#define ICoreWebView2ContextMenuRequestedEventArgs_put_Handled(This, value) \
    ((This)->lpVtbl->put_Handled(This, value))

#define ICoreWebView2ContextMenuRequestedEventArgs_get_Handled(This, value) \
    ((This)->lpVtbl->get_Handled(This, value))

#define ICoreWebView2ContextMenuRequestedEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ContextMenuRequestedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ContextMenuTarget_INTERFACE_DEFINED__
#define __ICoreWebView2ContextMenuTarget_INTERFACE_DEFINED__

    /* interface ICoreWebView2ContextMenuTarget */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ContextMenuTarget = {0xb8611d99, 0xeed6, 0x4f3f, {0x90, 0x2c, 0xa1, 0x98, 0x50, 0x2a, 0xd4, 0x72}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b8611d99-eed6-4f3f-902c-a198502ad472")
    ICoreWebView2ContextMenuTarget : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Kind(
            /* [retval][out] */ COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsEditable(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsRequestedForMainFrame(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PageUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FrameUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasLinkUri(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LinkUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasLinkText(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LinkText(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasSourceUri(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SourceUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasSelection(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SelectionText(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ContextMenuTargetVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ContextMenuTarget *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ContextMenuTarget *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ContextMenuTarget *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_Kind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Kind)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ COREWEBVIEW2_CONTEXT_MENU_TARGET_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_IsEditable)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsEditable)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_IsRequestedForMainFrame)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsRequestedForMainFrame)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_PageUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PageUri)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_FrameUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameUri)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_HasLinkUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HasLinkUri)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_LinkUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_LinkUri)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_HasLinkText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HasLinkText)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_LinkText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_LinkText)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_HasSourceUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HasSourceUri)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_SourceUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SourceUri)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_HasSelection)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HasSelection)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ContextMenuTarget, get_SelectionText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SelectionText)(
            ICoreWebView2ContextMenuTarget *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2ContextMenuTargetVtbl;

    interface ICoreWebView2ContextMenuTarget
    {
        CONST_VTBL struct ICoreWebView2ContextMenuTargetVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ContextMenuTarget_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ContextMenuTarget_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ContextMenuTarget_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ContextMenuTarget_get_Kind(This, value) \
    ((This)->lpVtbl->get_Kind(This, value))

#define ICoreWebView2ContextMenuTarget_get_IsEditable(This, value) \
    ((This)->lpVtbl->get_IsEditable(This, value))

#define ICoreWebView2ContextMenuTarget_get_IsRequestedForMainFrame(This, value) \
    ((This)->lpVtbl->get_IsRequestedForMainFrame(This, value))

#define ICoreWebView2ContextMenuTarget_get_PageUri(This, value) \
    ((This)->lpVtbl->get_PageUri(This, value))

#define ICoreWebView2ContextMenuTarget_get_FrameUri(This, value) \
    ((This)->lpVtbl->get_FrameUri(This, value))

#define ICoreWebView2ContextMenuTarget_get_HasLinkUri(This, value) \
    ((This)->lpVtbl->get_HasLinkUri(This, value))

#define ICoreWebView2ContextMenuTarget_get_LinkUri(This, value) \
    ((This)->lpVtbl->get_LinkUri(This, value))

#define ICoreWebView2ContextMenuTarget_get_HasLinkText(This, value) \
    ((This)->lpVtbl->get_HasLinkText(This, value))

#define ICoreWebView2ContextMenuTarget_get_LinkText(This, value) \
    ((This)->lpVtbl->get_LinkText(This, value))

#define ICoreWebView2ContextMenuTarget_get_HasSourceUri(This, value) \
    ((This)->lpVtbl->get_HasSourceUri(This, value))

#define ICoreWebView2ContextMenuTarget_get_SourceUri(This, value) \
    ((This)->lpVtbl->get_SourceUri(This, value))

#define ICoreWebView2ContextMenuTarget_get_HasSelection(This, value) \
    ((This)->lpVtbl->get_HasSelection(This, value))

#define ICoreWebView2ContextMenuTarget_get_SelectionText(This, value) \
    ((This)->lpVtbl->get_SelectionText(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ContextMenuTarget_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Controller_INTERFACE_DEFINED__
#define __ICoreWebView2Controller_INTERFACE_DEFINED__

    /* interface ICoreWebView2Controller */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Controller = {0x4d00c0d1, 0x9434, 0x4eb6, {0x80, 0x78, 0x86, 0x97, 0xa5, 0x60, 0x33, 0x4f}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4d00c0d1-9434-4eb6-8078-8697a560334f")
    ICoreWebView2Controller : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsVisible(
            /* [retval][out] */ BOOL * isVisible) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsVisible(
            /* [in] */ BOOL isVisible) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Bounds(
            /* [retval][out] */ RECT * bounds) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Bounds(
            /* [in] */ RECT bounds) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ZoomFactor(
            /* [retval][out] */ double *zoomFactor) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ZoomFactor(
            /* [in] */ double zoomFactor) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_ZoomFactorChanged(
            /* [in] */ ICoreWebView2ZoomFactorChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ZoomFactorChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE SetBoundsAndZoomFactor(
            /* [in] */ RECT bounds,
            /* [in] */ double zoomFactor) = 0;

        virtual HRESULT STDMETHODCALLTYPE MoveFocus(
            /* [in] */ COREWEBVIEW2_MOVE_FOCUS_REASON reason) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_MoveFocusRequested(
            /* [in] */ ICoreWebView2MoveFocusRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_MoveFocusRequested(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_GotFocus(
            /* [in] */ ICoreWebView2FocusChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_GotFocus(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_LostFocus(
            /* [in] */ ICoreWebView2FocusChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_LostFocus(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_AcceleratorKeyPressed(
            /* [in] */ ICoreWebView2AcceleratorKeyPressedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_AcceleratorKeyPressed(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ParentWindow(
            /* [retval][out] */ HWND * parentWindow) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ParentWindow(
            /* [in] */ HWND parentWindow) = 0;

        virtual HRESULT STDMETHODCALLTYPE NotifyParentWindowPositionChanged(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE Close(void) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CoreWebView2(
            /* [retval][out] */ ICoreWebView2 * *coreWebView2) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ControllerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Controller *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Controller *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Controller *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_IsVisible)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsVisible)(
            ICoreWebView2Controller *This,
            /* [retval][out] */ BOOL *isVisible);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_IsVisible)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsVisible)(
            ICoreWebView2Controller *This,
            /* [in] */ BOOL isVisible);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_Bounds)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Bounds)(
            ICoreWebView2Controller *This,
            /* [retval][out] */ RECT *bounds);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_Bounds)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Bounds)(
            ICoreWebView2Controller *This,
            /* [in] */ RECT bounds);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_ZoomFactor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ZoomFactor)(
            ICoreWebView2Controller *This,
            /* [retval][out] */ double *zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_ZoomFactor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ZoomFactor)(
            ICoreWebView2Controller *This,
            /* [in] */ double zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_ZoomFactorChanged)
        HRESULT(STDMETHODCALLTYPE *add_ZoomFactorChanged)(
            ICoreWebView2Controller *This,
            /* [in] */ ICoreWebView2ZoomFactorChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_ZoomFactorChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ZoomFactorChanged)(
            ICoreWebView2Controller *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, SetBoundsAndZoomFactor)
        HRESULT(STDMETHODCALLTYPE *SetBoundsAndZoomFactor)(
            ICoreWebView2Controller *This,
            /* [in] */ RECT bounds,
            /* [in] */ double zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, MoveFocus)
        HRESULT(STDMETHODCALLTYPE *MoveFocus)(
            ICoreWebView2Controller *This,
            /* [in] */ COREWEBVIEW2_MOVE_FOCUS_REASON reason);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_MoveFocusRequested)
        HRESULT(STDMETHODCALLTYPE *add_MoveFocusRequested)(
            ICoreWebView2Controller *This,
            /* [in] */ ICoreWebView2MoveFocusRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_MoveFocusRequested)
        HRESULT(STDMETHODCALLTYPE *remove_MoveFocusRequested)(
            ICoreWebView2Controller *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_GotFocus)
        HRESULT(STDMETHODCALLTYPE *add_GotFocus)(
            ICoreWebView2Controller *This,
            /* [in] */ ICoreWebView2FocusChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_GotFocus)
        HRESULT(STDMETHODCALLTYPE *remove_GotFocus)(
            ICoreWebView2Controller *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_LostFocus)
        HRESULT(STDMETHODCALLTYPE *add_LostFocus)(
            ICoreWebView2Controller *This,
            /* [in] */ ICoreWebView2FocusChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_LostFocus)
        HRESULT(STDMETHODCALLTYPE *remove_LostFocus)(
            ICoreWebView2Controller *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_AcceleratorKeyPressed)
        HRESULT(STDMETHODCALLTYPE *add_AcceleratorKeyPressed)(
            ICoreWebView2Controller *This,
            /* [in] */ ICoreWebView2AcceleratorKeyPressedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_AcceleratorKeyPressed)
        HRESULT(STDMETHODCALLTYPE *remove_AcceleratorKeyPressed)(
            ICoreWebView2Controller *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_ParentWindow)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ParentWindow)(
            ICoreWebView2Controller *This,
            /* [retval][out] */ HWND *parentWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_ParentWindow)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ParentWindow)(
            ICoreWebView2Controller *This,
            /* [in] */ HWND parentWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, NotifyParentWindowPositionChanged)
        HRESULT(STDMETHODCALLTYPE *NotifyParentWindowPositionChanged)(
            ICoreWebView2Controller *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, Close)
        HRESULT(STDMETHODCALLTYPE *Close)(
            ICoreWebView2Controller *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_CoreWebView2)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CoreWebView2)(
            ICoreWebView2Controller *This,
            /* [retval][out] */ ICoreWebView2 **coreWebView2);

        END_INTERFACE
    } ICoreWebView2ControllerVtbl;

    interface ICoreWebView2Controller
    {
        CONST_VTBL struct ICoreWebView2ControllerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Controller_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Controller_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Controller_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Controller_get_IsVisible(This, isVisible) \
    ((This)->lpVtbl->get_IsVisible(This, isVisible))

#define ICoreWebView2Controller_put_IsVisible(This, isVisible) \
    ((This)->lpVtbl->put_IsVisible(This, isVisible))

#define ICoreWebView2Controller_get_Bounds(This, bounds) \
    ((This)->lpVtbl->get_Bounds(This, bounds))

#define ICoreWebView2Controller_put_Bounds(This, bounds) \
    ((This)->lpVtbl->put_Bounds(This, bounds))

#define ICoreWebView2Controller_get_ZoomFactor(This, zoomFactor) \
    ((This)->lpVtbl->get_ZoomFactor(This, zoomFactor))

#define ICoreWebView2Controller_put_ZoomFactor(This, zoomFactor) \
    ((This)->lpVtbl->put_ZoomFactor(This, zoomFactor))

#define ICoreWebView2Controller_add_ZoomFactorChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ZoomFactorChanged(This, eventHandler, token))

#define ICoreWebView2Controller_remove_ZoomFactorChanged(This, token) \
    ((This)->lpVtbl->remove_ZoomFactorChanged(This, token))

#define ICoreWebView2Controller_SetBoundsAndZoomFactor(This, bounds, zoomFactor) \
    ((This)->lpVtbl->SetBoundsAndZoomFactor(This, bounds, zoomFactor))

#define ICoreWebView2Controller_MoveFocus(This, reason) \
    ((This)->lpVtbl->MoveFocus(This, reason))

#define ICoreWebView2Controller_add_MoveFocusRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_MoveFocusRequested(This, eventHandler, token))

#define ICoreWebView2Controller_remove_MoveFocusRequested(This, token) \
    ((This)->lpVtbl->remove_MoveFocusRequested(This, token))

#define ICoreWebView2Controller_add_GotFocus(This, eventHandler, token) \
    ((This)->lpVtbl->add_GotFocus(This, eventHandler, token))

#define ICoreWebView2Controller_remove_GotFocus(This, token) \
    ((This)->lpVtbl->remove_GotFocus(This, token))

#define ICoreWebView2Controller_add_LostFocus(This, eventHandler, token) \
    ((This)->lpVtbl->add_LostFocus(This, eventHandler, token))

#define ICoreWebView2Controller_remove_LostFocus(This, token) \
    ((This)->lpVtbl->remove_LostFocus(This, token))

#define ICoreWebView2Controller_add_AcceleratorKeyPressed(This, eventHandler, token) \
    ((This)->lpVtbl->add_AcceleratorKeyPressed(This, eventHandler, token))

#define ICoreWebView2Controller_remove_AcceleratorKeyPressed(This, token) \
    ((This)->lpVtbl->remove_AcceleratorKeyPressed(This, token))

#define ICoreWebView2Controller_get_ParentWindow(This, parentWindow) \
    ((This)->lpVtbl->get_ParentWindow(This, parentWindow))

#define ICoreWebView2Controller_put_ParentWindow(This, parentWindow) \
    ((This)->lpVtbl->put_ParentWindow(This, parentWindow))

#define ICoreWebView2Controller_NotifyParentWindowPositionChanged(This) \
    ((This)->lpVtbl->NotifyParentWindowPositionChanged(This))

#define ICoreWebView2Controller_Close(This) \
    ((This)->lpVtbl->Close(This))

#define ICoreWebView2Controller_get_CoreWebView2(This, coreWebView2) \
    ((This)->lpVtbl->get_CoreWebView2(This, coreWebView2))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Controller_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2AcceleratorKeyPressedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2AcceleratorKeyPressedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2AcceleratorKeyPressedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2AcceleratorKeyPressedEventHandler = {0xb29c7e28, 0xfa79, 0x41a8, {0x8e, 0x44, 0x65, 0x81, 0x1c, 0x76, 0xdc, 0xb2}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b29c7e28-fa79-41a8-8e44-65811c76dcb2")
    ICoreWebView2AcceleratorKeyPressedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Controller * sender,
            /* [in] */ ICoreWebView2AcceleratorKeyPressedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2AcceleratorKeyPressedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2AcceleratorKeyPressedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2AcceleratorKeyPressedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2AcceleratorKeyPressedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2AcceleratorKeyPressedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2AcceleratorKeyPressedEventHandler *This,
            /* [in] */ ICoreWebView2Controller *sender,
            /* [in] */ ICoreWebView2AcceleratorKeyPressedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2AcceleratorKeyPressedEventHandlerVtbl;

    interface ICoreWebView2AcceleratorKeyPressedEventHandler
    {
        CONST_VTBL struct ICoreWebView2AcceleratorKeyPressedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2AcceleratorKeyPressedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2AcceleratorKeyPressedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2AcceleratorKeyPressedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2AcceleratorKeyPressedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2AcceleratorKeyPressedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FocusChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FocusChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FocusChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FocusChangedEventHandler = {0x05ea24bd, 0x6452, 0x4926, {0x90, 0x14, 0x4b, 0x82, 0xb4, 0x98, 0x13, 0x5d}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("05ea24bd-6452-4926-9014-4b82b498135d")
    ICoreWebView2FocusChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Controller * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FocusChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FocusChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FocusChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FocusChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FocusChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FocusChangedEventHandler *This,
            /* [in] */ ICoreWebView2Controller *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2FocusChangedEventHandlerVtbl;

    interface ICoreWebView2FocusChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FocusChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FocusChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FocusChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FocusChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FocusChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FocusChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2MoveFocusRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2MoveFocusRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2MoveFocusRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2MoveFocusRequestedEventHandler = {0x69035451, 0x6dc7, 0x4cb8, {0x9b, 0xce, 0xb2, 0xbd, 0x70, 0xad, 0x28, 0x9f}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("69035451-6dc7-4cb8-9bce-b2bd70ad289f")
    ICoreWebView2MoveFocusRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Controller * sender,
            /* [in] */ ICoreWebView2MoveFocusRequestedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2MoveFocusRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2MoveFocusRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2MoveFocusRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2MoveFocusRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2MoveFocusRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2MoveFocusRequestedEventHandler *This,
            /* [in] */ ICoreWebView2Controller *sender,
            /* [in] */ ICoreWebView2MoveFocusRequestedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2MoveFocusRequestedEventHandlerVtbl;

    interface ICoreWebView2MoveFocusRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2MoveFocusRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2MoveFocusRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2MoveFocusRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2MoveFocusRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2MoveFocusRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2MoveFocusRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ZoomFactorChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ZoomFactorChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ZoomFactorChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ZoomFactorChangedEventHandler = {0xb52d71d6, 0xc4df, 0x4543, {0xa9, 0x0c, 0x64, 0xa3, 0xe6, 0x0f, 0x38, 0xcb}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b52d71d6-c4df-4543-a90c-64a3e60f38cb")
    ICoreWebView2ZoomFactorChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Controller * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ZoomFactorChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ZoomFactorChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ZoomFactorChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ZoomFactorChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ZoomFactorChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ZoomFactorChangedEventHandler *This,
            /* [in] */ ICoreWebView2Controller *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2ZoomFactorChangedEventHandlerVtbl;

    interface ICoreWebView2ZoomFactorChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2ZoomFactorChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ZoomFactorChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ZoomFactorChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ZoomFactorChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ZoomFactorChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ZoomFactorChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Controller2_INTERFACE_DEFINED__
#define __ICoreWebView2Controller2_INTERFACE_DEFINED__

    /* interface ICoreWebView2Controller2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Controller2 = {0xc979903e, 0xd4ca, 0x4228, {0x92, 0xeb, 0x47, 0xee, 0x3f, 0xa9, 0x6e, 0xab}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("c979903e-d4ca-4228-92eb-47ee3fa96eab")
    ICoreWebView2Controller2 : public ICoreWebView2Controller
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultBackgroundColor(
            /* [retval][out] */ COREWEBVIEW2_COLOR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_DefaultBackgroundColor(
            /* [in] */ COREWEBVIEW2_COLOR value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Controller2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Controller2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Controller2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Controller2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_IsVisible)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsVisible)(
            ICoreWebView2Controller2 *This,
            /* [retval][out] */ BOOL *isVisible);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_IsVisible)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsVisible)(
            ICoreWebView2Controller2 *This,
            /* [in] */ BOOL isVisible);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_Bounds)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Bounds)(
            ICoreWebView2Controller2 *This,
            /* [retval][out] */ RECT *bounds);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_Bounds)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Bounds)(
            ICoreWebView2Controller2 *This,
            /* [in] */ RECT bounds);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_ZoomFactor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ZoomFactor)(
            ICoreWebView2Controller2 *This,
            /* [retval][out] */ double *zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_ZoomFactor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ZoomFactor)(
            ICoreWebView2Controller2 *This,
            /* [in] */ double zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_ZoomFactorChanged)
        HRESULT(STDMETHODCALLTYPE *add_ZoomFactorChanged)(
            ICoreWebView2Controller2 *This,
            /* [in] */ ICoreWebView2ZoomFactorChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_ZoomFactorChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ZoomFactorChanged)(
            ICoreWebView2Controller2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, SetBoundsAndZoomFactor)
        HRESULT(STDMETHODCALLTYPE *SetBoundsAndZoomFactor)(
            ICoreWebView2Controller2 *This,
            /* [in] */ RECT bounds,
            /* [in] */ double zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, MoveFocus)
        HRESULT(STDMETHODCALLTYPE *MoveFocus)(
            ICoreWebView2Controller2 *This,
            /* [in] */ COREWEBVIEW2_MOVE_FOCUS_REASON reason);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_MoveFocusRequested)
        HRESULT(STDMETHODCALLTYPE *add_MoveFocusRequested)(
            ICoreWebView2Controller2 *This,
            /* [in] */ ICoreWebView2MoveFocusRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_MoveFocusRequested)
        HRESULT(STDMETHODCALLTYPE *remove_MoveFocusRequested)(
            ICoreWebView2Controller2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_GotFocus)
        HRESULT(STDMETHODCALLTYPE *add_GotFocus)(
            ICoreWebView2Controller2 *This,
            /* [in] */ ICoreWebView2FocusChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_GotFocus)
        HRESULT(STDMETHODCALLTYPE *remove_GotFocus)(
            ICoreWebView2Controller2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_LostFocus)
        HRESULT(STDMETHODCALLTYPE *add_LostFocus)(
            ICoreWebView2Controller2 *This,
            /* [in] */ ICoreWebView2FocusChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_LostFocus)
        HRESULT(STDMETHODCALLTYPE *remove_LostFocus)(
            ICoreWebView2Controller2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_AcceleratorKeyPressed)
        HRESULT(STDMETHODCALLTYPE *add_AcceleratorKeyPressed)(
            ICoreWebView2Controller2 *This,
            /* [in] */ ICoreWebView2AcceleratorKeyPressedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_AcceleratorKeyPressed)
        HRESULT(STDMETHODCALLTYPE *remove_AcceleratorKeyPressed)(
            ICoreWebView2Controller2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_ParentWindow)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ParentWindow)(
            ICoreWebView2Controller2 *This,
            /* [retval][out] */ HWND *parentWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_ParentWindow)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ParentWindow)(
            ICoreWebView2Controller2 *This,
            /* [in] */ HWND parentWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, NotifyParentWindowPositionChanged)
        HRESULT(STDMETHODCALLTYPE *NotifyParentWindowPositionChanged)(
            ICoreWebView2Controller2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, Close)
        HRESULT(STDMETHODCALLTYPE *Close)(
            ICoreWebView2Controller2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_CoreWebView2)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CoreWebView2)(
            ICoreWebView2Controller2 *This,
            /* [retval][out] */ ICoreWebView2 **coreWebView2);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller2, get_DefaultBackgroundColor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultBackgroundColor)(
            ICoreWebView2Controller2 *This,
            /* [retval][out] */ COREWEBVIEW2_COLOR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller2, put_DefaultBackgroundColor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultBackgroundColor)(
            ICoreWebView2Controller2 *This,
            /* [in] */ COREWEBVIEW2_COLOR value);

        END_INTERFACE
    } ICoreWebView2Controller2Vtbl;

    interface ICoreWebView2Controller2
    {
        CONST_VTBL struct ICoreWebView2Controller2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Controller2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Controller2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Controller2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Controller2_get_IsVisible(This, isVisible) \
    ((This)->lpVtbl->get_IsVisible(This, isVisible))

#define ICoreWebView2Controller2_put_IsVisible(This, isVisible) \
    ((This)->lpVtbl->put_IsVisible(This, isVisible))

#define ICoreWebView2Controller2_get_Bounds(This, bounds) \
    ((This)->lpVtbl->get_Bounds(This, bounds))

#define ICoreWebView2Controller2_put_Bounds(This, bounds) \
    ((This)->lpVtbl->put_Bounds(This, bounds))

#define ICoreWebView2Controller2_get_ZoomFactor(This, zoomFactor) \
    ((This)->lpVtbl->get_ZoomFactor(This, zoomFactor))

#define ICoreWebView2Controller2_put_ZoomFactor(This, zoomFactor) \
    ((This)->lpVtbl->put_ZoomFactor(This, zoomFactor))

#define ICoreWebView2Controller2_add_ZoomFactorChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ZoomFactorChanged(This, eventHandler, token))

#define ICoreWebView2Controller2_remove_ZoomFactorChanged(This, token) \
    ((This)->lpVtbl->remove_ZoomFactorChanged(This, token))

#define ICoreWebView2Controller2_SetBoundsAndZoomFactor(This, bounds, zoomFactor) \
    ((This)->lpVtbl->SetBoundsAndZoomFactor(This, bounds, zoomFactor))

#define ICoreWebView2Controller2_MoveFocus(This, reason) \
    ((This)->lpVtbl->MoveFocus(This, reason))

#define ICoreWebView2Controller2_add_MoveFocusRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_MoveFocusRequested(This, eventHandler, token))

#define ICoreWebView2Controller2_remove_MoveFocusRequested(This, token) \
    ((This)->lpVtbl->remove_MoveFocusRequested(This, token))

#define ICoreWebView2Controller2_add_GotFocus(This, eventHandler, token) \
    ((This)->lpVtbl->add_GotFocus(This, eventHandler, token))

#define ICoreWebView2Controller2_remove_GotFocus(This, token) \
    ((This)->lpVtbl->remove_GotFocus(This, token))

#define ICoreWebView2Controller2_add_LostFocus(This, eventHandler, token) \
    ((This)->lpVtbl->add_LostFocus(This, eventHandler, token))

#define ICoreWebView2Controller2_remove_LostFocus(This, token) \
    ((This)->lpVtbl->remove_LostFocus(This, token))

#define ICoreWebView2Controller2_add_AcceleratorKeyPressed(This, eventHandler, token) \
    ((This)->lpVtbl->add_AcceleratorKeyPressed(This, eventHandler, token))

#define ICoreWebView2Controller2_remove_AcceleratorKeyPressed(This, token) \
    ((This)->lpVtbl->remove_AcceleratorKeyPressed(This, token))

#define ICoreWebView2Controller2_get_ParentWindow(This, parentWindow) \
    ((This)->lpVtbl->get_ParentWindow(This, parentWindow))

#define ICoreWebView2Controller2_put_ParentWindow(This, parentWindow) \
    ((This)->lpVtbl->put_ParentWindow(This, parentWindow))

#define ICoreWebView2Controller2_NotifyParentWindowPositionChanged(This) \
    ((This)->lpVtbl->NotifyParentWindowPositionChanged(This))

#define ICoreWebView2Controller2_Close(This) \
    ((This)->lpVtbl->Close(This))

#define ICoreWebView2Controller2_get_CoreWebView2(This, coreWebView2) \
    ((This)->lpVtbl->get_CoreWebView2(This, coreWebView2))

#define ICoreWebView2Controller2_get_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->get_DefaultBackgroundColor(This, value))

#define ICoreWebView2Controller2_put_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->put_DefaultBackgroundColor(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Controller2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Controller3_INTERFACE_DEFINED__
#define __ICoreWebView2Controller3_INTERFACE_DEFINED__

    /* interface ICoreWebView2Controller3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Controller3 = {0xf9614724, 0x5d2b, 0x41dc, {0xae, 0xf7, 0x73, 0xd6, 0x2b, 0x51, 0x54, 0x3b}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f9614724-5d2b-41dc-aef7-73d62b51543b")
    ICoreWebView2Controller3 : public ICoreWebView2Controller2
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RasterizationScale(
            /* [retval][out] */ double *scale) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_RasterizationScale(
            /* [in] */ double scale) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShouldDetectMonitorScaleChanges(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ShouldDetectMonitorScaleChanges(
            /* [in] */ BOOL value) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_RasterizationScaleChanged(
            /* [in] */ ICoreWebView2RasterizationScaleChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_RasterizationScaleChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BoundsMode(
            /* [retval][out] */ COREWEBVIEW2_BOUNDS_MODE * boundsMode) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_BoundsMode(
            /* [in] */ COREWEBVIEW2_BOUNDS_MODE boundsMode) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Controller3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Controller3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Controller3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Controller3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_IsVisible)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsVisible)(
            ICoreWebView2Controller3 *This,
            /* [retval][out] */ BOOL *isVisible);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_IsVisible)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsVisible)(
            ICoreWebView2Controller3 *This,
            /* [in] */ BOOL isVisible);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_Bounds)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Bounds)(
            ICoreWebView2Controller3 *This,
            /* [retval][out] */ RECT *bounds);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_Bounds)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Bounds)(
            ICoreWebView2Controller3 *This,
            /* [in] */ RECT bounds);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_ZoomFactor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ZoomFactor)(
            ICoreWebView2Controller3 *This,
            /* [retval][out] */ double *zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_ZoomFactor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ZoomFactor)(
            ICoreWebView2Controller3 *This,
            /* [in] */ double zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_ZoomFactorChanged)
        HRESULT(STDMETHODCALLTYPE *add_ZoomFactorChanged)(
            ICoreWebView2Controller3 *This,
            /* [in] */ ICoreWebView2ZoomFactorChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_ZoomFactorChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ZoomFactorChanged)(
            ICoreWebView2Controller3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, SetBoundsAndZoomFactor)
        HRESULT(STDMETHODCALLTYPE *SetBoundsAndZoomFactor)(
            ICoreWebView2Controller3 *This,
            /* [in] */ RECT bounds,
            /* [in] */ double zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, MoveFocus)
        HRESULT(STDMETHODCALLTYPE *MoveFocus)(
            ICoreWebView2Controller3 *This,
            /* [in] */ COREWEBVIEW2_MOVE_FOCUS_REASON reason);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_MoveFocusRequested)
        HRESULT(STDMETHODCALLTYPE *add_MoveFocusRequested)(
            ICoreWebView2Controller3 *This,
            /* [in] */ ICoreWebView2MoveFocusRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_MoveFocusRequested)
        HRESULT(STDMETHODCALLTYPE *remove_MoveFocusRequested)(
            ICoreWebView2Controller3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_GotFocus)
        HRESULT(STDMETHODCALLTYPE *add_GotFocus)(
            ICoreWebView2Controller3 *This,
            /* [in] */ ICoreWebView2FocusChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_GotFocus)
        HRESULT(STDMETHODCALLTYPE *remove_GotFocus)(
            ICoreWebView2Controller3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_LostFocus)
        HRESULT(STDMETHODCALLTYPE *add_LostFocus)(
            ICoreWebView2Controller3 *This,
            /* [in] */ ICoreWebView2FocusChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_LostFocus)
        HRESULT(STDMETHODCALLTYPE *remove_LostFocus)(
            ICoreWebView2Controller3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_AcceleratorKeyPressed)
        HRESULT(STDMETHODCALLTYPE *add_AcceleratorKeyPressed)(
            ICoreWebView2Controller3 *This,
            /* [in] */ ICoreWebView2AcceleratorKeyPressedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_AcceleratorKeyPressed)
        HRESULT(STDMETHODCALLTYPE *remove_AcceleratorKeyPressed)(
            ICoreWebView2Controller3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_ParentWindow)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ParentWindow)(
            ICoreWebView2Controller3 *This,
            /* [retval][out] */ HWND *parentWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_ParentWindow)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ParentWindow)(
            ICoreWebView2Controller3 *This,
            /* [in] */ HWND parentWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, NotifyParentWindowPositionChanged)
        HRESULT(STDMETHODCALLTYPE *NotifyParentWindowPositionChanged)(
            ICoreWebView2Controller3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, Close)
        HRESULT(STDMETHODCALLTYPE *Close)(
            ICoreWebView2Controller3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_CoreWebView2)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CoreWebView2)(
            ICoreWebView2Controller3 *This,
            /* [retval][out] */ ICoreWebView2 **coreWebView2);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller2, get_DefaultBackgroundColor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultBackgroundColor)(
            ICoreWebView2Controller3 *This,
            /* [retval][out] */ COREWEBVIEW2_COLOR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller2, put_DefaultBackgroundColor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultBackgroundColor)(
            ICoreWebView2Controller3 *This,
            /* [in] */ COREWEBVIEW2_COLOR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, get_RasterizationScale)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RasterizationScale)(
            ICoreWebView2Controller3 *This,
            /* [retval][out] */ double *scale);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, put_RasterizationScale)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_RasterizationScale)(
            ICoreWebView2Controller3 *This,
            /* [in] */ double scale);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, get_ShouldDetectMonitorScaleChanges)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldDetectMonitorScaleChanges)(
            ICoreWebView2Controller3 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, put_ShouldDetectMonitorScaleChanges)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ShouldDetectMonitorScaleChanges)(
            ICoreWebView2Controller3 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, add_RasterizationScaleChanged)
        HRESULT(STDMETHODCALLTYPE *add_RasterizationScaleChanged)(
            ICoreWebView2Controller3 *This,
            /* [in] */ ICoreWebView2RasterizationScaleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, remove_RasterizationScaleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_RasterizationScaleChanged)(
            ICoreWebView2Controller3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, get_BoundsMode)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BoundsMode)(
            ICoreWebView2Controller3 *This,
            /* [retval][out] */ COREWEBVIEW2_BOUNDS_MODE *boundsMode);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, put_BoundsMode)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_BoundsMode)(
            ICoreWebView2Controller3 *This,
            /* [in] */ COREWEBVIEW2_BOUNDS_MODE boundsMode);

        END_INTERFACE
    } ICoreWebView2Controller3Vtbl;

    interface ICoreWebView2Controller3
    {
        CONST_VTBL struct ICoreWebView2Controller3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Controller3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Controller3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Controller3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Controller3_get_IsVisible(This, isVisible) \
    ((This)->lpVtbl->get_IsVisible(This, isVisible))

#define ICoreWebView2Controller3_put_IsVisible(This, isVisible) \
    ((This)->lpVtbl->put_IsVisible(This, isVisible))

#define ICoreWebView2Controller3_get_Bounds(This, bounds) \
    ((This)->lpVtbl->get_Bounds(This, bounds))

#define ICoreWebView2Controller3_put_Bounds(This, bounds) \
    ((This)->lpVtbl->put_Bounds(This, bounds))

#define ICoreWebView2Controller3_get_ZoomFactor(This, zoomFactor) \
    ((This)->lpVtbl->get_ZoomFactor(This, zoomFactor))

#define ICoreWebView2Controller3_put_ZoomFactor(This, zoomFactor) \
    ((This)->lpVtbl->put_ZoomFactor(This, zoomFactor))

#define ICoreWebView2Controller3_add_ZoomFactorChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ZoomFactorChanged(This, eventHandler, token))

#define ICoreWebView2Controller3_remove_ZoomFactorChanged(This, token) \
    ((This)->lpVtbl->remove_ZoomFactorChanged(This, token))

#define ICoreWebView2Controller3_SetBoundsAndZoomFactor(This, bounds, zoomFactor) \
    ((This)->lpVtbl->SetBoundsAndZoomFactor(This, bounds, zoomFactor))

#define ICoreWebView2Controller3_MoveFocus(This, reason) \
    ((This)->lpVtbl->MoveFocus(This, reason))

#define ICoreWebView2Controller3_add_MoveFocusRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_MoveFocusRequested(This, eventHandler, token))

#define ICoreWebView2Controller3_remove_MoveFocusRequested(This, token) \
    ((This)->lpVtbl->remove_MoveFocusRequested(This, token))

#define ICoreWebView2Controller3_add_GotFocus(This, eventHandler, token) \
    ((This)->lpVtbl->add_GotFocus(This, eventHandler, token))

#define ICoreWebView2Controller3_remove_GotFocus(This, token) \
    ((This)->lpVtbl->remove_GotFocus(This, token))

#define ICoreWebView2Controller3_add_LostFocus(This, eventHandler, token) \
    ((This)->lpVtbl->add_LostFocus(This, eventHandler, token))

#define ICoreWebView2Controller3_remove_LostFocus(This, token) \
    ((This)->lpVtbl->remove_LostFocus(This, token))

#define ICoreWebView2Controller3_add_AcceleratorKeyPressed(This, eventHandler, token) \
    ((This)->lpVtbl->add_AcceleratorKeyPressed(This, eventHandler, token))

#define ICoreWebView2Controller3_remove_AcceleratorKeyPressed(This, token) \
    ((This)->lpVtbl->remove_AcceleratorKeyPressed(This, token))

#define ICoreWebView2Controller3_get_ParentWindow(This, parentWindow) \
    ((This)->lpVtbl->get_ParentWindow(This, parentWindow))

#define ICoreWebView2Controller3_put_ParentWindow(This, parentWindow) \
    ((This)->lpVtbl->put_ParentWindow(This, parentWindow))

#define ICoreWebView2Controller3_NotifyParentWindowPositionChanged(This) \
    ((This)->lpVtbl->NotifyParentWindowPositionChanged(This))

#define ICoreWebView2Controller3_Close(This) \
    ((This)->lpVtbl->Close(This))

#define ICoreWebView2Controller3_get_CoreWebView2(This, coreWebView2) \
    ((This)->lpVtbl->get_CoreWebView2(This, coreWebView2))

#define ICoreWebView2Controller3_get_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->get_DefaultBackgroundColor(This, value))

#define ICoreWebView2Controller3_put_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->put_DefaultBackgroundColor(This, value))

#define ICoreWebView2Controller3_get_RasterizationScale(This, scale) \
    ((This)->lpVtbl->get_RasterizationScale(This, scale))

#define ICoreWebView2Controller3_put_RasterizationScale(This, scale) \
    ((This)->lpVtbl->put_RasterizationScale(This, scale))

#define ICoreWebView2Controller3_get_ShouldDetectMonitorScaleChanges(This, value) \
    ((This)->lpVtbl->get_ShouldDetectMonitorScaleChanges(This, value))

#define ICoreWebView2Controller3_put_ShouldDetectMonitorScaleChanges(This, value) \
    ((This)->lpVtbl->put_ShouldDetectMonitorScaleChanges(This, value))

#define ICoreWebView2Controller3_add_RasterizationScaleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_RasterizationScaleChanged(This, eventHandler, token))

#define ICoreWebView2Controller3_remove_RasterizationScaleChanged(This, token) \
    ((This)->lpVtbl->remove_RasterizationScaleChanged(This, token))

#define ICoreWebView2Controller3_get_BoundsMode(This, boundsMode) \
    ((This)->lpVtbl->get_BoundsMode(This, boundsMode))

#define ICoreWebView2Controller3_put_BoundsMode(This, boundsMode) \
    ((This)->lpVtbl->put_BoundsMode(This, boundsMode))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Controller3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2RasterizationScaleChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2RasterizationScaleChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2RasterizationScaleChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2RasterizationScaleChangedEventHandler = {0x9c98c8b1, 0xac53, 0x427e, {0xa3, 0x45, 0x30, 0x49, 0xb5, 0x52, 0x4b, 0xbe}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9c98c8b1-ac53-427e-a345-3049b5524bbe")
    ICoreWebView2RasterizationScaleChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Controller * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2RasterizationScaleChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2RasterizationScaleChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2RasterizationScaleChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2RasterizationScaleChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2RasterizationScaleChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2RasterizationScaleChangedEventHandler *This,
            /* [in] */ ICoreWebView2Controller *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2RasterizationScaleChangedEventHandlerVtbl;

    interface ICoreWebView2RasterizationScaleChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2RasterizationScaleChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2RasterizationScaleChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2RasterizationScaleChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2RasterizationScaleChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2RasterizationScaleChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2RasterizationScaleChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Controller4_INTERFACE_DEFINED__
#define __ICoreWebView2Controller4_INTERFACE_DEFINED__

    /* interface ICoreWebView2Controller4 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Controller4 = {0x97d418d5, 0xa426, 0x4e49, {0xa1, 0x51, 0xe1, 0xa1, 0x0f, 0x32, 0x7d, 0x9e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("97d418d5-a426-4e49-a151-e1a10f327d9e")
    ICoreWebView2Controller4 : public ICoreWebView2Controller3
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AllowExternalDrop(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AllowExternalDrop(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Controller4Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Controller4 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Controller4 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Controller4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_IsVisible)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsVisible)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ BOOL *isVisible);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_IsVisible)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsVisible)(
            ICoreWebView2Controller4 *This,
            /* [in] */ BOOL isVisible);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_Bounds)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Bounds)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ RECT *bounds);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_Bounds)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Bounds)(
            ICoreWebView2Controller4 *This,
            /* [in] */ RECT bounds);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_ZoomFactor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ZoomFactor)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ double *zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_ZoomFactor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ZoomFactor)(
            ICoreWebView2Controller4 *This,
            /* [in] */ double zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_ZoomFactorChanged)
        HRESULT(STDMETHODCALLTYPE *add_ZoomFactorChanged)(
            ICoreWebView2Controller4 *This,
            /* [in] */ ICoreWebView2ZoomFactorChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_ZoomFactorChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ZoomFactorChanged)(
            ICoreWebView2Controller4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, SetBoundsAndZoomFactor)
        HRESULT(STDMETHODCALLTYPE *SetBoundsAndZoomFactor)(
            ICoreWebView2Controller4 *This,
            /* [in] */ RECT bounds,
            /* [in] */ double zoomFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, MoveFocus)
        HRESULT(STDMETHODCALLTYPE *MoveFocus)(
            ICoreWebView2Controller4 *This,
            /* [in] */ COREWEBVIEW2_MOVE_FOCUS_REASON reason);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_MoveFocusRequested)
        HRESULT(STDMETHODCALLTYPE *add_MoveFocusRequested)(
            ICoreWebView2Controller4 *This,
            /* [in] */ ICoreWebView2MoveFocusRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_MoveFocusRequested)
        HRESULT(STDMETHODCALLTYPE *remove_MoveFocusRequested)(
            ICoreWebView2Controller4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_GotFocus)
        HRESULT(STDMETHODCALLTYPE *add_GotFocus)(
            ICoreWebView2Controller4 *This,
            /* [in] */ ICoreWebView2FocusChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_GotFocus)
        HRESULT(STDMETHODCALLTYPE *remove_GotFocus)(
            ICoreWebView2Controller4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_LostFocus)
        HRESULT(STDMETHODCALLTYPE *add_LostFocus)(
            ICoreWebView2Controller4 *This,
            /* [in] */ ICoreWebView2FocusChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_LostFocus)
        HRESULT(STDMETHODCALLTYPE *remove_LostFocus)(
            ICoreWebView2Controller4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, add_AcceleratorKeyPressed)
        HRESULT(STDMETHODCALLTYPE *add_AcceleratorKeyPressed)(
            ICoreWebView2Controller4 *This,
            /* [in] */ ICoreWebView2AcceleratorKeyPressedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, remove_AcceleratorKeyPressed)
        HRESULT(STDMETHODCALLTYPE *remove_AcceleratorKeyPressed)(
            ICoreWebView2Controller4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_ParentWindow)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ParentWindow)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ HWND *parentWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, put_ParentWindow)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ParentWindow)(
            ICoreWebView2Controller4 *This,
            /* [in] */ HWND parentWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, NotifyParentWindowPositionChanged)
        HRESULT(STDMETHODCALLTYPE *NotifyParentWindowPositionChanged)(
            ICoreWebView2Controller4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, Close)
        HRESULT(STDMETHODCALLTYPE *Close)(
            ICoreWebView2Controller4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller, get_CoreWebView2)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CoreWebView2)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ ICoreWebView2 **coreWebView2);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller2, get_DefaultBackgroundColor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultBackgroundColor)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ COREWEBVIEW2_COLOR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller2, put_DefaultBackgroundColor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultBackgroundColor)(
            ICoreWebView2Controller4 *This,
            /* [in] */ COREWEBVIEW2_COLOR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, get_RasterizationScale)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RasterizationScale)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ double *scale);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, put_RasterizationScale)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_RasterizationScale)(
            ICoreWebView2Controller4 *This,
            /* [in] */ double scale);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, get_ShouldDetectMonitorScaleChanges)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldDetectMonitorScaleChanges)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, put_ShouldDetectMonitorScaleChanges)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ShouldDetectMonitorScaleChanges)(
            ICoreWebView2Controller4 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, add_RasterizationScaleChanged)
        HRESULT(STDMETHODCALLTYPE *add_RasterizationScaleChanged)(
            ICoreWebView2Controller4 *This,
            /* [in] */ ICoreWebView2RasterizationScaleChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, remove_RasterizationScaleChanged)
        HRESULT(STDMETHODCALLTYPE *remove_RasterizationScaleChanged)(
            ICoreWebView2Controller4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, get_BoundsMode)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BoundsMode)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ COREWEBVIEW2_BOUNDS_MODE *boundsMode);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller3, put_BoundsMode)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_BoundsMode)(
            ICoreWebView2Controller4 *This,
            /* [in] */ COREWEBVIEW2_BOUNDS_MODE boundsMode);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller4, get_AllowExternalDrop)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AllowExternalDrop)(
            ICoreWebView2Controller4 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Controller4, put_AllowExternalDrop)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AllowExternalDrop)(
            ICoreWebView2Controller4 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2Controller4Vtbl;

    interface ICoreWebView2Controller4
    {
        CONST_VTBL struct ICoreWebView2Controller4Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Controller4_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Controller4_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Controller4_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Controller4_get_IsVisible(This, isVisible) \
    ((This)->lpVtbl->get_IsVisible(This, isVisible))

#define ICoreWebView2Controller4_put_IsVisible(This, isVisible) \
    ((This)->lpVtbl->put_IsVisible(This, isVisible))

#define ICoreWebView2Controller4_get_Bounds(This, bounds) \
    ((This)->lpVtbl->get_Bounds(This, bounds))

#define ICoreWebView2Controller4_put_Bounds(This, bounds) \
    ((This)->lpVtbl->put_Bounds(This, bounds))

#define ICoreWebView2Controller4_get_ZoomFactor(This, zoomFactor) \
    ((This)->lpVtbl->get_ZoomFactor(This, zoomFactor))

#define ICoreWebView2Controller4_put_ZoomFactor(This, zoomFactor) \
    ((This)->lpVtbl->put_ZoomFactor(This, zoomFactor))

#define ICoreWebView2Controller4_add_ZoomFactorChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ZoomFactorChanged(This, eventHandler, token))

#define ICoreWebView2Controller4_remove_ZoomFactorChanged(This, token) \
    ((This)->lpVtbl->remove_ZoomFactorChanged(This, token))

#define ICoreWebView2Controller4_SetBoundsAndZoomFactor(This, bounds, zoomFactor) \
    ((This)->lpVtbl->SetBoundsAndZoomFactor(This, bounds, zoomFactor))

#define ICoreWebView2Controller4_MoveFocus(This, reason) \
    ((This)->lpVtbl->MoveFocus(This, reason))

#define ICoreWebView2Controller4_add_MoveFocusRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_MoveFocusRequested(This, eventHandler, token))

#define ICoreWebView2Controller4_remove_MoveFocusRequested(This, token) \
    ((This)->lpVtbl->remove_MoveFocusRequested(This, token))

#define ICoreWebView2Controller4_add_GotFocus(This, eventHandler, token) \
    ((This)->lpVtbl->add_GotFocus(This, eventHandler, token))

#define ICoreWebView2Controller4_remove_GotFocus(This, token) \
    ((This)->lpVtbl->remove_GotFocus(This, token))

#define ICoreWebView2Controller4_add_LostFocus(This, eventHandler, token) \
    ((This)->lpVtbl->add_LostFocus(This, eventHandler, token))

#define ICoreWebView2Controller4_remove_LostFocus(This, token) \
    ((This)->lpVtbl->remove_LostFocus(This, token))

#define ICoreWebView2Controller4_add_AcceleratorKeyPressed(This, eventHandler, token) \
    ((This)->lpVtbl->add_AcceleratorKeyPressed(This, eventHandler, token))

#define ICoreWebView2Controller4_remove_AcceleratorKeyPressed(This, token) \
    ((This)->lpVtbl->remove_AcceleratorKeyPressed(This, token))

#define ICoreWebView2Controller4_get_ParentWindow(This, parentWindow) \
    ((This)->lpVtbl->get_ParentWindow(This, parentWindow))

#define ICoreWebView2Controller4_put_ParentWindow(This, parentWindow) \
    ((This)->lpVtbl->put_ParentWindow(This, parentWindow))

#define ICoreWebView2Controller4_NotifyParentWindowPositionChanged(This) \
    ((This)->lpVtbl->NotifyParentWindowPositionChanged(This))

#define ICoreWebView2Controller4_Close(This) \
    ((This)->lpVtbl->Close(This))

#define ICoreWebView2Controller4_get_CoreWebView2(This, coreWebView2) \
    ((This)->lpVtbl->get_CoreWebView2(This, coreWebView2))

#define ICoreWebView2Controller4_get_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->get_DefaultBackgroundColor(This, value))

#define ICoreWebView2Controller4_put_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->put_DefaultBackgroundColor(This, value))

#define ICoreWebView2Controller4_get_RasterizationScale(This, scale) \
    ((This)->lpVtbl->get_RasterizationScale(This, scale))

#define ICoreWebView2Controller4_put_RasterizationScale(This, scale) \
    ((This)->lpVtbl->put_RasterizationScale(This, scale))

#define ICoreWebView2Controller4_get_ShouldDetectMonitorScaleChanges(This, value) \
    ((This)->lpVtbl->get_ShouldDetectMonitorScaleChanges(This, value))

#define ICoreWebView2Controller4_put_ShouldDetectMonitorScaleChanges(This, value) \
    ((This)->lpVtbl->put_ShouldDetectMonitorScaleChanges(This, value))

#define ICoreWebView2Controller4_add_RasterizationScaleChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_RasterizationScaleChanged(This, eventHandler, token))

#define ICoreWebView2Controller4_remove_RasterizationScaleChanged(This, token) \
    ((This)->lpVtbl->remove_RasterizationScaleChanged(This, token))

#define ICoreWebView2Controller4_get_BoundsMode(This, boundsMode) \
    ((This)->lpVtbl->get_BoundsMode(This, boundsMode))

#define ICoreWebView2Controller4_put_BoundsMode(This, boundsMode) \
    ((This)->lpVtbl->put_BoundsMode(This, boundsMode))

#define ICoreWebView2Controller4_get_AllowExternalDrop(This, value) \
    ((This)->lpVtbl->get_AllowExternalDrop(This, value))

#define ICoreWebView2Controller4_put_AllowExternalDrop(This, value) \
    ((This)->lpVtbl->put_AllowExternalDrop(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Controller4_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ControllerOptions_INTERFACE_DEFINED__
#define __ICoreWebView2ControllerOptions_INTERFACE_DEFINED__

    /* interface ICoreWebView2ControllerOptions */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ControllerOptions = {0x12aae616, 0x8ccb, 0x44ec, {0xbc, 0xb3, 0xeb, 0x18, 0x31, 0x88, 0x16, 0x35}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("12aae616-8ccb-44ec-bcb3-eb1831881635")
    ICoreWebView2ControllerOptions : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProfileName(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ProfileName(
            /* [in] */ LPCWSTR value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsInPrivateModeEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsInPrivateModeEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ControllerOptionsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ControllerOptions *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ControllerOptions *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ControllerOptions *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2ControllerOptions *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, put_ProfileName)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ProfileName)(
            ICoreWebView2ControllerOptions *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2ControllerOptions *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, put_IsInPrivateModeEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsInPrivateModeEnabled)(
            ICoreWebView2ControllerOptions *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2ControllerOptionsVtbl;

    interface ICoreWebView2ControllerOptions
    {
        CONST_VTBL struct ICoreWebView2ControllerOptionsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ControllerOptions_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ControllerOptions_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ControllerOptions_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ControllerOptions_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2ControllerOptions_put_ProfileName(This, value) \
    ((This)->lpVtbl->put_ProfileName(This, value))

#define ICoreWebView2ControllerOptions_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2ControllerOptions_put_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->put_IsInPrivateModeEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ControllerOptions_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ControllerOptions2_INTERFACE_DEFINED__
#define __ICoreWebView2ControllerOptions2_INTERFACE_DEFINED__

    /* interface ICoreWebView2ControllerOptions2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ControllerOptions2 = {0x06c991d8, 0x9e7e, 0x11ed, {0xa8, 0xfc, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("06c991d8-9e7e-11ed-a8fc-0242ac120002")
    ICoreWebView2ControllerOptions2 : public ICoreWebView2ControllerOptions
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ScriptLocale(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ScriptLocale(
            /* [in] */ LPCWSTR value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ControllerOptions2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ControllerOptions2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ControllerOptions2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ControllerOptions2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2ControllerOptions2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, put_ProfileName)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ProfileName)(
            ICoreWebView2ControllerOptions2 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2ControllerOptions2 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, put_IsInPrivateModeEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsInPrivateModeEnabled)(
            ICoreWebView2ControllerOptions2 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions2, get_ScriptLocale)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ScriptLocale)(
            ICoreWebView2ControllerOptions2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions2, put_ScriptLocale)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ScriptLocale)(
            ICoreWebView2ControllerOptions2 *This,
            /* [in] */ LPCWSTR value);

        END_INTERFACE
    } ICoreWebView2ControllerOptions2Vtbl;

    interface ICoreWebView2ControllerOptions2
    {
        CONST_VTBL struct ICoreWebView2ControllerOptions2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ControllerOptions2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ControllerOptions2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ControllerOptions2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ControllerOptions2_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2ControllerOptions2_put_ProfileName(This, value) \
    ((This)->lpVtbl->put_ProfileName(This, value))

#define ICoreWebView2ControllerOptions2_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2ControllerOptions2_put_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->put_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2ControllerOptions2_get_ScriptLocale(This, value) \
    ((This)->lpVtbl->get_ScriptLocale(This, value))

#define ICoreWebView2ControllerOptions2_put_ScriptLocale(This, value) \
    ((This)->lpVtbl->put_ScriptLocale(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ControllerOptions2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ControllerOptions3_INTERFACE_DEFINED__
#define __ICoreWebView2ControllerOptions3_INTERFACE_DEFINED__

    /* interface ICoreWebView2ControllerOptions3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ControllerOptions3 = {0xb32b191a, 0x8998, 0x57ca, {0xb7, 0xcb, 0xe0, 0x46, 0x17, 0xe4, 0xce, 0x4a}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b32b191a-8998-57ca-b7cb-e04617e4ce4a")
    ICoreWebView2ControllerOptions3 : public ICoreWebView2ControllerOptions2
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultBackgroundColor(
            /* [retval][out] */ COREWEBVIEW2_COLOR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_DefaultBackgroundColor(
            /* [in] */ COREWEBVIEW2_COLOR value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ControllerOptions3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ControllerOptions3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ControllerOptions3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ControllerOptions3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2ControllerOptions3 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, put_ProfileName)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ProfileName)(
            ICoreWebView2ControllerOptions3 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2ControllerOptions3 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, put_IsInPrivateModeEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsInPrivateModeEnabled)(
            ICoreWebView2ControllerOptions3 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions2, get_ScriptLocale)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ScriptLocale)(
            ICoreWebView2ControllerOptions3 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions2, put_ScriptLocale)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ScriptLocale)(
            ICoreWebView2ControllerOptions3 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions3, get_DefaultBackgroundColor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultBackgroundColor)(
            ICoreWebView2ControllerOptions3 *This,
            /* [retval][out] */ COREWEBVIEW2_COLOR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions3, put_DefaultBackgroundColor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultBackgroundColor)(
            ICoreWebView2ControllerOptions3 *This,
            /* [in] */ COREWEBVIEW2_COLOR value);

        END_INTERFACE
    } ICoreWebView2ControllerOptions3Vtbl;

    interface ICoreWebView2ControllerOptions3
    {
        CONST_VTBL struct ICoreWebView2ControllerOptions3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ControllerOptions3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ControllerOptions3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ControllerOptions3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ControllerOptions3_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2ControllerOptions3_put_ProfileName(This, value) \
    ((This)->lpVtbl->put_ProfileName(This, value))

#define ICoreWebView2ControllerOptions3_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2ControllerOptions3_put_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->put_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2ControllerOptions3_get_ScriptLocale(This, value) \
    ((This)->lpVtbl->get_ScriptLocale(This, value))

#define ICoreWebView2ControllerOptions3_put_ScriptLocale(This, value) \
    ((This)->lpVtbl->put_ScriptLocale(This, value))

#define ICoreWebView2ControllerOptions3_get_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->get_DefaultBackgroundColor(This, value))

#define ICoreWebView2ControllerOptions3_put_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->put_DefaultBackgroundColor(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ControllerOptions3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ControllerOptions4_INTERFACE_DEFINED__
#define __ICoreWebView2ControllerOptions4_INTERFACE_DEFINED__

    /* interface ICoreWebView2ControllerOptions4 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ControllerOptions4 = {0x21eb052f, 0xad39, 0x555e, {0x82, 0x4a, 0xc8, 0x7b, 0x09, 0x1d, 0x4d, 0x36}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("21eb052f-ad39-555e-824a-c87b091d4d36")
    ICoreWebView2ControllerOptions4 : public ICoreWebView2ControllerOptions3
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AllowHostInputProcessing(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AllowHostInputProcessing(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ControllerOptions4Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ControllerOptions4 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ControllerOptions4 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ControllerOptions4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2ControllerOptions4 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, put_ProfileName)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ProfileName)(
            ICoreWebView2ControllerOptions4 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2ControllerOptions4 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions, put_IsInPrivateModeEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsInPrivateModeEnabled)(
            ICoreWebView2ControllerOptions4 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions2, get_ScriptLocale)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ScriptLocale)(
            ICoreWebView2ControllerOptions4 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions2, put_ScriptLocale)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ScriptLocale)(
            ICoreWebView2ControllerOptions4 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions3, get_DefaultBackgroundColor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultBackgroundColor)(
            ICoreWebView2ControllerOptions4 *This,
            /* [retval][out] */ COREWEBVIEW2_COLOR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions3, put_DefaultBackgroundColor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultBackgroundColor)(
            ICoreWebView2ControllerOptions4 *This,
            /* [in] */ COREWEBVIEW2_COLOR value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions4, get_AllowHostInputProcessing)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AllowHostInputProcessing)(
            ICoreWebView2ControllerOptions4 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ControllerOptions4, put_AllowHostInputProcessing)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AllowHostInputProcessing)(
            ICoreWebView2ControllerOptions4 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2ControllerOptions4Vtbl;

    interface ICoreWebView2ControllerOptions4
    {
        CONST_VTBL struct ICoreWebView2ControllerOptions4Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ControllerOptions4_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ControllerOptions4_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ControllerOptions4_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ControllerOptions4_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2ControllerOptions4_put_ProfileName(This, value) \
    ((This)->lpVtbl->put_ProfileName(This, value))

#define ICoreWebView2ControllerOptions4_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2ControllerOptions4_put_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->put_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2ControllerOptions4_get_ScriptLocale(This, value) \
    ((This)->lpVtbl->get_ScriptLocale(This, value))

#define ICoreWebView2ControllerOptions4_put_ScriptLocale(This, value) \
    ((This)->lpVtbl->put_ScriptLocale(This, value))

#define ICoreWebView2ControllerOptions4_get_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->get_DefaultBackgroundColor(This, value))

#define ICoreWebView2ControllerOptions4_put_DefaultBackgroundColor(This, value) \
    ((This)->lpVtbl->put_DefaultBackgroundColor(This, value))

#define ICoreWebView2ControllerOptions4_get_AllowHostInputProcessing(This, value) \
    ((This)->lpVtbl->get_AllowHostInputProcessing(This, value))

#define ICoreWebView2ControllerOptions4_put_AllowHostInputProcessing(This, value) \
    ((This)->lpVtbl->put_AllowHostInputProcessing(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ControllerOptions4_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Cookie_INTERFACE_DEFINED__
#define __ICoreWebView2Cookie_INTERFACE_DEFINED__

    /* interface ICoreWebView2Cookie */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Cookie = {0xAD26D6BE, 0x1486, 0x43E6, {0xBF, 0x87, 0xA2, 0x03, 0x40, 0x06, 0xCA, 0x21}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("AD26D6BE-1486-43E6-BF87-A2034006CA21")
    ICoreWebView2Cookie : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name(
            /* [retval][out] */ LPWSTR * name) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Value(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Value(
            /* [in] */ LPCWSTR value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Domain(
            /* [retval][out] */ LPWSTR * domain) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Path(
            /* [retval][out] */ LPWSTR * path) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Expires(
            /* [retval][out] */ double *expires) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Expires(
            /* [in] */ double expires) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsHttpOnly(
            /* [retval][out] */ BOOL * isHttpOnly) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsHttpOnly(
            /* [in] */ BOOL isHttpOnly) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SameSite(
            /* [retval][out] */ COREWEBVIEW2_COOKIE_SAME_SITE_KIND * sameSite) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SameSite(
            /* [in] */ COREWEBVIEW2_COOKIE_SAME_SITE_KIND sameSite) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsSecure(
            /* [retval][out] */ BOOL * isSecure) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsSecure(
            /* [in] */ BOOL isSecure) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsSession(
            /* [retval][out] */ BOOL * isSession) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CookieVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Cookie *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Cookie *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Cookie *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2Cookie *This,
            /* [retval][out] */ LPWSTR *name);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, get_Value)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Value)(
            ICoreWebView2Cookie *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, put_Value)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Value)(
            ICoreWebView2Cookie *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, get_Domain)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Domain)(
            ICoreWebView2Cookie *This,
            /* [retval][out] */ LPWSTR *domain);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, get_Path)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Path)(
            ICoreWebView2Cookie *This,
            /* [retval][out] */ LPWSTR *path);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, get_Expires)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Expires)(
            ICoreWebView2Cookie *This,
            /* [retval][out] */ double *expires);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, put_Expires)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Expires)(
            ICoreWebView2Cookie *This,
            /* [in] */ double expires);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, get_IsHttpOnly)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsHttpOnly)(
            ICoreWebView2Cookie *This,
            /* [retval][out] */ BOOL *isHttpOnly);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, put_IsHttpOnly)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsHttpOnly)(
            ICoreWebView2Cookie *This,
            /* [in] */ BOOL isHttpOnly);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, get_SameSite)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SameSite)(
            ICoreWebView2Cookie *This,
            /* [retval][out] */ COREWEBVIEW2_COOKIE_SAME_SITE_KIND *sameSite);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, put_SameSite)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_SameSite)(
            ICoreWebView2Cookie *This,
            /* [in] */ COREWEBVIEW2_COOKIE_SAME_SITE_KIND sameSite);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, get_IsSecure)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSecure)(
            ICoreWebView2Cookie *This,
            /* [retval][out] */ BOOL *isSecure);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, put_IsSecure)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsSecure)(
            ICoreWebView2Cookie *This,
            /* [in] */ BOOL isSecure);

        DECLSPEC_XFGVIRT(ICoreWebView2Cookie, get_IsSession)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSession)(
            ICoreWebView2Cookie *This,
            /* [retval][out] */ BOOL *isSession);

        END_INTERFACE
    } ICoreWebView2CookieVtbl;

    interface ICoreWebView2Cookie
    {
        CONST_VTBL struct ICoreWebView2CookieVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Cookie_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Cookie_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Cookie_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Cookie_get_Name(This, name) \
    ((This)->lpVtbl->get_Name(This, name))

#define ICoreWebView2Cookie_get_Value(This, value) \
    ((This)->lpVtbl->get_Value(This, value))

#define ICoreWebView2Cookie_put_Value(This, value) \
    ((This)->lpVtbl->put_Value(This, value))

#define ICoreWebView2Cookie_get_Domain(This, domain) \
    ((This)->lpVtbl->get_Domain(This, domain))

#define ICoreWebView2Cookie_get_Path(This, path) \
    ((This)->lpVtbl->get_Path(This, path))

#define ICoreWebView2Cookie_get_Expires(This, expires) \
    ((This)->lpVtbl->get_Expires(This, expires))

#define ICoreWebView2Cookie_put_Expires(This, expires) \
    ((This)->lpVtbl->put_Expires(This, expires))

#define ICoreWebView2Cookie_get_IsHttpOnly(This, isHttpOnly) \
    ((This)->lpVtbl->get_IsHttpOnly(This, isHttpOnly))

#define ICoreWebView2Cookie_put_IsHttpOnly(This, isHttpOnly) \
    ((This)->lpVtbl->put_IsHttpOnly(This, isHttpOnly))

#define ICoreWebView2Cookie_get_SameSite(This, sameSite) \
    ((This)->lpVtbl->get_SameSite(This, sameSite))

#define ICoreWebView2Cookie_put_SameSite(This, sameSite) \
    ((This)->lpVtbl->put_SameSite(This, sameSite))

#define ICoreWebView2Cookie_get_IsSecure(This, isSecure) \
    ((This)->lpVtbl->get_IsSecure(This, isSecure))

#define ICoreWebView2Cookie_put_IsSecure(This, isSecure) \
    ((This)->lpVtbl->put_IsSecure(This, isSecure))

#define ICoreWebView2Cookie_get_IsSession(This, isSession) \
    ((This)->lpVtbl->get_IsSession(This, isSession))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Cookie_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CookieManager_INTERFACE_DEFINED__
#define __ICoreWebView2CookieManager_INTERFACE_DEFINED__

    /* interface ICoreWebView2CookieManager */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CookieManager = {0x177CD9E7, 0xB6F5, 0x451A, {0x94, 0xA0, 0x5D, 0x7A, 0x3A, 0x4C, 0x41, 0x41}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("177CD9E7-B6F5-451A-94A0-5D7A3A4C4141")
    ICoreWebView2CookieManager : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateCookie(
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR value,
            /* [in] */ LPCWSTR domain,
            /* [in] */ LPCWSTR path,
            /* [retval][out] */ ICoreWebView2Cookie * *cookie) = 0;

        virtual HRESULT STDMETHODCALLTYPE CopyCookie(
            /* [in] */ ICoreWebView2Cookie * cookieParam,
            /* [retval][out] */ ICoreWebView2Cookie * *cookie) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetCookies(
            /* [in] */ LPCWSTR uri,
            /* [in] */ ICoreWebView2GetCookiesCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE AddOrUpdateCookie(
            /* [in] */ ICoreWebView2Cookie * cookie) = 0;

        virtual HRESULT STDMETHODCALLTYPE DeleteCookie(
            /* [in] */ ICoreWebView2Cookie * cookie) = 0;

        virtual HRESULT STDMETHODCALLTYPE DeleteCookies(
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR uri) = 0;

        virtual HRESULT STDMETHODCALLTYPE DeleteCookiesWithDomainAndPath(
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR domain,
            /* [in] */ LPCWSTR path) = 0;

        virtual HRESULT STDMETHODCALLTYPE DeleteAllCookies(void) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CookieManagerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CookieManager *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CookieManager *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CookieManager *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieManager, CreateCookie)
        HRESULT(STDMETHODCALLTYPE *CreateCookie)(
            ICoreWebView2CookieManager *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR value,
            /* [in] */ LPCWSTR domain,
            /* [in] */ LPCWSTR path,
            /* [retval][out] */ ICoreWebView2Cookie **cookie);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieManager, CopyCookie)
        HRESULT(STDMETHODCALLTYPE *CopyCookie)(
            ICoreWebView2CookieManager *This,
            /* [in] */ ICoreWebView2Cookie *cookieParam,
            /* [retval][out] */ ICoreWebView2Cookie **cookie);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieManager, GetCookies)
        HRESULT(STDMETHODCALLTYPE *GetCookies)(
            ICoreWebView2CookieManager *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ ICoreWebView2GetCookiesCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieManager, AddOrUpdateCookie)
        HRESULT(STDMETHODCALLTYPE *AddOrUpdateCookie)(
            ICoreWebView2CookieManager *This,
            /* [in] */ ICoreWebView2Cookie *cookie);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieManager, DeleteCookie)
        HRESULT(STDMETHODCALLTYPE *DeleteCookie)(
            ICoreWebView2CookieManager *This,
            /* [in] */ ICoreWebView2Cookie *cookie);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieManager, DeleteCookies)
        HRESULT(STDMETHODCALLTYPE *DeleteCookies)(
            ICoreWebView2CookieManager *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieManager, DeleteCookiesWithDomainAndPath)
        HRESULT(STDMETHODCALLTYPE *DeleteCookiesWithDomainAndPath)(
            ICoreWebView2CookieManager *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR domain,
            /* [in] */ LPCWSTR path);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieManager, DeleteAllCookies)
        HRESULT(STDMETHODCALLTYPE *DeleteAllCookies)(
            ICoreWebView2CookieManager *This);

        END_INTERFACE
    } ICoreWebView2CookieManagerVtbl;

    interface ICoreWebView2CookieManager
    {
        CONST_VTBL struct ICoreWebView2CookieManagerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CookieManager_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CookieManager_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CookieManager_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CookieManager_CreateCookie(This, name, value, domain, path, cookie) \
    ((This)->lpVtbl->CreateCookie(This, name, value, domain, path, cookie))

#define ICoreWebView2CookieManager_CopyCookie(This, cookieParam, cookie) \
    ((This)->lpVtbl->CopyCookie(This, cookieParam, cookie))

#define ICoreWebView2CookieManager_GetCookies(This, uri, handler) \
    ((This)->lpVtbl->GetCookies(This, uri, handler))

#define ICoreWebView2CookieManager_AddOrUpdateCookie(This, cookie) \
    ((This)->lpVtbl->AddOrUpdateCookie(This, cookie))

#define ICoreWebView2CookieManager_DeleteCookie(This, cookie) \
    ((This)->lpVtbl->DeleteCookie(This, cookie))

#define ICoreWebView2CookieManager_DeleteCookies(This, name, uri) \
    ((This)->lpVtbl->DeleteCookies(This, name, uri))

#define ICoreWebView2CookieManager_DeleteCookiesWithDomainAndPath(This, name, domain, path) \
    ((This)->lpVtbl->DeleteCookiesWithDomainAndPath(This, name, domain, path))

#define ICoreWebView2CookieManager_DeleteAllCookies(This) \
    ((This)->lpVtbl->DeleteAllCookies(This))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CookieManager_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2GetCookiesCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2GetCookiesCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2GetCookiesCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2GetCookiesCompletedHandler = {0x5a4f5069, 0x5c15, 0x47c3, {0x86, 0x46, 0xf4, 0xde, 0x1c, 0x11, 0x66, 0x70}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("5a4f5069-5c15-47c3-8646-f4de1c116670")
    ICoreWebView2GetCookiesCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2CookieList * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2GetCookiesCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2GetCookiesCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2GetCookiesCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2GetCookiesCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2GetCookiesCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2GetCookiesCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2CookieList *result);

        END_INTERFACE
    } ICoreWebView2GetCookiesCompletedHandlerVtbl;

    interface ICoreWebView2GetCookiesCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2GetCookiesCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2GetCookiesCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2GetCookiesCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2GetCookiesCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2GetCookiesCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2GetCookiesCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CookieList_INTERFACE_DEFINED__
#define __ICoreWebView2CookieList_INTERFACE_DEFINED__

    /* interface ICoreWebView2CookieList */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CookieList = {0xf7f6f714, 0x5d2a, 0x43c6, {0x95, 0x03, 0x34, 0x6e, 0xce, 0x02, 0xd1, 0x86}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f7f6f714-5d2a-43c6-9503-346ece02d186")
    ICoreWebView2CookieList : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2Cookie * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CookieListVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CookieList *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CookieList *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CookieList *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieList, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2CookieList *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2CookieList, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2CookieList *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2Cookie **value);

        END_INTERFACE
    } ICoreWebView2CookieListVtbl;

    interface ICoreWebView2CookieList
    {
        CONST_VTBL struct ICoreWebView2CookieListVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CookieList_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CookieList_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CookieList_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CookieList_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2CookieList_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CookieList_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CustomSchemeRegistration_INTERFACE_DEFINED__
#define __ICoreWebView2CustomSchemeRegistration_INTERFACE_DEFINED__

    /* interface ICoreWebView2CustomSchemeRegistration */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CustomSchemeRegistration = {0xd60ac92c, 0x37a6, 0x4b26, {0xa3, 0x9e, 0x95, 0xcf, 0xe5, 0x90, 0x47, 0xbb}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("d60ac92c-37a6-4b26-a39e-95cfe59047bb")
    ICoreWebView2CustomSchemeRegistration : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SchemeName(
            /* [retval][out] */ LPWSTR * schemeName) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TreatAsSecure(
            /* [retval][out] */ BOOL * treatAsSecure) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TreatAsSecure(
            /* [in] */ BOOL value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetAllowedOrigins(
            /* [out] */ UINT32 * allowedOriginsCount,
            /* [out] */ LPWSTR * *allowedOrigins) = 0;

        virtual HRESULT STDMETHODCALLTYPE SetAllowedOrigins(
            /* [in] */ UINT32 allowedOriginsCount,
            /* [in] */ LPCWSTR * allowedOrigins) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasAuthorityComponent(
            /* [retval][out] */ BOOL * hasAuthorityComponent) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HasAuthorityComponent(
            /* [in] */ BOOL hasAuthorityComponent) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CustomSchemeRegistrationVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CustomSchemeRegistration *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CustomSchemeRegistration *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CustomSchemeRegistration *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CustomSchemeRegistration, get_SchemeName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SchemeName)(
            ICoreWebView2CustomSchemeRegistration *This,
            /* [retval][out] */ LPWSTR *schemeName);

        DECLSPEC_XFGVIRT(ICoreWebView2CustomSchemeRegistration, get_TreatAsSecure)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_TreatAsSecure)(
            ICoreWebView2CustomSchemeRegistration *This,
            /* [retval][out] */ BOOL *treatAsSecure);

        DECLSPEC_XFGVIRT(ICoreWebView2CustomSchemeRegistration, put_TreatAsSecure)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_TreatAsSecure)(
            ICoreWebView2CustomSchemeRegistration *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2CustomSchemeRegistration, GetAllowedOrigins)
        HRESULT(STDMETHODCALLTYPE *GetAllowedOrigins)(
            ICoreWebView2CustomSchemeRegistration *This,
            /* [out] */ UINT32 *allowedOriginsCount,
            /* [out] */ LPWSTR **allowedOrigins);

        DECLSPEC_XFGVIRT(ICoreWebView2CustomSchemeRegistration, SetAllowedOrigins)
        HRESULT(STDMETHODCALLTYPE *SetAllowedOrigins)(
            ICoreWebView2CustomSchemeRegistration *This,
            /* [in] */ UINT32 allowedOriginsCount,
            /* [in] */ LPCWSTR *allowedOrigins);

        DECLSPEC_XFGVIRT(ICoreWebView2CustomSchemeRegistration, get_HasAuthorityComponent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HasAuthorityComponent)(
            ICoreWebView2CustomSchemeRegistration *This,
            /* [retval][out] */ BOOL *hasAuthorityComponent);

        DECLSPEC_XFGVIRT(ICoreWebView2CustomSchemeRegistration, put_HasAuthorityComponent)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_HasAuthorityComponent)(
            ICoreWebView2CustomSchemeRegistration *This,
            /* [in] */ BOOL hasAuthorityComponent);

        END_INTERFACE
    } ICoreWebView2CustomSchemeRegistrationVtbl;

    interface ICoreWebView2CustomSchemeRegistration
    {
        CONST_VTBL struct ICoreWebView2CustomSchemeRegistrationVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CustomSchemeRegistration_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CustomSchemeRegistration_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CustomSchemeRegistration_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CustomSchemeRegistration_get_SchemeName(This, schemeName) \
    ((This)->lpVtbl->get_SchemeName(This, schemeName))

#define ICoreWebView2CustomSchemeRegistration_get_TreatAsSecure(This, treatAsSecure) \
    ((This)->lpVtbl->get_TreatAsSecure(This, treatAsSecure))

#define ICoreWebView2CustomSchemeRegistration_put_TreatAsSecure(This, value) \
    ((This)->lpVtbl->put_TreatAsSecure(This, value))

#define ICoreWebView2CustomSchemeRegistration_GetAllowedOrigins(This, allowedOriginsCount, allowedOrigins) \
    ((This)->lpVtbl->GetAllowedOrigins(This, allowedOriginsCount, allowedOrigins))

#define ICoreWebView2CustomSchemeRegistration_SetAllowedOrigins(This, allowedOriginsCount, allowedOrigins) \
    ((This)->lpVtbl->SetAllowedOrigins(This, allowedOriginsCount, allowedOrigins))

#define ICoreWebView2CustomSchemeRegistration_get_HasAuthorityComponent(This, hasAuthorityComponent) \
    ((This)->lpVtbl->get_HasAuthorityComponent(This, hasAuthorityComponent))

#define ICoreWebView2CustomSchemeRegistration_put_HasAuthorityComponent(This, hasAuthorityComponent) \
    ((This)->lpVtbl->put_HasAuthorityComponent(This, hasAuthorityComponent))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CustomSchemeRegistration_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DOMContentLoadedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2DOMContentLoadedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2DOMContentLoadedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DOMContentLoadedEventArgs = {0x16b1e21a, 0xc503, 0x44f2, {0x84, 0xc9, 0x70, 0xab, 0xa5, 0x03, 0x12, 0x83}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("16b1e21a-c503-44f2-84c9-70aba5031283")
    ICoreWebView2DOMContentLoadedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NavigationId(
            /* [retval][out] */ UINT64 * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DOMContentLoadedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DOMContentLoadedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DOMContentLoadedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DOMContentLoadedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DOMContentLoadedEventArgs, get_NavigationId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NavigationId)(
            ICoreWebView2DOMContentLoadedEventArgs *This,
            /* [retval][out] */ UINT64 *value);

        END_INTERFACE
    } ICoreWebView2DOMContentLoadedEventArgsVtbl;

    interface ICoreWebView2DOMContentLoadedEventArgs
    {
        CONST_VTBL struct ICoreWebView2DOMContentLoadedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DOMContentLoadedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DOMContentLoadedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DOMContentLoadedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DOMContentLoadedEventArgs_get_NavigationId(This, value) \
    ((This)->lpVtbl->get_NavigationId(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DOMContentLoadedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Deferral_INTERFACE_DEFINED__
#define __ICoreWebView2Deferral_INTERFACE_DEFINED__

    /* interface ICoreWebView2Deferral */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Deferral = {0xc10e7f7b, 0xb585, 0x46f0, {0xa6, 0x23, 0x8b, 0xef, 0xbf, 0x3e, 0x4e, 0xe0}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("c10e7f7b-b585-46f0-a623-8befbf3e4ee0")
    ICoreWebView2Deferral : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Complete(void) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DeferralVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Deferral *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Deferral *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Deferral *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Deferral, Complete)
        HRESULT(STDMETHODCALLTYPE *Complete)(
            ICoreWebView2Deferral *This);

        END_INTERFACE
    } ICoreWebView2DeferralVtbl;

    interface ICoreWebView2Deferral
    {
        CONST_VTBL struct ICoreWebView2DeferralVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Deferral_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Deferral_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Deferral_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Deferral_Complete(This) \
    ((This)->lpVtbl->Complete(This))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Deferral_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DevToolsProtocolEventReceivedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2DevToolsProtocolEventReceivedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DevToolsProtocolEventReceivedEventArgs = {0x653c2959, 0xbb3a, 0x4377, {0x86, 0x32, 0xb5, 0x8a, 0xda, 0x4e, 0x66, 0xc4}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("653c2959-bb3a-4377-8632-b58ada4e66c4")
    ICoreWebView2DevToolsProtocolEventReceivedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ParameterObjectAsJson(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DevToolsProtocolEventReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DevToolsProtocolEventReceivedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DevToolsProtocolEventReceivedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DevToolsProtocolEventReceivedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DevToolsProtocolEventReceivedEventArgs, get_ParameterObjectAsJson)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ParameterObjectAsJson)(
            ICoreWebView2DevToolsProtocolEventReceivedEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2DevToolsProtocolEventReceivedEventArgsVtbl;

    interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs
    {
        CONST_VTBL struct ICoreWebView2DevToolsProtocolEventReceivedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DevToolsProtocolEventReceivedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DevToolsProtocolEventReceivedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DevToolsProtocolEventReceivedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DevToolsProtocolEventReceivedEventArgs_get_ParameterObjectAsJson(This, value) \
    ((This)->lpVtbl->get_ParameterObjectAsJson(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DevToolsProtocolEventReceivedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_INTERFACE_DEFINED__
#define __ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_INTERFACE_DEFINED__

    /* interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 = {0x2dc4959d, 0x1494, 0x4393, {0x95, 0xba, 0xbe, 0xa4, 0xcb, 0x9e, 0xbd, 0x1b}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("2dc4959d-1494-4393-95ba-bea4cb9ebd1b")
    ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 : public ICoreWebView2DevToolsProtocolEventReceivedEventArgs
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SessionId(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DevToolsProtocolEventReceivedEventArgs2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DevToolsProtocolEventReceivedEventArgs, get_ParameterObjectAsJson)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ParameterObjectAsJson)(
            ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2DevToolsProtocolEventReceivedEventArgs2, get_SessionId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SessionId)(
            ICoreWebView2DevToolsProtocolEventReceivedEventArgs2 *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2DevToolsProtocolEventReceivedEventArgs2Vtbl;

    interface ICoreWebView2DevToolsProtocolEventReceivedEventArgs2
    {
        CONST_VTBL struct ICoreWebView2DevToolsProtocolEventReceivedEventArgs2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_get_ParameterObjectAsJson(This, value) \
    ((This)->lpVtbl->get_ParameterObjectAsJson(This, value))

#define ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_get_SessionId(This, value) \
    ((This)->lpVtbl->get_SessionId(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DevToolsProtocolEventReceivedEventArgs2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DevToolsProtocolEventReceiver_INTERFACE_DEFINED__
#define __ICoreWebView2DevToolsProtocolEventReceiver_INTERFACE_DEFINED__

    /* interface ICoreWebView2DevToolsProtocolEventReceiver */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DevToolsProtocolEventReceiver = {0xb32ca51a, 0x8371, 0x45e9, {0x93, 0x17, 0xaf, 0x02, 0x1d, 0x08, 0x03, 0x67}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b32ca51a-8371-45e9-9317-af021d080367")
    ICoreWebView2DevToolsProtocolEventReceiver : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_DevToolsProtocolEventReceived(
            /* [in] */ ICoreWebView2DevToolsProtocolEventReceivedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_DevToolsProtocolEventReceived(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DevToolsProtocolEventReceiverVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DevToolsProtocolEventReceiver *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DevToolsProtocolEventReceiver *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DevToolsProtocolEventReceiver *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DevToolsProtocolEventReceiver, add_DevToolsProtocolEventReceived)
        HRESULT(STDMETHODCALLTYPE *add_DevToolsProtocolEventReceived)(
            ICoreWebView2DevToolsProtocolEventReceiver *This,
            /* [in] */ ICoreWebView2DevToolsProtocolEventReceivedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2DevToolsProtocolEventReceiver, remove_DevToolsProtocolEventReceived)
        HRESULT(STDMETHODCALLTYPE *remove_DevToolsProtocolEventReceived)(
            ICoreWebView2DevToolsProtocolEventReceiver *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2DevToolsProtocolEventReceiverVtbl;

    interface ICoreWebView2DevToolsProtocolEventReceiver
    {
        CONST_VTBL struct ICoreWebView2DevToolsProtocolEventReceiverVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DevToolsProtocolEventReceiver_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DevToolsProtocolEventReceiver_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DevToolsProtocolEventReceiver_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DevToolsProtocolEventReceiver_add_DevToolsProtocolEventReceived(This, eventHandler, token) \
    ((This)->lpVtbl->add_DevToolsProtocolEventReceived(This, eventHandler, token))

#define ICoreWebView2DevToolsProtocolEventReceiver_remove_DevToolsProtocolEventReceived(This, token) \
    ((This)->lpVtbl->remove_DevToolsProtocolEventReceived(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DevToolsProtocolEventReceiver_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DevToolsProtocolEventReceivedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2DevToolsProtocolEventReceivedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2DevToolsProtocolEventReceivedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DevToolsProtocolEventReceivedEventHandler = {0xe2fda4be, 0x5456, 0x406c, {0xa2, 0x61, 0x3d, 0x45, 0x21, 0x38, 0x36, 0x2c}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e2fda4be-5456-406c-a261-3d452138362c")
    ICoreWebView2DevToolsProtocolEventReceivedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2 * sender,
            /* [in] */ ICoreWebView2DevToolsProtocolEventReceivedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DevToolsProtocolEventReceivedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DevToolsProtocolEventReceivedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DevToolsProtocolEventReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DevToolsProtocolEventReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DevToolsProtocolEventReceivedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2DevToolsProtocolEventReceivedEventHandler *This,
            /* [in] */ ICoreWebView2 *sender,
            /* [in] */ ICoreWebView2DevToolsProtocolEventReceivedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2DevToolsProtocolEventReceivedEventHandlerVtbl;

    interface ICoreWebView2DevToolsProtocolEventReceivedEventHandler
    {
        CONST_VTBL struct ICoreWebView2DevToolsProtocolEventReceivedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DevToolsProtocolEventReceivedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DevToolsProtocolEventReceivedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DevToolsProtocolEventReceivedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DevToolsProtocolEventReceivedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DownloadOperation_INTERFACE_DEFINED__
#define __ICoreWebView2DownloadOperation_INTERFACE_DEFINED__

    /* interface ICoreWebView2DownloadOperation */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DownloadOperation = {0x3d6b6cf2, 0xafe1, 0x44c7, {0xa9, 0x95, 0xc6, 0x51, 0x17, 0x71, 0x43, 0x36}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("3d6b6cf2-afe1-44c7-a995-c65117714336")
    ICoreWebView2DownloadOperation : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_BytesReceivedChanged(
            /* [in] */ ICoreWebView2BytesReceivedChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_BytesReceivedChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_EstimatedEndTimeChanged(
            /* [in] */ ICoreWebView2EstimatedEndTimeChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_EstimatedEndTimeChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_StateChanged(
            /* [in] */ ICoreWebView2StateChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_StateChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Uri(
            /* [retval][out] */ LPWSTR * uri) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ContentDisposition(
            /* [retval][out] */ LPWSTR * contentDisposition) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MimeType(
            /* [retval][out] */ LPWSTR * mimeType) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TotalBytesToReceive(
            /* [retval][out] */ INT64 * totalBytesToReceive) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BytesReceived(
            /* [retval][out] */ INT64 * bytesReceived) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EstimatedEndTime(
            /* [retval][out] */ LPWSTR * estimatedEndTime) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ResultFilePath(
            /* [retval][out] */ LPWSTR * resultFilePath) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_State(
            /* [retval][out] */ COREWEBVIEW2_DOWNLOAD_STATE * downloadState) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InterruptReason(
            /* [retval][out] */ COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON * interruptReason) = 0;

        virtual HRESULT STDMETHODCALLTYPE Cancel(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE Pause(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE Resume(void) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CanResume(
            /* [retval][out] */ BOOL * canResume) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DownloadOperationVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DownloadOperation *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DownloadOperation *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DownloadOperation *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, add_BytesReceivedChanged)
        HRESULT(STDMETHODCALLTYPE *add_BytesReceivedChanged)(
            ICoreWebView2DownloadOperation *This,
            /* [in] */ ICoreWebView2BytesReceivedChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, remove_BytesReceivedChanged)
        HRESULT(STDMETHODCALLTYPE *remove_BytesReceivedChanged)(
            ICoreWebView2DownloadOperation *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, add_EstimatedEndTimeChanged)
        HRESULT(STDMETHODCALLTYPE *add_EstimatedEndTimeChanged)(
            ICoreWebView2DownloadOperation *This,
            /* [in] */ ICoreWebView2EstimatedEndTimeChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, remove_EstimatedEndTimeChanged)
        HRESULT(STDMETHODCALLTYPE *remove_EstimatedEndTimeChanged)(
            ICoreWebView2DownloadOperation *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, add_StateChanged)
        HRESULT(STDMETHODCALLTYPE *add_StateChanged)(
            ICoreWebView2DownloadOperation *This,
            /* [in] */ ICoreWebView2StateChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, remove_StateChanged)
        HRESULT(STDMETHODCALLTYPE *remove_StateChanged)(
            ICoreWebView2DownloadOperation *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_ContentDisposition)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContentDisposition)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ LPWSTR *contentDisposition);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_MimeType)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MimeType)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ LPWSTR *mimeType);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_TotalBytesToReceive)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_TotalBytesToReceive)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ INT64 *totalBytesToReceive);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_BytesReceived)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BytesReceived)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ INT64 *bytesReceived);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_EstimatedEndTime)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_EstimatedEndTime)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ LPWSTR *estimatedEndTime);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_ResultFilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ResultFilePath)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ LPWSTR *resultFilePath);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_State)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_State)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ COREWEBVIEW2_DOWNLOAD_STATE *downloadState);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_InterruptReason)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_InterruptReason)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ COREWEBVIEW2_DOWNLOAD_INTERRUPT_REASON *interruptReason);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, Cancel)
        HRESULT(STDMETHODCALLTYPE *Cancel)(
            ICoreWebView2DownloadOperation *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, Pause)
        HRESULT(STDMETHODCALLTYPE *Pause)(
            ICoreWebView2DownloadOperation *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, Resume)
        HRESULT(STDMETHODCALLTYPE *Resume)(
            ICoreWebView2DownloadOperation *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadOperation, get_CanResume)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CanResume)(
            ICoreWebView2DownloadOperation *This,
            /* [retval][out] */ BOOL *canResume);

        END_INTERFACE
    } ICoreWebView2DownloadOperationVtbl;

    interface ICoreWebView2DownloadOperation
    {
        CONST_VTBL struct ICoreWebView2DownloadOperationVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DownloadOperation_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DownloadOperation_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DownloadOperation_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DownloadOperation_add_BytesReceivedChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_BytesReceivedChanged(This, eventHandler, token))

#define ICoreWebView2DownloadOperation_remove_BytesReceivedChanged(This, token) \
    ((This)->lpVtbl->remove_BytesReceivedChanged(This, token))

#define ICoreWebView2DownloadOperation_add_EstimatedEndTimeChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_EstimatedEndTimeChanged(This, eventHandler, token))

#define ICoreWebView2DownloadOperation_remove_EstimatedEndTimeChanged(This, token) \
    ((This)->lpVtbl->remove_EstimatedEndTimeChanged(This, token))

#define ICoreWebView2DownloadOperation_add_StateChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_StateChanged(This, eventHandler, token))

#define ICoreWebView2DownloadOperation_remove_StateChanged(This, token) \
    ((This)->lpVtbl->remove_StateChanged(This, token))

#define ICoreWebView2DownloadOperation_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2DownloadOperation_get_ContentDisposition(This, contentDisposition) \
    ((This)->lpVtbl->get_ContentDisposition(This, contentDisposition))

#define ICoreWebView2DownloadOperation_get_MimeType(This, mimeType) \
    ((This)->lpVtbl->get_MimeType(This, mimeType))

#define ICoreWebView2DownloadOperation_get_TotalBytesToReceive(This, totalBytesToReceive) \
    ((This)->lpVtbl->get_TotalBytesToReceive(This, totalBytesToReceive))

#define ICoreWebView2DownloadOperation_get_BytesReceived(This, bytesReceived) \
    ((This)->lpVtbl->get_BytesReceived(This, bytesReceived))

#define ICoreWebView2DownloadOperation_get_EstimatedEndTime(This, estimatedEndTime) \
    ((This)->lpVtbl->get_EstimatedEndTime(This, estimatedEndTime))

#define ICoreWebView2DownloadOperation_get_ResultFilePath(This, resultFilePath) \
    ((This)->lpVtbl->get_ResultFilePath(This, resultFilePath))

#define ICoreWebView2DownloadOperation_get_State(This, downloadState) \
    ((This)->lpVtbl->get_State(This, downloadState))

#define ICoreWebView2DownloadOperation_get_InterruptReason(This, interruptReason) \
    ((This)->lpVtbl->get_InterruptReason(This, interruptReason))

#define ICoreWebView2DownloadOperation_Cancel(This) \
    ((This)->lpVtbl->Cancel(This))

#define ICoreWebView2DownloadOperation_Pause(This) \
    ((This)->lpVtbl->Pause(This))

#define ICoreWebView2DownloadOperation_Resume(This) \
    ((This)->lpVtbl->Resume(This))

#define ICoreWebView2DownloadOperation_get_CanResume(This, canResume) \
    ((This)->lpVtbl->get_CanResume(This, canResume))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DownloadOperation_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BytesReceivedChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2BytesReceivedChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2BytesReceivedChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BytesReceivedChangedEventHandler = {0x828e8ab6, 0xd94c, 0x4264, {0x9c, 0xef, 0x52, 0x17, 0x17, 0x0d, 0x62, 0x51}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("828e8ab6-d94c-4264-9cef-5217170d6251")
    ICoreWebView2BytesReceivedChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2DownloadOperation * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BytesReceivedChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BytesReceivedChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BytesReceivedChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BytesReceivedChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BytesReceivedChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2BytesReceivedChangedEventHandler *This,
            /* [in] */ ICoreWebView2DownloadOperation *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2BytesReceivedChangedEventHandlerVtbl;

    interface ICoreWebView2BytesReceivedChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2BytesReceivedChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BytesReceivedChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BytesReceivedChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BytesReceivedChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BytesReceivedChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BytesReceivedChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2EstimatedEndTimeChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2EstimatedEndTimeChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2EstimatedEndTimeChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2EstimatedEndTimeChangedEventHandler = {0x28f0d425, 0x93fe, 0x4e63, {0x9f, 0x8d, 0x2a, 0xee, 0xc6, 0xd3, 0xba, 0x1e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("28f0d425-93fe-4e63-9f8d-2aeec6d3ba1e")
    ICoreWebView2EstimatedEndTimeChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2DownloadOperation * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EstimatedEndTimeChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2EstimatedEndTimeChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2EstimatedEndTimeChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2EstimatedEndTimeChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2EstimatedEndTimeChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2EstimatedEndTimeChangedEventHandler *This,
            /* [in] */ ICoreWebView2DownloadOperation *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2EstimatedEndTimeChangedEventHandlerVtbl;

    interface ICoreWebView2EstimatedEndTimeChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2EstimatedEndTimeChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2EstimatedEndTimeChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2EstimatedEndTimeChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2EstimatedEndTimeChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2EstimatedEndTimeChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2EstimatedEndTimeChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2StateChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2StateChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2StateChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2StateChangedEventHandler = {0x81336594, 0x7ede, 0x4ba9, {0xbf, 0x71, 0xac, 0xf0, 0xa9, 0x5b, 0x58, 0xdd}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("81336594-7ede-4ba9-bf71-acf0a95b58dd")
    ICoreWebView2StateChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2DownloadOperation * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2StateChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2StateChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2StateChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2StateChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2StateChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2StateChangedEventHandler *This,
            /* [in] */ ICoreWebView2DownloadOperation *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2StateChangedEventHandlerVtbl;

    interface ICoreWebView2StateChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2StateChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2StateChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2StateChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2StateChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2StateChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2StateChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2DownloadStartingEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2DownloadStartingEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2DownloadStartingEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2DownloadStartingEventArgs = {0xe99bbe21, 0x43e9, 0x4544, {0xa7, 0x32, 0x28, 0x27, 0x64, 0xea, 0xfa, 0x60}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e99bbe21-43e9-4544-a732-282764eafa60")
    ICoreWebView2DownloadStartingEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DownloadOperation(
            /* [retval][out] */ ICoreWebView2DownloadOperation * *downloadOperation) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Cancel(
            /* [retval][out] */ BOOL * cancel) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Cancel(
            /* [in] */ BOOL cancel) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ResultFilePath(
            /* [retval][out] */ LPWSTR * resultFilePath) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ResultFilePath(
            /* [in] */ LPCWSTR resultFilePath) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handled(
            /* [retval][out] */ BOOL * handled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handled(
            /* [in] */ BOOL handled) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2DownloadStartingEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2DownloadStartingEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2DownloadStartingEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2DownloadStartingEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadStartingEventArgs, get_DownloadOperation)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DownloadOperation)(
            ICoreWebView2DownloadStartingEventArgs *This,
            /* [retval][out] */ ICoreWebView2DownloadOperation **downloadOperation);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadStartingEventArgs, get_Cancel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cancel)(
            ICoreWebView2DownloadStartingEventArgs *This,
            /* [retval][out] */ BOOL *cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadStartingEventArgs, put_Cancel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Cancel)(
            ICoreWebView2DownloadStartingEventArgs *This,
            /* [in] */ BOOL cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadStartingEventArgs, get_ResultFilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ResultFilePath)(
            ICoreWebView2DownloadStartingEventArgs *This,
            /* [retval][out] */ LPWSTR *resultFilePath);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadStartingEventArgs, put_ResultFilePath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ResultFilePath)(
            ICoreWebView2DownloadStartingEventArgs *This,
            /* [in] */ LPCWSTR resultFilePath);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadStartingEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2DownloadStartingEventArgs *This,
            /* [retval][out] */ BOOL *handled);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadStartingEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2DownloadStartingEventArgs *This,
            /* [in] */ BOOL handled);

        DECLSPEC_XFGVIRT(ICoreWebView2DownloadStartingEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2DownloadStartingEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        END_INTERFACE
    } ICoreWebView2DownloadStartingEventArgsVtbl;

    interface ICoreWebView2DownloadStartingEventArgs
    {
        CONST_VTBL struct ICoreWebView2DownloadStartingEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2DownloadStartingEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2DownloadStartingEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2DownloadStartingEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2DownloadStartingEventArgs_get_DownloadOperation(This, downloadOperation) \
    ((This)->lpVtbl->get_DownloadOperation(This, downloadOperation))

#define ICoreWebView2DownloadStartingEventArgs_get_Cancel(This, cancel) \
    ((This)->lpVtbl->get_Cancel(This, cancel))

#define ICoreWebView2DownloadStartingEventArgs_put_Cancel(This, cancel) \
    ((This)->lpVtbl->put_Cancel(This, cancel))

#define ICoreWebView2DownloadStartingEventArgs_get_ResultFilePath(This, resultFilePath) \
    ((This)->lpVtbl->get_ResultFilePath(This, resultFilePath))

#define ICoreWebView2DownloadStartingEventArgs_put_ResultFilePath(This, resultFilePath) \
    ((This)->lpVtbl->put_ResultFilePath(This, resultFilePath))

#define ICoreWebView2DownloadStartingEventArgs_get_Handled(This, handled) \
    ((This)->lpVtbl->get_Handled(This, handled))

#define ICoreWebView2DownloadStartingEventArgs_put_Handled(This, handled) \
    ((This)->lpVtbl->put_Handled(This, handled))

#define ICoreWebView2DownloadStartingEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2DownloadStartingEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler = {0x4e8a3389, 0xc9d8, 0x4bd2, {0xb6, 0xb5, 0x12, 0x4f, 0xee, 0x6c, 0xc1, 0x4d}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4e8a3389-c9d8-4bd2-b6b5-124fee6cc14d")
    ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2Environment * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2Environment *result);

        END_INTERFACE
    } ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandlerVtbl;

    interface ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CreateCoreWebView2EnvironmentCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment_INTERFACE_DEFINED__
#define __ICoreWebView2Environment_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment = {0xb96d755e, 0x0319, 0x4e92, {0xa2, 0x96, 0x23, 0x43, 0x6f, 0x46, 0xa1, 0xfc}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b96d755e-0319-4e92-a296-23436f46a1fc")
    ICoreWebView2Environment : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateCoreWebView2Controller(
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE CreateWebResourceResponse(
            /* [in] */ IStream * content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BrowserVersionString(
            /* [retval][out] */ LPWSTR * versionInfo) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_NewBrowserVersionAvailable(
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_NewBrowserVersionAvailable(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EnvironmentVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2EnvironmentVtbl;

    interface ICoreWebView2Environment
    {
        CONST_VTBL struct ICoreWebView2EnvironmentVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NewBrowserVersionAvailableEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2NewBrowserVersionAvailableEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2NewBrowserVersionAvailableEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NewBrowserVersionAvailableEventHandler = {0xf9a2976e, 0xd34e, 0x44fc, {0xad, 0xee, 0x81, 0xb6, 0xb5, 0x7c, 0xa9, 0x14}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f9a2976e-d34e-44fc-adee-81b6b57ca914")
    ICoreWebView2NewBrowserVersionAvailableEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Environment * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NewBrowserVersionAvailableEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NewBrowserVersionAvailableEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NewBrowserVersionAvailableEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NewBrowserVersionAvailableEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NewBrowserVersionAvailableEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2NewBrowserVersionAvailableEventHandler *This,
            /* [in] */ ICoreWebView2Environment *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2NewBrowserVersionAvailableEventHandlerVtbl;

    interface ICoreWebView2NewBrowserVersionAvailableEventHandler
    {
        CONST_VTBL struct ICoreWebView2NewBrowserVersionAvailableEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NewBrowserVersionAvailableEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NewBrowserVersionAvailableEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NewBrowserVersionAvailableEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NewBrowserVersionAvailableEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NewBrowserVersionAvailableEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2CreateCoreWebView2ControllerCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CreateCoreWebView2ControllerCompletedHandler = {0x6c4819f3, 0xc9b7, 0x4260, {0x81, 0x27, 0xc9, 0xf5, 0xbd, 0xe7, 0xf6, 0x8c}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("6c4819f3-c9b7-4260-8127-c9f5bde7f68c")
    ICoreWebView2CreateCoreWebView2ControllerCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2Controller * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CreateCoreWebView2ControllerCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CreateCoreWebView2ControllerCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2Controller *result);

        END_INTERFACE
    } ICoreWebView2CreateCoreWebView2ControllerCompletedHandlerVtbl;

    interface ICoreWebView2CreateCoreWebView2ControllerCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2CreateCoreWebView2ControllerCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CreateCoreWebView2ControllerCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment2_INTERFACE_DEFINED__
#define __ICoreWebView2Environment2_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment2 = {0x41f3632b, 0x5ef4, 0x404f, {0xad, 0x82, 0x2d, 0x60, 0x6c, 0x5a, 0x9a, 0x21}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("41f3632b-5ef4-404f-ad82-2d606c5a9a21")
    ICoreWebView2Environment2 : public ICoreWebView2Environment
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateWebResourceRequest(
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream * postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment2 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment2 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment2 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment2 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment2 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        END_INTERFACE
    } ICoreWebView2Environment2Vtbl;

    interface ICoreWebView2Environment2
    {
        CONST_VTBL struct ICoreWebView2Environment2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment2_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment2_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment2_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment2_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment2_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment2_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment3_INTERFACE_DEFINED__
#define __ICoreWebView2Environment3_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment3 = {0x80a22ae3, 0xbe7c, 0x4ce2, {0xaf, 0xe1, 0x5a, 0x50, 0x05, 0x6c, 0xde, 0xeb}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("80a22ae3-be7c-4ce2-afe1-5a50056cdeeb")
    ICoreWebView2Environment3 : public ICoreWebView2Environment2
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateCoreWebView2CompositionController(
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE CreateCoreWebView2PointerInfo(
            /* [retval][out] */ ICoreWebView2PointerInfo * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment3 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment3 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment3 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment3 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment3 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment3 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment3 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        END_INTERFACE
    } ICoreWebView2Environment3Vtbl;

    interface ICoreWebView2Environment3
    {
        CONST_VTBL struct ICoreWebView2Environment3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment3_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment3_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment3_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment3_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment3_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment3_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment3_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment3_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler = {0x02fab84b, 0x1428, 0x4fb7, {0xad, 0x45, 0x1b, 0x2e, 0x64, 0x73, 0x61, 0x84}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("02fab84b-1428-4fb7-ad45-1b2e64736184")
    ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2CompositionController * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2CompositionController *result);

        END_INTERFACE
    } ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandlerVtbl;

    interface ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment4_INTERFACE_DEFINED__
#define __ICoreWebView2Environment4_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment4 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment4 = {0x20944379, 0x6dcf, 0x41d6, {0xa0, 0xa0, 0xab, 0xc0, 0xfc, 0x50, 0xde, 0x0d}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("20944379-6dcf-41d6-a0a0-abc0fc50de0d")
    ICoreWebView2Environment4 : public ICoreWebView2Environment3
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetAutomationProviderForWindow(
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment4Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment4 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment4 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment4 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment4 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment4 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment4 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment4 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment4 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment4 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment4 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        END_INTERFACE
    } ICoreWebView2Environment4Vtbl;

    interface ICoreWebView2Environment4
    {
        CONST_VTBL struct ICoreWebView2Environment4Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment4_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment4_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment4_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment4_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment4_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment4_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment4_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment4_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment4_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment4_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment4_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment4_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment4_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment5_INTERFACE_DEFINED__
#define __ICoreWebView2Environment5_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment5 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment5 = {0x319e423d, 0xe0d7, 0x4b8d, {0x92, 0x54, 0xae, 0x94, 0x75, 0xde, 0x9b, 0x17}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("319e423d-e0d7-4b8d-9254-ae9475de9b17")
    ICoreWebView2Environment5 : public ICoreWebView2Environment4
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_BrowserProcessExited(
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_BrowserProcessExited(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment5Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment5 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment5 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment5 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment5 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment5 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment5 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment5 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment5 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment5 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment5 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment5 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment5 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2Environment5Vtbl;

    interface ICoreWebView2Environment5
    {
        CONST_VTBL struct ICoreWebView2Environment5Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment5_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment5_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment5_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment5_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment5_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment5_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment5_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment5_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment5_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment5_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment5_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment5_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment5_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment5_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment5_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BrowserProcessExitedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2BrowserProcessExitedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2BrowserProcessExitedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BrowserProcessExitedEventHandler = {0xfa504257, 0xa216, 0x4911, {0xa8, 0x60, 0xfe, 0x88, 0x25, 0x71, 0x28, 0x61}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("fa504257-a216-4911-a860-fe8825712861")
    ICoreWebView2BrowserProcessExitedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Environment * sender,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BrowserProcessExitedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BrowserProcessExitedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BrowserProcessExitedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BrowserProcessExitedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserProcessExitedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2BrowserProcessExitedEventHandler *This,
            /* [in] */ ICoreWebView2Environment *sender,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2BrowserProcessExitedEventHandlerVtbl;

    interface ICoreWebView2BrowserProcessExitedEventHandler
    {
        CONST_VTBL struct ICoreWebView2BrowserProcessExitedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BrowserProcessExitedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BrowserProcessExitedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BrowserProcessExitedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BrowserProcessExitedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BrowserProcessExitedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment6_INTERFACE_DEFINED__
#define __ICoreWebView2Environment6_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment6 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment6 = {0xe59ee362, 0xacbd, 0x4857, {0x9a, 0x8e, 0xd3, 0x64, 0x4d, 0x94, 0x59, 0xa9}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e59ee362-acbd-4857-9a8e-d3644d9459a9")
    ICoreWebView2Environment6 : public ICoreWebView2Environment5
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreatePrintSettings(
            /* [retval][out] */ ICoreWebView2PrintSettings * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment6Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment6 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment6 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment6 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment6 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment6 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment6 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment6 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment6 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment6 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment6 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment6 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment6, CreatePrintSettings)
        HRESULT(STDMETHODCALLTYPE *CreatePrintSettings)(
            ICoreWebView2Environment6 *This,
            /* [retval][out] */ ICoreWebView2PrintSettings **value);

        END_INTERFACE
    } ICoreWebView2Environment6Vtbl;

    interface ICoreWebView2Environment6
    {
        CONST_VTBL struct ICoreWebView2Environment6Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment6_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment6_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment6_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment6_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment6_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment6_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment6_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment6_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment6_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment6_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment6_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment6_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment6_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment6_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#define ICoreWebView2Environment6_CreatePrintSettings(This, value) \
    ((This)->lpVtbl->CreatePrintSettings(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment6_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment7_INTERFACE_DEFINED__
#define __ICoreWebView2Environment7_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment7 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment7 = {0x43c22296, 0x3bbd, 0x43a4, {0x9c, 0x00, 0x5c, 0x0d, 0xf6, 0xdd, 0x29, 0xa2}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("43c22296-3bbd-43a4-9c00-5c0df6dd29a2")
    ICoreWebView2Environment7 : public ICoreWebView2Environment6
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UserDataFolder(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment7Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment7 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment7 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment7 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment7 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment7 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment7 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment7 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment7 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment7 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment7 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment7 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment6, CreatePrintSettings)
        HRESULT(STDMETHODCALLTYPE *CreatePrintSettings)(
            ICoreWebView2Environment7 *This,
            /* [retval][out] */ ICoreWebView2PrintSettings **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment7, get_UserDataFolder)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserDataFolder)(
            ICoreWebView2Environment7 *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2Environment7Vtbl;

    interface ICoreWebView2Environment7
    {
        CONST_VTBL struct ICoreWebView2Environment7Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment7_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment7_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment7_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment7_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment7_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment7_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment7_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment7_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment7_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment7_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment7_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment7_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment7_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment7_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#define ICoreWebView2Environment7_CreatePrintSettings(This, value) \
    ((This)->lpVtbl->CreatePrintSettings(This, value))

#define ICoreWebView2Environment7_get_UserDataFolder(This, value) \
    ((This)->lpVtbl->get_UserDataFolder(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment7_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment8_INTERFACE_DEFINED__
#define __ICoreWebView2Environment8_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment8 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment8 = {0xd6eb91dd, 0xc3d2, 0x45e5, {0xbd, 0x29, 0x6d, 0xc2, 0xbc, 0x4d, 0xe9, 0xcf}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("d6eb91dd-c3d2-45e5-bd29-6dc2bc4de9cf")
    ICoreWebView2Environment8 : public ICoreWebView2Environment7
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_ProcessInfosChanged(
            /* [in] */ ICoreWebView2ProcessInfosChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ProcessInfosChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetProcessInfos(
            /* [retval][out] */ ICoreWebView2ProcessInfoCollection * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment8Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment8 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment8 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment8 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment8 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment8 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment8 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment8 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment8 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment8 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment8 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment8 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment6, CreatePrintSettings)
        HRESULT(STDMETHODCALLTYPE *CreatePrintSettings)(
            ICoreWebView2Environment8 *This,
            /* [retval][out] */ ICoreWebView2PrintSettings **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment7, get_UserDataFolder)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserDataFolder)(
            ICoreWebView2Environment8 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, add_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *add_ProcessInfosChanged)(
            ICoreWebView2Environment8 *This,
            /* [in] */ ICoreWebView2ProcessInfosChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, remove_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessInfosChanged)(
            ICoreWebView2Environment8 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, GetProcessInfos)
        HRESULT(STDMETHODCALLTYPE *GetProcessInfos)(
            ICoreWebView2Environment8 *This,
            /* [retval][out] */ ICoreWebView2ProcessInfoCollection **value);

        END_INTERFACE
    } ICoreWebView2Environment8Vtbl;

    interface ICoreWebView2Environment8
    {
        CONST_VTBL struct ICoreWebView2Environment8Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment8_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment8_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment8_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment8_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment8_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment8_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment8_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment8_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment8_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment8_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment8_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment8_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment8_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment8_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#define ICoreWebView2Environment8_CreatePrintSettings(This, value) \
    ((This)->lpVtbl->CreatePrintSettings(This, value))

#define ICoreWebView2Environment8_get_UserDataFolder(This, value) \
    ((This)->lpVtbl->get_UserDataFolder(This, value))

#define ICoreWebView2Environment8_add_ProcessInfosChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessInfosChanged(This, eventHandler, token))

#define ICoreWebView2Environment8_remove_ProcessInfosChanged(This, token) \
    ((This)->lpVtbl->remove_ProcessInfosChanged(This, token))

#define ICoreWebView2Environment8_GetProcessInfos(This, value) \
    ((This)->lpVtbl->GetProcessInfos(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment8_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProcessInfosChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ProcessInfosChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProcessInfosChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProcessInfosChangedEventHandler = {0xf4af0c39, 0x44b9, 0x40e9, {0x8b, 0x11, 0x04, 0x84, 0xcf, 0xb9, 0xe0, 0xa1}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f4af0c39-44b9-40e9-8b11-0484cfb9e0a1")
    ICoreWebView2ProcessInfosChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Environment * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProcessInfosChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProcessInfosChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProcessInfosChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProcessInfosChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessInfosChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ProcessInfosChangedEventHandler *This,
            /* [in] */ ICoreWebView2Environment *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2ProcessInfosChangedEventHandlerVtbl;

    interface ICoreWebView2ProcessInfosChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2ProcessInfosChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProcessInfosChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProcessInfosChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProcessInfosChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProcessInfosChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProcessInfosChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProcessInfoCollection_INTERFACE_DEFINED__
#define __ICoreWebView2ProcessInfoCollection_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProcessInfoCollection */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProcessInfoCollection = {0x402b99cd, 0xa0cc, 0x4fa5, {0xb7, 0xa5, 0x51, 0xd8, 0x6a, 0x1d, 0x23, 0x39}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("402b99cd-a0cc-4fa5-b7a5-51d86a1d2339")
    ICoreWebView2ProcessInfoCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2ProcessInfo * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProcessInfoCollectionVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProcessInfoCollection *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProcessInfoCollection *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProcessInfoCollection *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessInfoCollection, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2ProcessInfoCollection *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessInfoCollection, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2ProcessInfoCollection *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2ProcessInfo **value);

        END_INTERFACE
    } ICoreWebView2ProcessInfoCollectionVtbl;

    interface ICoreWebView2ProcessInfoCollection
    {
        CONST_VTBL struct ICoreWebView2ProcessInfoCollectionVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProcessInfoCollection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProcessInfoCollection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProcessInfoCollection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProcessInfoCollection_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2ProcessInfoCollection_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProcessInfoCollection_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment9_INTERFACE_DEFINED__
#define __ICoreWebView2Environment9_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment9 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment9 = {0xf06f41bf, 0x4b5a, 0x49d8, {0xb9, 0xf6, 0xfa, 0x16, 0xcd, 0x29, 0xf2, 0x74}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f06f41bf-4b5a-49d8-b9f6-fa16cd29f274")
    ICoreWebView2Environment9 : public ICoreWebView2Environment8
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateContextMenuItem(
            /* [in] */ LPCWSTR Label,
            /* [in] */ IStream * iconStream,
            /* [in] */ COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND Kind,
            /* [retval][out] */ ICoreWebView2ContextMenuItem * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment9Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment9 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment9 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment9 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment9 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment9 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment9 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment9 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment9 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment9 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment9 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment9 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment6, CreatePrintSettings)
        HRESULT(STDMETHODCALLTYPE *CreatePrintSettings)(
            ICoreWebView2Environment9 *This,
            /* [retval][out] */ ICoreWebView2PrintSettings **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment7, get_UserDataFolder)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserDataFolder)(
            ICoreWebView2Environment9 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, add_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *add_ProcessInfosChanged)(
            ICoreWebView2Environment9 *This,
            /* [in] */ ICoreWebView2ProcessInfosChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, remove_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessInfosChanged)(
            ICoreWebView2Environment9 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, GetProcessInfos)
        HRESULT(STDMETHODCALLTYPE *GetProcessInfos)(
            ICoreWebView2Environment9 *This,
            /* [retval][out] */ ICoreWebView2ProcessInfoCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment9, CreateContextMenuItem)
        HRESULT(STDMETHODCALLTYPE *CreateContextMenuItem)(
            ICoreWebView2Environment9 *This,
            /* [in] */ LPCWSTR Label,
            /* [in] */ IStream *iconStream,
            /* [in] */ COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND Kind,
            /* [retval][out] */ ICoreWebView2ContextMenuItem **value);

        END_INTERFACE
    } ICoreWebView2Environment9Vtbl;

    interface ICoreWebView2Environment9
    {
        CONST_VTBL struct ICoreWebView2Environment9Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment9_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment9_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment9_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment9_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment9_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment9_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment9_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment9_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment9_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment9_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment9_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment9_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment9_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment9_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#define ICoreWebView2Environment9_CreatePrintSettings(This, value) \
    ((This)->lpVtbl->CreatePrintSettings(This, value))

#define ICoreWebView2Environment9_get_UserDataFolder(This, value) \
    ((This)->lpVtbl->get_UserDataFolder(This, value))

#define ICoreWebView2Environment9_add_ProcessInfosChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessInfosChanged(This, eventHandler, token))

#define ICoreWebView2Environment9_remove_ProcessInfosChanged(This, token) \
    ((This)->lpVtbl->remove_ProcessInfosChanged(This, token))

#define ICoreWebView2Environment9_GetProcessInfos(This, value) \
    ((This)->lpVtbl->GetProcessInfos(This, value))

#define ICoreWebView2Environment9_CreateContextMenuItem(This, Label, iconStream, Kind, value) \
    ((This)->lpVtbl->CreateContextMenuItem(This, Label, iconStream, Kind, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment9_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment10_INTERFACE_DEFINED__
#define __ICoreWebView2Environment10_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment10 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment10 = {0xee0eb9df, 0x6f12, 0x46ce, {0xb5, 0x3f, 0x3f, 0x47, 0xb9, 0xc9, 0x28, 0xe0}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ee0eb9df-6f12-46ce-b53f-3f47b9c928e0")
    ICoreWebView2Environment10 : public ICoreWebView2Environment9
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateCoreWebView2ControllerOptions(
            /* [retval][out] */ ICoreWebView2ControllerOptions * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE CreateCoreWebView2ControllerWithOptions(
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions * options,
            /* [in] */ ICoreWebView2CreateCoreWebView2ControllerCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE CreateCoreWebView2CompositionControllerWithOptions(
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions * options,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment10Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment10 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment10 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment10 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment10 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment10 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment10 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment10 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment10 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment10 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment10 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment10 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment10 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment6, CreatePrintSettings)
        HRESULT(STDMETHODCALLTYPE *CreatePrintSettings)(
            ICoreWebView2Environment10 *This,
            /* [retval][out] */ ICoreWebView2PrintSettings **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment7, get_UserDataFolder)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserDataFolder)(
            ICoreWebView2Environment10 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, add_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *add_ProcessInfosChanged)(
            ICoreWebView2Environment10 *This,
            /* [in] */ ICoreWebView2ProcessInfosChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, remove_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessInfosChanged)(
            ICoreWebView2Environment10 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, GetProcessInfos)
        HRESULT(STDMETHODCALLTYPE *GetProcessInfos)(
            ICoreWebView2Environment10 *This,
            /* [retval][out] */ ICoreWebView2ProcessInfoCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment9, CreateContextMenuItem)
        HRESULT(STDMETHODCALLTYPE *CreateContextMenuItem)(
            ICoreWebView2Environment10 *This,
            /* [in] */ LPCWSTR Label,
            /* [in] */ IStream *iconStream,
            /* [in] */ COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND Kind,
            /* [retval][out] */ ICoreWebView2ContextMenuItem **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerOptions)(
            ICoreWebView2Environment10 *This,
            /* [retval][out] */ ICoreWebView2ControllerOptions **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerWithOptions)(
            ICoreWebView2Environment10 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2CompositionControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionControllerWithOptions)(
            ICoreWebView2Environment10 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2Environment10Vtbl;

    interface ICoreWebView2Environment10
    {
        CONST_VTBL struct ICoreWebView2Environment10Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment10_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment10_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment10_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment10_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment10_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment10_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment10_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment10_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment10_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment10_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment10_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment10_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment10_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment10_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#define ICoreWebView2Environment10_CreatePrintSettings(This, value) \
    ((This)->lpVtbl->CreatePrintSettings(This, value))

#define ICoreWebView2Environment10_get_UserDataFolder(This, value) \
    ((This)->lpVtbl->get_UserDataFolder(This, value))

#define ICoreWebView2Environment10_add_ProcessInfosChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessInfosChanged(This, eventHandler, token))

#define ICoreWebView2Environment10_remove_ProcessInfosChanged(This, token) \
    ((This)->lpVtbl->remove_ProcessInfosChanged(This, token))

#define ICoreWebView2Environment10_GetProcessInfos(This, value) \
    ((This)->lpVtbl->GetProcessInfos(This, value))

#define ICoreWebView2Environment10_CreateContextMenuItem(This, Label, iconStream, Kind, value) \
    ((This)->lpVtbl->CreateContextMenuItem(This, Label, iconStream, Kind, value))

#define ICoreWebView2Environment10_CreateCoreWebView2ControllerOptions(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerOptions(This, value))

#define ICoreWebView2Environment10_CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler))

#define ICoreWebView2Environment10_CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment10_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment11_INTERFACE_DEFINED__
#define __ICoreWebView2Environment11_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment11 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment11 = {0xf0913dc6, 0xa0ec, 0x42ef, {0x98, 0x05, 0x91, 0xdf, 0xf3, 0xa2, 0x96, 0x6a}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f0913dc6-a0ec-42ef-9805-91dff3a2966a")
    ICoreWebView2Environment11 : public ICoreWebView2Environment10
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FailureReportFolderPath(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment11Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment11 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment11 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment11 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment11 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment11 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment11 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment11 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment11 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment11 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment11 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment11 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment11 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment6, CreatePrintSettings)
        HRESULT(STDMETHODCALLTYPE *CreatePrintSettings)(
            ICoreWebView2Environment11 *This,
            /* [retval][out] */ ICoreWebView2PrintSettings **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment7, get_UserDataFolder)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserDataFolder)(
            ICoreWebView2Environment11 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, add_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *add_ProcessInfosChanged)(
            ICoreWebView2Environment11 *This,
            /* [in] */ ICoreWebView2ProcessInfosChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, remove_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessInfosChanged)(
            ICoreWebView2Environment11 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, GetProcessInfos)
        HRESULT(STDMETHODCALLTYPE *GetProcessInfos)(
            ICoreWebView2Environment11 *This,
            /* [retval][out] */ ICoreWebView2ProcessInfoCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment9, CreateContextMenuItem)
        HRESULT(STDMETHODCALLTYPE *CreateContextMenuItem)(
            ICoreWebView2Environment11 *This,
            /* [in] */ LPCWSTR Label,
            /* [in] */ IStream *iconStream,
            /* [in] */ COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND Kind,
            /* [retval][out] */ ICoreWebView2ContextMenuItem **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerOptions)(
            ICoreWebView2Environment11 *This,
            /* [retval][out] */ ICoreWebView2ControllerOptions **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerWithOptions)(
            ICoreWebView2Environment11 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2CompositionControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionControllerWithOptions)(
            ICoreWebView2Environment11 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment11, get_FailureReportFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FailureReportFolderPath)(
            ICoreWebView2Environment11 *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2Environment11Vtbl;

    interface ICoreWebView2Environment11
    {
        CONST_VTBL struct ICoreWebView2Environment11Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment11_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment11_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment11_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment11_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment11_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment11_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment11_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment11_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment11_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment11_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment11_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment11_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment11_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment11_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#define ICoreWebView2Environment11_CreatePrintSettings(This, value) \
    ((This)->lpVtbl->CreatePrintSettings(This, value))

#define ICoreWebView2Environment11_get_UserDataFolder(This, value) \
    ((This)->lpVtbl->get_UserDataFolder(This, value))

#define ICoreWebView2Environment11_add_ProcessInfosChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessInfosChanged(This, eventHandler, token))

#define ICoreWebView2Environment11_remove_ProcessInfosChanged(This, token) \
    ((This)->lpVtbl->remove_ProcessInfosChanged(This, token))

#define ICoreWebView2Environment11_GetProcessInfos(This, value) \
    ((This)->lpVtbl->GetProcessInfos(This, value))

#define ICoreWebView2Environment11_CreateContextMenuItem(This, Label, iconStream, Kind, value) \
    ((This)->lpVtbl->CreateContextMenuItem(This, Label, iconStream, Kind, value))

#define ICoreWebView2Environment11_CreateCoreWebView2ControllerOptions(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerOptions(This, value))

#define ICoreWebView2Environment11_CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler))

#define ICoreWebView2Environment11_CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler))

#define ICoreWebView2Environment11_get_FailureReportFolderPath(This, value) \
    ((This)->lpVtbl->get_FailureReportFolderPath(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment11_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment12_INTERFACE_DEFINED__
#define __ICoreWebView2Environment12_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment12 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment12 = {0xf503db9b, 0x739f, 0x48dd, {0xb1, 0x51, 0xfd, 0xfc, 0xf2, 0x53, 0xf5, 0x4e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f503db9b-739f-48dd-b151-fdfcf253f54e")
    ICoreWebView2Environment12 : public ICoreWebView2Environment11
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateSharedBuffer(
            /* [in] */ UINT64 Size,
            /* [retval][out] */ ICoreWebView2SharedBuffer * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment12Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment12 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment12 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment12 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment12 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment12 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment12 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment12 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment12 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment12 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment12 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment12 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment12 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment6, CreatePrintSettings)
        HRESULT(STDMETHODCALLTYPE *CreatePrintSettings)(
            ICoreWebView2Environment12 *This,
            /* [retval][out] */ ICoreWebView2PrintSettings **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment7, get_UserDataFolder)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserDataFolder)(
            ICoreWebView2Environment12 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, add_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *add_ProcessInfosChanged)(
            ICoreWebView2Environment12 *This,
            /* [in] */ ICoreWebView2ProcessInfosChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, remove_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessInfosChanged)(
            ICoreWebView2Environment12 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, GetProcessInfos)
        HRESULT(STDMETHODCALLTYPE *GetProcessInfos)(
            ICoreWebView2Environment12 *This,
            /* [retval][out] */ ICoreWebView2ProcessInfoCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment9, CreateContextMenuItem)
        HRESULT(STDMETHODCALLTYPE *CreateContextMenuItem)(
            ICoreWebView2Environment12 *This,
            /* [in] */ LPCWSTR Label,
            /* [in] */ IStream *iconStream,
            /* [in] */ COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND Kind,
            /* [retval][out] */ ICoreWebView2ContextMenuItem **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerOptions)(
            ICoreWebView2Environment12 *This,
            /* [retval][out] */ ICoreWebView2ControllerOptions **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerWithOptions)(
            ICoreWebView2Environment12 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2CompositionControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionControllerWithOptions)(
            ICoreWebView2Environment12 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment11, get_FailureReportFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FailureReportFolderPath)(
            ICoreWebView2Environment12 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment12, CreateSharedBuffer)
        HRESULT(STDMETHODCALLTYPE *CreateSharedBuffer)(
            ICoreWebView2Environment12 *This,
            /* [in] */ UINT64 Size,
            /* [retval][out] */ ICoreWebView2SharedBuffer **value);

        END_INTERFACE
    } ICoreWebView2Environment12Vtbl;

    interface ICoreWebView2Environment12
    {
        CONST_VTBL struct ICoreWebView2Environment12Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment12_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment12_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment12_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment12_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment12_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment12_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment12_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment12_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment12_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment12_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment12_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment12_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment12_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment12_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#define ICoreWebView2Environment12_CreatePrintSettings(This, value) \
    ((This)->lpVtbl->CreatePrintSettings(This, value))

#define ICoreWebView2Environment12_get_UserDataFolder(This, value) \
    ((This)->lpVtbl->get_UserDataFolder(This, value))

#define ICoreWebView2Environment12_add_ProcessInfosChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessInfosChanged(This, eventHandler, token))

#define ICoreWebView2Environment12_remove_ProcessInfosChanged(This, token) \
    ((This)->lpVtbl->remove_ProcessInfosChanged(This, token))

#define ICoreWebView2Environment12_GetProcessInfos(This, value) \
    ((This)->lpVtbl->GetProcessInfos(This, value))

#define ICoreWebView2Environment12_CreateContextMenuItem(This, Label, iconStream, Kind, value) \
    ((This)->lpVtbl->CreateContextMenuItem(This, Label, iconStream, Kind, value))

#define ICoreWebView2Environment12_CreateCoreWebView2ControllerOptions(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerOptions(This, value))

#define ICoreWebView2Environment12_CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler))

#define ICoreWebView2Environment12_CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler))

#define ICoreWebView2Environment12_get_FailureReportFolderPath(This, value) \
    ((This)->lpVtbl->get_FailureReportFolderPath(This, value))

#define ICoreWebView2Environment12_CreateSharedBuffer(This, Size, value) \
    ((This)->lpVtbl->CreateSharedBuffer(This, Size, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment12_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment13_INTERFACE_DEFINED__
#define __ICoreWebView2Environment13_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment13 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment13 = {0xaf641f58, 0x72b2, 0x11ee, {0xb9, 0x62, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("af641f58-72b2-11ee-b962-0242ac120002")
    ICoreWebView2Environment13 : public ICoreWebView2Environment12
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetProcessExtendedInfos(
            /* [in] */ ICoreWebView2GetProcessExtendedInfosCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment13Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment13 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment13 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment13 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment13 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment13 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment13 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment13 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment13 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment13 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment13 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment13 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment13 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment6, CreatePrintSettings)
        HRESULT(STDMETHODCALLTYPE *CreatePrintSettings)(
            ICoreWebView2Environment13 *This,
            /* [retval][out] */ ICoreWebView2PrintSettings **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment7, get_UserDataFolder)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserDataFolder)(
            ICoreWebView2Environment13 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, add_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *add_ProcessInfosChanged)(
            ICoreWebView2Environment13 *This,
            /* [in] */ ICoreWebView2ProcessInfosChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, remove_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessInfosChanged)(
            ICoreWebView2Environment13 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, GetProcessInfos)
        HRESULT(STDMETHODCALLTYPE *GetProcessInfos)(
            ICoreWebView2Environment13 *This,
            /* [retval][out] */ ICoreWebView2ProcessInfoCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment9, CreateContextMenuItem)
        HRESULT(STDMETHODCALLTYPE *CreateContextMenuItem)(
            ICoreWebView2Environment13 *This,
            /* [in] */ LPCWSTR Label,
            /* [in] */ IStream *iconStream,
            /* [in] */ COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND Kind,
            /* [retval][out] */ ICoreWebView2ContextMenuItem **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerOptions)(
            ICoreWebView2Environment13 *This,
            /* [retval][out] */ ICoreWebView2ControllerOptions **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerWithOptions)(
            ICoreWebView2Environment13 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2CompositionControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionControllerWithOptions)(
            ICoreWebView2Environment13 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment11, get_FailureReportFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FailureReportFolderPath)(
            ICoreWebView2Environment13 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment12, CreateSharedBuffer)
        HRESULT(STDMETHODCALLTYPE *CreateSharedBuffer)(
            ICoreWebView2Environment13 *This,
            /* [in] */ UINT64 Size,
            /* [retval][out] */ ICoreWebView2SharedBuffer **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment13, GetProcessExtendedInfos)
        HRESULT(STDMETHODCALLTYPE *GetProcessExtendedInfos)(
            ICoreWebView2Environment13 *This,
            /* [in] */ ICoreWebView2GetProcessExtendedInfosCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2Environment13Vtbl;

    interface ICoreWebView2Environment13
    {
        CONST_VTBL struct ICoreWebView2Environment13Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment13_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment13_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment13_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment13_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment13_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment13_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment13_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment13_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment13_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment13_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment13_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment13_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment13_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment13_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#define ICoreWebView2Environment13_CreatePrintSettings(This, value) \
    ((This)->lpVtbl->CreatePrintSettings(This, value))

#define ICoreWebView2Environment13_get_UserDataFolder(This, value) \
    ((This)->lpVtbl->get_UserDataFolder(This, value))

#define ICoreWebView2Environment13_add_ProcessInfosChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessInfosChanged(This, eventHandler, token))

#define ICoreWebView2Environment13_remove_ProcessInfosChanged(This, token) \
    ((This)->lpVtbl->remove_ProcessInfosChanged(This, token))

#define ICoreWebView2Environment13_GetProcessInfos(This, value) \
    ((This)->lpVtbl->GetProcessInfos(This, value))

#define ICoreWebView2Environment13_CreateContextMenuItem(This, Label, iconStream, Kind, value) \
    ((This)->lpVtbl->CreateContextMenuItem(This, Label, iconStream, Kind, value))

#define ICoreWebView2Environment13_CreateCoreWebView2ControllerOptions(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerOptions(This, value))

#define ICoreWebView2Environment13_CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler))

#define ICoreWebView2Environment13_CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler))

#define ICoreWebView2Environment13_get_FailureReportFolderPath(This, value) \
    ((This)->lpVtbl->get_FailureReportFolderPath(This, value))

#define ICoreWebView2Environment13_CreateSharedBuffer(This, Size, value) \
    ((This)->lpVtbl->CreateSharedBuffer(This, Size, value))

#define ICoreWebView2Environment13_GetProcessExtendedInfos(This, handler) \
    ((This)->lpVtbl->GetProcessExtendedInfos(This, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment13_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2GetProcessExtendedInfosCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2GetProcessExtendedInfosCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2GetProcessExtendedInfosCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2GetProcessExtendedInfosCompletedHandler = {0xf45e55aa, 0x3bc2, 0x11ee, {0xbe, 0x56, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f45e55aa-3bc2-11ee-be56-0242ac120002")
    ICoreWebView2GetProcessExtendedInfosCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2ProcessExtendedInfoCollection * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2GetProcessExtendedInfosCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2GetProcessExtendedInfosCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2GetProcessExtendedInfosCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2GetProcessExtendedInfosCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2GetProcessExtendedInfosCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2GetProcessExtendedInfosCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2ProcessExtendedInfoCollection *result);

        END_INTERFACE
    } ICoreWebView2GetProcessExtendedInfosCompletedHandlerVtbl;

    interface ICoreWebView2GetProcessExtendedInfosCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2GetProcessExtendedInfosCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2GetProcessExtendedInfosCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2GetProcessExtendedInfosCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2GetProcessExtendedInfosCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2GetProcessExtendedInfosCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2GetProcessExtendedInfosCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProcessExtendedInfoCollection_INTERFACE_DEFINED__
#define __ICoreWebView2ProcessExtendedInfoCollection_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProcessExtendedInfoCollection */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProcessExtendedInfoCollection = {0x32efa696, 0x407a, 0x11ee, {0xbe, 0x56, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("32efa696-407a-11ee-be56-0242ac120002")
    ICoreWebView2ProcessExtendedInfoCollection : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2ProcessExtendedInfo * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProcessExtendedInfoCollectionVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProcessExtendedInfoCollection *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProcessExtendedInfoCollection *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProcessExtendedInfoCollection *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessExtendedInfoCollection, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2ProcessExtendedInfoCollection *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessExtendedInfoCollection, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2ProcessExtendedInfoCollection *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2ProcessExtendedInfo **value);

        END_INTERFACE
    } ICoreWebView2ProcessExtendedInfoCollectionVtbl;

    interface ICoreWebView2ProcessExtendedInfoCollection
    {
        CONST_VTBL struct ICoreWebView2ProcessExtendedInfoCollectionVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProcessExtendedInfoCollection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProcessExtendedInfoCollection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProcessExtendedInfoCollection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProcessExtendedInfoCollection_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2ProcessExtendedInfoCollection_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProcessExtendedInfoCollection_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Environment14_INTERFACE_DEFINED__
#define __ICoreWebView2Environment14_INTERFACE_DEFINED__

    /* interface ICoreWebView2Environment14 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Environment14 = {0xa5e9fad9, 0xc875, 0x59da, {0x9b, 0xd7, 0x47, 0x3a, 0xa5, 0xca, 0x1c, 0xef}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("a5e9fad9-c875-59da-9bd7-473aa5ca1cef")
    ICoreWebView2Environment14 : public ICoreWebView2Environment13
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE CreateWebFileSystemFileHandle(
            /* [in] */ LPCWSTR path,
            /* [in] */ COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION permission,
            /* [retval][out] */ ICoreWebView2FileSystemHandle * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE CreateWebFileSystemDirectoryHandle(
            /* [in] */ LPCWSTR path,
            /* [in] */ COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION permission,
            /* [retval][out] */ ICoreWebView2FileSystemHandle * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE CreateObjectCollection(
            /* [in] */ UINT32 length,
            /* [size_is][in] */ IUnknown * *items,
            /* [retval][out] */ ICoreWebView2ObjectCollection * *objectCollection) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Environment14Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Environment14 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Environment14 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Environment14 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateCoreWebView2Controller)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2Controller)(
            ICoreWebView2Environment14 *This,
            HWND parentWindow,
            ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, CreateWebResourceResponse)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceResponse)(
            ICoreWebView2Environment14 *This,
            /* [in] */ IStream *content,
            /* [in] */ int statusCode,
            /* [in] */ LPCWSTR reasonPhrase,
            /* [in] */ LPCWSTR headers,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, get_BrowserVersionString)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BrowserVersionString)(
            ICoreWebView2Environment14 *This,
            /* [retval][out] */ LPWSTR *versionInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, add_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *add_NewBrowserVersionAvailable)(
            ICoreWebView2Environment14 *This,
            /* [in] */ ICoreWebView2NewBrowserVersionAvailableEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment, remove_NewBrowserVersionAvailable)
        HRESULT(STDMETHODCALLTYPE *remove_NewBrowserVersionAvailable)(
            ICoreWebView2Environment14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment2, CreateWebResourceRequest)
        HRESULT(STDMETHODCALLTYPE *CreateWebResourceRequest)(
            ICoreWebView2Environment14 *This,
            /* [in] */ LPCWSTR uri,
            /* [in] */ LPCWSTR Method,
            /* [in] */ IStream *postData,
            /* [in] */ LPCWSTR Headers,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2CompositionController)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionController)(
            ICoreWebView2Environment14 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment3, CreateCoreWebView2PointerInfo)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2PointerInfo)(
            ICoreWebView2Environment14 *This,
            /* [retval][out] */ ICoreWebView2PointerInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment4, GetAutomationProviderForWindow)
        HRESULT(STDMETHODCALLTYPE *GetAutomationProviderForWindow)(
            ICoreWebView2Environment14 *This,
            /* [in] */ HWND hwnd,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, add_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *add_BrowserProcessExited)(
            ICoreWebView2Environment14 *This,
            /* [in] */ ICoreWebView2BrowserProcessExitedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment5, remove_BrowserProcessExited)
        HRESULT(STDMETHODCALLTYPE *remove_BrowserProcessExited)(
            ICoreWebView2Environment14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment6, CreatePrintSettings)
        HRESULT(STDMETHODCALLTYPE *CreatePrintSettings)(
            ICoreWebView2Environment14 *This,
            /* [retval][out] */ ICoreWebView2PrintSettings **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment7, get_UserDataFolder)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserDataFolder)(
            ICoreWebView2Environment14 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, add_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *add_ProcessInfosChanged)(
            ICoreWebView2Environment14 *This,
            /* [in] */ ICoreWebView2ProcessInfosChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, remove_ProcessInfosChanged)
        HRESULT(STDMETHODCALLTYPE *remove_ProcessInfosChanged)(
            ICoreWebView2Environment14 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment8, GetProcessInfos)
        HRESULT(STDMETHODCALLTYPE *GetProcessInfos)(
            ICoreWebView2Environment14 *This,
            /* [retval][out] */ ICoreWebView2ProcessInfoCollection **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment9, CreateContextMenuItem)
        HRESULT(STDMETHODCALLTYPE *CreateContextMenuItem)(
            ICoreWebView2Environment14 *This,
            /* [in] */ LPCWSTR Label,
            /* [in] */ IStream *iconStream,
            /* [in] */ COREWEBVIEW2_CONTEXT_MENU_ITEM_KIND Kind,
            /* [retval][out] */ ICoreWebView2ContextMenuItem **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerOptions)(
            ICoreWebView2Environment14 *This,
            /* [retval][out] */ ICoreWebView2ControllerOptions **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2ControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2ControllerWithOptions)(
            ICoreWebView2Environment14 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2ControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment10, CreateCoreWebView2CompositionControllerWithOptions)
        HRESULT(STDMETHODCALLTYPE *CreateCoreWebView2CompositionControllerWithOptions)(
            ICoreWebView2Environment14 *This,
            /* [in] */ HWND ParentWindow,
            /* [in] */ ICoreWebView2ControllerOptions *options,
            /* [in] */ ICoreWebView2CreateCoreWebView2CompositionControllerCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment11, get_FailureReportFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FailureReportFolderPath)(
            ICoreWebView2Environment14 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment12, CreateSharedBuffer)
        HRESULT(STDMETHODCALLTYPE *CreateSharedBuffer)(
            ICoreWebView2Environment14 *This,
            /* [in] */ UINT64 Size,
            /* [retval][out] */ ICoreWebView2SharedBuffer **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment13, GetProcessExtendedInfos)
        HRESULT(STDMETHODCALLTYPE *GetProcessExtendedInfos)(
            ICoreWebView2Environment14 *This,
            /* [in] */ ICoreWebView2GetProcessExtendedInfosCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment14, CreateWebFileSystemFileHandle)
        HRESULT(STDMETHODCALLTYPE *CreateWebFileSystemFileHandle)(
            ICoreWebView2Environment14 *This,
            /* [in] */ LPCWSTR path,
            /* [in] */ COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION permission,
            /* [retval][out] */ ICoreWebView2FileSystemHandle **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment14, CreateWebFileSystemDirectoryHandle)
        HRESULT(STDMETHODCALLTYPE *CreateWebFileSystemDirectoryHandle)(
            ICoreWebView2Environment14 *This,
            /* [in] */ LPCWSTR path,
            /* [in] */ COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION permission,
            /* [retval][out] */ ICoreWebView2FileSystemHandle **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Environment14, CreateObjectCollection)
        HRESULT(STDMETHODCALLTYPE *CreateObjectCollection)(
            ICoreWebView2Environment14 *This,
            /* [in] */ UINT32 length,
            /* [size_is][in] */ IUnknown **items,
            /* [retval][out] */ ICoreWebView2ObjectCollection **objectCollection);

        END_INTERFACE
    } ICoreWebView2Environment14Vtbl;

    interface ICoreWebView2Environment14
    {
        CONST_VTBL struct ICoreWebView2Environment14Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Environment14_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Environment14_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Environment14_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Environment14_CreateCoreWebView2Controller(This, parentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2Controller(This, parentWindow, handler))

#define ICoreWebView2Environment14_CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response) \
    ((This)->lpVtbl->CreateWebResourceResponse(This, content, statusCode, reasonPhrase, headers, response))

#define ICoreWebView2Environment14_get_BrowserVersionString(This, versionInfo) \
    ((This)->lpVtbl->get_BrowserVersionString(This, versionInfo))

#define ICoreWebView2Environment14_add_NewBrowserVersionAvailable(This, eventHandler, token) \
    ((This)->lpVtbl->add_NewBrowserVersionAvailable(This, eventHandler, token))

#define ICoreWebView2Environment14_remove_NewBrowserVersionAvailable(This, token) \
    ((This)->lpVtbl->remove_NewBrowserVersionAvailable(This, token))

#define ICoreWebView2Environment14_CreateWebResourceRequest(This, uri, Method, postData, Headers, value) \
    ((This)->lpVtbl->CreateWebResourceRequest(This, uri, Method, postData, Headers, value))

#define ICoreWebView2Environment14_CreateCoreWebView2CompositionController(This, ParentWindow, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionController(This, ParentWindow, handler))

#define ICoreWebView2Environment14_CreateCoreWebView2PointerInfo(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2PointerInfo(This, value))

#define ICoreWebView2Environment14_GetAutomationProviderForWindow(This, hwnd, value) \
    ((This)->lpVtbl->GetAutomationProviderForWindow(This, hwnd, value))

#define ICoreWebView2Environment14_add_BrowserProcessExited(This, eventHandler, token) \
    ((This)->lpVtbl->add_BrowserProcessExited(This, eventHandler, token))

#define ICoreWebView2Environment14_remove_BrowserProcessExited(This, token) \
    ((This)->lpVtbl->remove_BrowserProcessExited(This, token))

#define ICoreWebView2Environment14_CreatePrintSettings(This, value) \
    ((This)->lpVtbl->CreatePrintSettings(This, value))

#define ICoreWebView2Environment14_get_UserDataFolder(This, value) \
    ((This)->lpVtbl->get_UserDataFolder(This, value))

#define ICoreWebView2Environment14_add_ProcessInfosChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_ProcessInfosChanged(This, eventHandler, token))

#define ICoreWebView2Environment14_remove_ProcessInfosChanged(This, token) \
    ((This)->lpVtbl->remove_ProcessInfosChanged(This, token))

#define ICoreWebView2Environment14_GetProcessInfos(This, value) \
    ((This)->lpVtbl->GetProcessInfos(This, value))

#define ICoreWebView2Environment14_CreateContextMenuItem(This, Label, iconStream, Kind, value) \
    ((This)->lpVtbl->CreateContextMenuItem(This, Label, iconStream, Kind, value))

#define ICoreWebView2Environment14_CreateCoreWebView2ControllerOptions(This, value) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerOptions(This, value))

#define ICoreWebView2Environment14_CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2ControllerWithOptions(This, ParentWindow, options, handler))

#define ICoreWebView2Environment14_CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler) \
    ((This)->lpVtbl->CreateCoreWebView2CompositionControllerWithOptions(This, ParentWindow, options, handler))

#define ICoreWebView2Environment14_get_FailureReportFolderPath(This, value) \
    ((This)->lpVtbl->get_FailureReportFolderPath(This, value))

#define ICoreWebView2Environment14_CreateSharedBuffer(This, Size, value) \
    ((This)->lpVtbl->CreateSharedBuffer(This, Size, value))

#define ICoreWebView2Environment14_GetProcessExtendedInfos(This, handler) \
    ((This)->lpVtbl->GetProcessExtendedInfos(This, handler))

#define ICoreWebView2Environment14_CreateWebFileSystemFileHandle(This, path, permission, value) \
    ((This)->lpVtbl->CreateWebFileSystemFileHandle(This, path, permission, value))

#define ICoreWebView2Environment14_CreateWebFileSystemDirectoryHandle(This, path, permission, value) \
    ((This)->lpVtbl->CreateWebFileSystemDirectoryHandle(This, path, permission, value))

#define ICoreWebView2Environment14_CreateObjectCollection(This, length, items, objectCollection) \
    ((This)->lpVtbl->CreateObjectCollection(This, length, items, objectCollection))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Environment14_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions_INTERFACE_DEFINED__
#define __ICoreWebView2EnvironmentOptions_INTERFACE_DEFINED__

    /* interface ICoreWebView2EnvironmentOptions */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2EnvironmentOptions = {0x2fde08a8, 0x1e9a, 0x4766, {0x8c, 0x05, 0x95, 0xa9, 0xce, 0xb9, 0xd1, 0xc5}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("2fde08a8-1e9a-4766-8c05-95a9ceb9d1c5")
    ICoreWebView2EnvironmentOptions : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AdditionalBrowserArguments(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AdditionalBrowserArguments(
            /* [in] */ LPCWSTR value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Language(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Language(
            /* [in] */ LPCWSTR value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TargetCompatibleBrowserVersion(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TargetCompatibleBrowserVersion(
            /* [in] */ LPCWSTR value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AllowSingleSignOnUsingOSPrimaryAccount(
            /* [retval][out] */ BOOL * allow) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AllowSingleSignOnUsingOSPrimaryAccount(
            /* [in] */ BOOL allow) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EnvironmentOptionsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2EnvironmentOptions *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2EnvironmentOptions *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2EnvironmentOptions *This);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions, get_AdditionalBrowserArguments)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AdditionalBrowserArguments)(
            ICoreWebView2EnvironmentOptions *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions, put_AdditionalBrowserArguments)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AdditionalBrowserArguments)(
            ICoreWebView2EnvironmentOptions *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions, get_Language)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Language)(
            ICoreWebView2EnvironmentOptions *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions, put_Language)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Language)(
            ICoreWebView2EnvironmentOptions *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions, get_TargetCompatibleBrowserVersion)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_TargetCompatibleBrowserVersion)(
            ICoreWebView2EnvironmentOptions *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions, put_TargetCompatibleBrowserVersion)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_TargetCompatibleBrowserVersion)(
            ICoreWebView2EnvironmentOptions *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions, get_AllowSingleSignOnUsingOSPrimaryAccount)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AllowSingleSignOnUsingOSPrimaryAccount)(
            ICoreWebView2EnvironmentOptions *This,
            /* [retval][out] */ BOOL *allow);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions, put_AllowSingleSignOnUsingOSPrimaryAccount)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AllowSingleSignOnUsingOSPrimaryAccount)(
            ICoreWebView2EnvironmentOptions *This,
            /* [in] */ BOOL allow);

        END_INTERFACE
    } ICoreWebView2EnvironmentOptionsVtbl;

    interface ICoreWebView2EnvironmentOptions
    {
        CONST_VTBL struct ICoreWebView2EnvironmentOptionsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2EnvironmentOptions_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2EnvironmentOptions_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2EnvironmentOptions_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2EnvironmentOptions_get_AdditionalBrowserArguments(This, value) \
    ((This)->lpVtbl->get_AdditionalBrowserArguments(This, value))

#define ICoreWebView2EnvironmentOptions_put_AdditionalBrowserArguments(This, value) \
    ((This)->lpVtbl->put_AdditionalBrowserArguments(This, value))

#define ICoreWebView2EnvironmentOptions_get_Language(This, value) \
    ((This)->lpVtbl->get_Language(This, value))

#define ICoreWebView2EnvironmentOptions_put_Language(This, value) \
    ((This)->lpVtbl->put_Language(This, value))

#define ICoreWebView2EnvironmentOptions_get_TargetCompatibleBrowserVersion(This, value) \
    ((This)->lpVtbl->get_TargetCompatibleBrowserVersion(This, value))

#define ICoreWebView2EnvironmentOptions_put_TargetCompatibleBrowserVersion(This, value) \
    ((This)->lpVtbl->put_TargetCompatibleBrowserVersion(This, value))

#define ICoreWebView2EnvironmentOptions_get_AllowSingleSignOnUsingOSPrimaryAccount(This, allow) \
    ((This)->lpVtbl->get_AllowSingleSignOnUsingOSPrimaryAccount(This, allow))

#define ICoreWebView2EnvironmentOptions_put_AllowSingleSignOnUsingOSPrimaryAccount(This, allow) \
    ((This)->lpVtbl->put_AllowSingleSignOnUsingOSPrimaryAccount(This, allow))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2EnvironmentOptions_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions2_INTERFACE_DEFINED__
#define __ICoreWebView2EnvironmentOptions2_INTERFACE_DEFINED__

    /* interface ICoreWebView2EnvironmentOptions2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2EnvironmentOptions2 = {0xff85c98a, 0x1ba7, 0x4a6b, {0x90, 0xc8, 0x2b, 0x75, 0x2c, 0x89, 0xe9, 0xe2}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ff85c98a-1ba7-4a6b-90c8-2b752c89e9e2")
    ICoreWebView2EnvironmentOptions2 : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ExclusiveUserDataFolderAccess(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ExclusiveUserDataFolderAccess(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EnvironmentOptions2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2EnvironmentOptions2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2EnvironmentOptions2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2EnvironmentOptions2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions2, get_ExclusiveUserDataFolderAccess)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ExclusiveUserDataFolderAccess)(
            ICoreWebView2EnvironmentOptions2 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions2, put_ExclusiveUserDataFolderAccess)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ExclusiveUserDataFolderAccess)(
            ICoreWebView2EnvironmentOptions2 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2EnvironmentOptions2Vtbl;

    interface ICoreWebView2EnvironmentOptions2
    {
        CONST_VTBL struct ICoreWebView2EnvironmentOptions2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2EnvironmentOptions2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2EnvironmentOptions2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2EnvironmentOptions2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2EnvironmentOptions2_get_ExclusiveUserDataFolderAccess(This, value) \
    ((This)->lpVtbl->get_ExclusiveUserDataFolderAccess(This, value))

#define ICoreWebView2EnvironmentOptions2_put_ExclusiveUserDataFolderAccess(This, value) \
    ((This)->lpVtbl->put_ExclusiveUserDataFolderAccess(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2EnvironmentOptions2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions3_INTERFACE_DEFINED__
#define __ICoreWebView2EnvironmentOptions3_INTERFACE_DEFINED__

    /* interface ICoreWebView2EnvironmentOptions3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2EnvironmentOptions3 = {0x4a5c436e, 0xa9e3, 0x4a2e, {0x89, 0xc3, 0x91, 0x0d, 0x35, 0x13, 0xf5, 0xcc}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4a5c436e-a9e3-4a2e-89c3-910d3513f5cc")
    ICoreWebView2EnvironmentOptions3 : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsCustomCrashReportingEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsCustomCrashReportingEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EnvironmentOptions3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2EnvironmentOptions3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2EnvironmentOptions3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2EnvironmentOptions3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions3, get_IsCustomCrashReportingEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsCustomCrashReportingEnabled)(
            ICoreWebView2EnvironmentOptions3 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions3, put_IsCustomCrashReportingEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsCustomCrashReportingEnabled)(
            ICoreWebView2EnvironmentOptions3 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2EnvironmentOptions3Vtbl;

    interface ICoreWebView2EnvironmentOptions3
    {
        CONST_VTBL struct ICoreWebView2EnvironmentOptions3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2EnvironmentOptions3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2EnvironmentOptions3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2EnvironmentOptions3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2EnvironmentOptions3_get_IsCustomCrashReportingEnabled(This, value) \
    ((This)->lpVtbl->get_IsCustomCrashReportingEnabled(This, value))

#define ICoreWebView2EnvironmentOptions3_put_IsCustomCrashReportingEnabled(This, value) \
    ((This)->lpVtbl->put_IsCustomCrashReportingEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2EnvironmentOptions3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions4_INTERFACE_DEFINED__
#define __ICoreWebView2EnvironmentOptions4_INTERFACE_DEFINED__

    /* interface ICoreWebView2EnvironmentOptions4 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2EnvironmentOptions4 = {0xac52d13f, 0x0d38, 0x475a, {0x9d, 0xca, 0x87, 0x65, 0x80, 0xd6, 0x79, 0x3e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ac52d13f-0d38-475a-9dca-876580d6793e")
    ICoreWebView2EnvironmentOptions4 : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetCustomSchemeRegistrations(
            /* [out] */ UINT32 * count,
            /* [out] */ ICoreWebView2CustomSchemeRegistration * **schemeRegistrations) = 0;

        virtual HRESULT STDMETHODCALLTYPE SetCustomSchemeRegistrations(
            /* [in] */ UINT32 count,
            /* [in] */ ICoreWebView2CustomSchemeRegistration * *schemeRegistrations) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EnvironmentOptions4Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2EnvironmentOptions4 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2EnvironmentOptions4 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2EnvironmentOptions4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions4, GetCustomSchemeRegistrations)
        HRESULT(STDMETHODCALLTYPE *GetCustomSchemeRegistrations)(
            ICoreWebView2EnvironmentOptions4 *This,
            /* [out] */ UINT32 *count,
            /* [out] */ ICoreWebView2CustomSchemeRegistration ***schemeRegistrations);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions4, SetCustomSchemeRegistrations)
        HRESULT(STDMETHODCALLTYPE *SetCustomSchemeRegistrations)(
            ICoreWebView2EnvironmentOptions4 *This,
            /* [in] */ UINT32 count,
            /* [in] */ ICoreWebView2CustomSchemeRegistration **schemeRegistrations);

        END_INTERFACE
    } ICoreWebView2EnvironmentOptions4Vtbl;

    interface ICoreWebView2EnvironmentOptions4
    {
        CONST_VTBL struct ICoreWebView2EnvironmentOptions4Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2EnvironmentOptions4_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2EnvironmentOptions4_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2EnvironmentOptions4_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2EnvironmentOptions4_GetCustomSchemeRegistrations(This, count, schemeRegistrations) \
    ((This)->lpVtbl->GetCustomSchemeRegistrations(This, count, schemeRegistrations))

#define ICoreWebView2EnvironmentOptions4_SetCustomSchemeRegistrations(This, count, schemeRegistrations) \
    ((This)->lpVtbl->SetCustomSchemeRegistrations(This, count, schemeRegistrations))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2EnvironmentOptions4_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions5_INTERFACE_DEFINED__
#define __ICoreWebView2EnvironmentOptions5_INTERFACE_DEFINED__

    /* interface ICoreWebView2EnvironmentOptions5 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2EnvironmentOptions5 = {0x0ae35d64, 0xc47f, 0x4464, {0x81, 0x4e, 0x25, 0x9c, 0x34, 0x5d, 0x15, 0x01}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0ae35d64-c47f-4464-814e-259c345d1501")
    ICoreWebView2EnvironmentOptions5 : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_EnableTrackingPrevention(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_EnableTrackingPrevention(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EnvironmentOptions5Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2EnvironmentOptions5 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2EnvironmentOptions5 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2EnvironmentOptions5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions5, get_EnableTrackingPrevention)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_EnableTrackingPrevention)(
            ICoreWebView2EnvironmentOptions5 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions5, put_EnableTrackingPrevention)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_EnableTrackingPrevention)(
            ICoreWebView2EnvironmentOptions5 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2EnvironmentOptions5Vtbl;

    interface ICoreWebView2EnvironmentOptions5
    {
        CONST_VTBL struct ICoreWebView2EnvironmentOptions5Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2EnvironmentOptions5_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2EnvironmentOptions5_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2EnvironmentOptions5_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2EnvironmentOptions5_get_EnableTrackingPrevention(This, value) \
    ((This)->lpVtbl->get_EnableTrackingPrevention(This, value))

#define ICoreWebView2EnvironmentOptions5_put_EnableTrackingPrevention(This, value) \
    ((This)->lpVtbl->put_EnableTrackingPrevention(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2EnvironmentOptions5_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions6_INTERFACE_DEFINED__
#define __ICoreWebView2EnvironmentOptions6_INTERFACE_DEFINED__

    /* interface ICoreWebView2EnvironmentOptions6 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2EnvironmentOptions6 = {0x57d29cc3, 0xc84f, 0x42a0, {0xb0, 0xe2, 0xef, 0xfb, 0xd5, 0xe1, 0x79, 0xde}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("57d29cc3-c84f-42a0-b0e2-effbd5e179de")
    ICoreWebView2EnvironmentOptions6 : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AreBrowserExtensionsEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AreBrowserExtensionsEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EnvironmentOptions6Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2EnvironmentOptions6 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2EnvironmentOptions6 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2EnvironmentOptions6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions6, get_AreBrowserExtensionsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreBrowserExtensionsEnabled)(
            ICoreWebView2EnvironmentOptions6 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions6, put_AreBrowserExtensionsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreBrowserExtensionsEnabled)(
            ICoreWebView2EnvironmentOptions6 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2EnvironmentOptions6Vtbl;

    interface ICoreWebView2EnvironmentOptions6
    {
        CONST_VTBL struct ICoreWebView2EnvironmentOptions6Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2EnvironmentOptions6_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2EnvironmentOptions6_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2EnvironmentOptions6_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2EnvironmentOptions6_get_AreBrowserExtensionsEnabled(This, value) \
    ((This)->lpVtbl->get_AreBrowserExtensionsEnabled(This, value))

#define ICoreWebView2EnvironmentOptions6_put_AreBrowserExtensionsEnabled(This, value) \
    ((This)->lpVtbl->put_AreBrowserExtensionsEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2EnvironmentOptions6_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions7_INTERFACE_DEFINED__
#define __ICoreWebView2EnvironmentOptions7_INTERFACE_DEFINED__

    /* interface ICoreWebView2EnvironmentOptions7 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2EnvironmentOptions7 = {0xc48d539f, 0xe39f, 0x441c, {0xae, 0x68, 0x1f, 0x66, 0xe5, 0x70, 0xbd, 0xc5}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("c48d539f-e39f-441c-ae68-1f66e570bdc5")
    ICoreWebView2EnvironmentOptions7 : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ChannelSearchKind(
            /* [retval][out] */ COREWEBVIEW2_CHANNEL_SEARCH_KIND * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ChannelSearchKind(
            /* [in] */ COREWEBVIEW2_CHANNEL_SEARCH_KIND value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ReleaseChannels(
            /* [retval][out] */ COREWEBVIEW2_RELEASE_CHANNELS * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ReleaseChannels(
            /* [in] */ COREWEBVIEW2_RELEASE_CHANNELS value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EnvironmentOptions7Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2EnvironmentOptions7 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2EnvironmentOptions7 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2EnvironmentOptions7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions7, get_ChannelSearchKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ChannelSearchKind)(
            ICoreWebView2EnvironmentOptions7 *This,
            /* [retval][out] */ COREWEBVIEW2_CHANNEL_SEARCH_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions7, put_ChannelSearchKind)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ChannelSearchKind)(
            ICoreWebView2EnvironmentOptions7 *This,
            /* [in] */ COREWEBVIEW2_CHANNEL_SEARCH_KIND value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions7, get_ReleaseChannels)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ReleaseChannels)(
            ICoreWebView2EnvironmentOptions7 *This,
            /* [retval][out] */ COREWEBVIEW2_RELEASE_CHANNELS *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions7, put_ReleaseChannels)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ReleaseChannels)(
            ICoreWebView2EnvironmentOptions7 *This,
            /* [in] */ COREWEBVIEW2_RELEASE_CHANNELS value);

        END_INTERFACE
    } ICoreWebView2EnvironmentOptions7Vtbl;

    interface ICoreWebView2EnvironmentOptions7
    {
        CONST_VTBL struct ICoreWebView2EnvironmentOptions7Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2EnvironmentOptions7_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2EnvironmentOptions7_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2EnvironmentOptions7_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2EnvironmentOptions7_get_ChannelSearchKind(This, value) \
    ((This)->lpVtbl->get_ChannelSearchKind(This, value))

#define ICoreWebView2EnvironmentOptions7_put_ChannelSearchKind(This, value) \
    ((This)->lpVtbl->put_ChannelSearchKind(This, value))

#define ICoreWebView2EnvironmentOptions7_get_ReleaseChannels(This, value) \
    ((This)->lpVtbl->get_ReleaseChannels(This, value))

#define ICoreWebView2EnvironmentOptions7_put_ReleaseChannels(This, value) \
    ((This)->lpVtbl->put_ReleaseChannels(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2EnvironmentOptions7_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2EnvironmentOptions8_INTERFACE_DEFINED__
#define __ICoreWebView2EnvironmentOptions8_INTERFACE_DEFINED__

    /* interface ICoreWebView2EnvironmentOptions8 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2EnvironmentOptions8 = {0x7c7ecf51, 0xe918, 0x5caf, {0x85, 0x3c, 0xe9, 0xa2, 0xbc, 0xc2, 0x77, 0x75}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7c7ecf51-e918-5caf-853c-e9a2bcc27775")
    ICoreWebView2EnvironmentOptions8 : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ScrollBarStyle(
            /* [retval][out] */ COREWEBVIEW2_SCROLLBAR_STYLE * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ScrollBarStyle(
            /* [in] */ COREWEBVIEW2_SCROLLBAR_STYLE value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2EnvironmentOptions8Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2EnvironmentOptions8 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2EnvironmentOptions8 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2EnvironmentOptions8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions8, get_ScrollBarStyle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ScrollBarStyle)(
            ICoreWebView2EnvironmentOptions8 *This,
            /* [retval][out] */ COREWEBVIEW2_SCROLLBAR_STYLE *value);

        DECLSPEC_XFGVIRT(ICoreWebView2EnvironmentOptions8, put_ScrollBarStyle)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ScrollBarStyle)(
            ICoreWebView2EnvironmentOptions8 *This,
            /* [in] */ COREWEBVIEW2_SCROLLBAR_STYLE value);

        END_INTERFACE
    } ICoreWebView2EnvironmentOptions8Vtbl;

    interface ICoreWebView2EnvironmentOptions8
    {
        CONST_VTBL struct ICoreWebView2EnvironmentOptions8Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2EnvironmentOptions8_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2EnvironmentOptions8_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2EnvironmentOptions8_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2EnvironmentOptions8_get_ScrollBarStyle(This, value) \
    ((This)->lpVtbl->get_ScrollBarStyle(This, value))

#define ICoreWebView2EnvironmentOptions8_put_ScrollBarStyle(This, value) \
    ((This)->lpVtbl->put_ScrollBarStyle(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2EnvironmentOptions8_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ExecuteScriptResult_INTERFACE_DEFINED__
#define __ICoreWebView2ExecuteScriptResult_INTERFACE_DEFINED__

    /* interface ICoreWebView2ExecuteScriptResult */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ExecuteScriptResult = {0x0CE15963, 0x3698, 0x4DF7, {0x93, 0x99, 0x71, 0xED, 0x6C, 0xDD, 0x8C, 0x9F}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0CE15963-3698-4DF7-9399-71ED6CDD8C9F")
    ICoreWebView2ExecuteScriptResult : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Succeeded(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ResultAsJson(
            /* [retval][out] */ LPWSTR * jsonResult) = 0;

        virtual HRESULT STDMETHODCALLTYPE TryGetResultAsString(
            /* [out] */ LPWSTR * stringResult,
            /* [out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Exception(
            /* [retval][out] */ ICoreWebView2ScriptException * *exception) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ExecuteScriptResultVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ExecuteScriptResult *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ExecuteScriptResult *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ExecuteScriptResult *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ExecuteScriptResult, get_Succeeded)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Succeeded)(
            ICoreWebView2ExecuteScriptResult *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ExecuteScriptResult, get_ResultAsJson)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ResultAsJson)(
            ICoreWebView2ExecuteScriptResult *This,
            /* [retval][out] */ LPWSTR *jsonResult);

        DECLSPEC_XFGVIRT(ICoreWebView2ExecuteScriptResult, TryGetResultAsString)
        HRESULT(STDMETHODCALLTYPE *TryGetResultAsString)(
            ICoreWebView2ExecuteScriptResult *This,
            /* [out] */ LPWSTR *stringResult,
            /* [out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ExecuteScriptResult, get_Exception)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Exception)(
            ICoreWebView2ExecuteScriptResult *This,
            /* [retval][out] */ ICoreWebView2ScriptException **exception);

        END_INTERFACE
    } ICoreWebView2ExecuteScriptResultVtbl;

    interface ICoreWebView2ExecuteScriptResult
    {
        CONST_VTBL struct ICoreWebView2ExecuteScriptResultVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ExecuteScriptResult_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ExecuteScriptResult_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ExecuteScriptResult_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ExecuteScriptResult_get_Succeeded(This, value) \
    ((This)->lpVtbl->get_Succeeded(This, value))

#define ICoreWebView2ExecuteScriptResult_get_ResultAsJson(This, jsonResult) \
    ((This)->lpVtbl->get_ResultAsJson(This, jsonResult))

#define ICoreWebView2ExecuteScriptResult_TryGetResultAsString(This, stringResult, value) \
    ((This)->lpVtbl->TryGetResultAsString(This, stringResult, value))

#define ICoreWebView2ExecuteScriptResult_get_Exception(This, exception) \
    ((This)->lpVtbl->get_Exception(This, exception))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ExecuteScriptResult_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2File_INTERFACE_DEFINED__
#define __ICoreWebView2File_INTERFACE_DEFINED__

    /* interface ICoreWebView2File */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2File = {0xf2c19559, 0x6bc1, 0x4583, {0xa7, 0x57, 0x90, 0x02, 0x1b, 0xe9, 0xaf, 0xec}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f2c19559-6bc1-4583-a757-90021be9afec")
    ICoreWebView2File : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Path(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FileVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2File *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2File *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2File *This);

        DECLSPEC_XFGVIRT(ICoreWebView2File, get_Path)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Path)(
            ICoreWebView2File *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2FileVtbl;

    interface ICoreWebView2File
    {
        CONST_VTBL struct ICoreWebView2FileVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2File_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2File_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2File_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2File_get_Path(This, value) \
    ((This)->lpVtbl->get_Path(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2File_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FileSystemHandle_INTERFACE_DEFINED__
#define __ICoreWebView2FileSystemHandle_INTERFACE_DEFINED__

    /* interface ICoreWebView2FileSystemHandle */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FileSystemHandle = {0xc65100ac, 0x0de2, 0x5551, {0xa3, 0x62, 0x23, 0xd9, 0xbd, 0x1d, 0x0e, 0x1f}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("c65100ac-0de2-5551-a362-23d9bd1d0e1f")
    ICoreWebView2FileSystemHandle : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Kind(
            /* [retval][out] */ COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Path(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Permission(
            /* [retval][out] */ COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FileSystemHandleVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FileSystemHandle *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FileSystemHandle *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FileSystemHandle *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FileSystemHandle, get_Kind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Kind)(
            ICoreWebView2FileSystemHandle *This,
            /* [retval][out] */ COREWEBVIEW2_FILE_SYSTEM_HANDLE_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2FileSystemHandle, get_Path)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Path)(
            ICoreWebView2FileSystemHandle *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2FileSystemHandle, get_Permission)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Permission)(
            ICoreWebView2FileSystemHandle *This,
            /* [retval][out] */ COREWEBVIEW2_FILE_SYSTEM_HANDLE_PERMISSION *value);

        END_INTERFACE
    } ICoreWebView2FileSystemHandleVtbl;

    interface ICoreWebView2FileSystemHandle
    {
        CONST_VTBL struct ICoreWebView2FileSystemHandleVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FileSystemHandle_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FileSystemHandle_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FileSystemHandle_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FileSystemHandle_get_Kind(This, value) \
    ((This)->lpVtbl->get_Kind(This, value))

#define ICoreWebView2FileSystemHandle_get_Path(This, value) \
    ((This)->lpVtbl->get_Path(This, value))

#define ICoreWebView2FileSystemHandle_get_Permission(This, value) \
    ((This)->lpVtbl->get_Permission(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FileSystemHandle_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Frame_INTERFACE_DEFINED__
#define __ICoreWebView2Frame_INTERFACE_DEFINED__

    /* interface ICoreWebView2Frame */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Frame = {0xf1131a5e, 0x9ba9, 0x11eb, {0xa8, 0xb3, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f1131a5e-9ba9-11eb-a8b3-0242ac130003")
    ICoreWebView2Frame : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name(
            /* [retval][out] */ LPWSTR * name) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_NameChanged(
            /* [in] */ ICoreWebView2FrameNameChangedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_NameChanged(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE AddHostObjectToScriptWithOrigins(
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT * object,
            /* [in] */ UINT32 originsCount,
            /* [size_is][in] */ LPCWSTR * origins) = 0;

        virtual HRESULT STDMETHODCALLTYPE RemoveHostObjectFromScript(
            /* [in] */ LPCWSTR name) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_Destroyed(
            /* [in] */ ICoreWebView2FrameDestroyedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_Destroyed(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE IsDestroyed(
            /* [retval][out] */ BOOL * destroyed) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Frame *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Frame *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Frame *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2Frame *This,
            /* [retval][out] */ LPWSTR *name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_NameChanged)
        HRESULT(STDMETHODCALLTYPE *add_NameChanged)(
            ICoreWebView2Frame *This,
            /* [in] */ ICoreWebView2FrameNameChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_NameChanged)
        HRESULT(STDMETHODCALLTYPE *remove_NameChanged)(
            ICoreWebView2Frame *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, AddHostObjectToScriptWithOrigins)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScriptWithOrigins)(
            ICoreWebView2Frame *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object,
            /* [in] */ UINT32 originsCount,
            /* [size_is][in] */ LPCWSTR *origins);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2Frame *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_Destroyed)
        HRESULT(STDMETHODCALLTYPE *add_Destroyed)(
            ICoreWebView2Frame *This,
            /* [in] */ ICoreWebView2FrameDestroyedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_Destroyed)
        HRESULT(STDMETHODCALLTYPE *remove_Destroyed)(
            ICoreWebView2Frame *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, IsDestroyed)
        HRESULT(STDMETHODCALLTYPE *IsDestroyed)(
            ICoreWebView2Frame *This,
            /* [retval][out] */ BOOL *destroyed);

        END_INTERFACE
    } ICoreWebView2FrameVtbl;

    interface ICoreWebView2Frame
    {
        CONST_VTBL struct ICoreWebView2FrameVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Frame_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Frame_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Frame_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Frame_get_Name(This, name) \
    ((This)->lpVtbl->get_Name(This, name))

#define ICoreWebView2Frame_add_NameChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_NameChanged(This, eventHandler, token))

#define ICoreWebView2Frame_remove_NameChanged(This, token) \
    ((This)->lpVtbl->remove_NameChanged(This, token))

#define ICoreWebView2Frame_AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins) \
    ((This)->lpVtbl->AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins))

#define ICoreWebView2Frame_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2Frame_add_Destroyed(This, eventHandler, token) \
    ((This)->lpVtbl->add_Destroyed(This, eventHandler, token))

#define ICoreWebView2Frame_remove_Destroyed(This, token) \
    ((This)->lpVtbl->remove_Destroyed(This, token))

#define ICoreWebView2Frame_IsDestroyed(This, destroyed) \
    ((This)->lpVtbl->IsDestroyed(This, destroyed))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Frame_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameDestroyedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameDestroyedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameDestroyedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameDestroyedEventHandler = {0x59dd7b4c, 0x9baa, 0x11eb, {0xa8, 0xb3, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("59dd7b4c-9baa-11eb-a8b3-0242ac130003")
    ICoreWebView2FrameDestroyedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameDestroyedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameDestroyedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameDestroyedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameDestroyedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameDestroyedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameDestroyedEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2FrameDestroyedEventHandlerVtbl;

    interface ICoreWebView2FrameDestroyedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameDestroyedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameDestroyedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameDestroyedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameDestroyedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameDestroyedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameDestroyedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameNameChangedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameNameChangedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameNameChangedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameNameChangedEventHandler = {0x435c7dc8, 0x9baa, 0x11eb, {0xa8, 0xb3, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("435c7dc8-9baa-11eb-a8b3-0242ac130003")
    ICoreWebView2FrameNameChangedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameNameChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameNameChangedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameNameChangedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameNameChangedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameNameChangedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameNameChangedEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2FrameNameChangedEventHandlerVtbl;

    interface ICoreWebView2FrameNameChangedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameNameChangedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameNameChangedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameNameChangedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameNameChangedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameNameChangedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameNameChangedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Frame2_INTERFACE_DEFINED__
#define __ICoreWebView2Frame2_INTERFACE_DEFINED__

    /* interface ICoreWebView2Frame2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Frame2 = {0x7a6a5834, 0xd185, 0x4dbf, {0xb6, 0x3f, 0x4a, 0x9b, 0xc4, 0x31, 0x07, 0xd4}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7a6a5834-d185-4dbf-b63f-4a9bc43107d4")
    ICoreWebView2Frame2 : public ICoreWebView2Frame
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_NavigationStarting(
            /* [in] */ ICoreWebView2FrameNavigationStartingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_NavigationStarting(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_ContentLoading(
            /* [in] */ ICoreWebView2FrameContentLoadingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ContentLoading(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_NavigationCompleted(
            /* [in] */ ICoreWebView2FrameNavigationCompletedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_NavigationCompleted(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_DOMContentLoaded(
            /* [in] */ ICoreWebView2FrameDOMContentLoadedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_DOMContentLoaded(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE ExecuteScript(
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE PostWebMessageAsJson(
            /* [in] */ LPCWSTR webMessageAsJson) = 0;

        virtual HRESULT STDMETHODCALLTYPE PostWebMessageAsString(
            /* [in] */ LPCWSTR webMessageAsString) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_WebMessageReceived(
            /* [in] */ ICoreWebView2FrameWebMessageReceivedEventHandler * handler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_WebMessageReceived(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Frame2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Frame2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Frame2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Frame2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2Frame2 *This,
            /* [retval][out] */ LPWSTR *name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_NameChanged)
        HRESULT(STDMETHODCALLTYPE *add_NameChanged)(
            ICoreWebView2Frame2 *This,
            /* [in] */ ICoreWebView2FrameNameChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_NameChanged)
        HRESULT(STDMETHODCALLTYPE *remove_NameChanged)(
            ICoreWebView2Frame2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, AddHostObjectToScriptWithOrigins)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScriptWithOrigins)(
            ICoreWebView2Frame2 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object,
            /* [in] */ UINT32 originsCount,
            /* [size_is][in] */ LPCWSTR *origins);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2Frame2 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_Destroyed)
        HRESULT(STDMETHODCALLTYPE *add_Destroyed)(
            ICoreWebView2Frame2 *This,
            /* [in] */ ICoreWebView2FrameDestroyedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_Destroyed)
        HRESULT(STDMETHODCALLTYPE *remove_Destroyed)(
            ICoreWebView2Frame2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, IsDestroyed)
        HRESULT(STDMETHODCALLTYPE *IsDestroyed)(
            ICoreWebView2Frame2 *This,
            /* [retval][out] */ BOOL *destroyed);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2Frame2 *This,
            /* [in] */ ICoreWebView2FrameNavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2Frame2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2Frame2 *This,
            /* [in] */ ICoreWebView2FrameContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2Frame2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2Frame2 *This,
            /* [in] */ ICoreWebView2FrameNavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2Frame2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2Frame2 *This,
            /* [in] */ ICoreWebView2FrameDOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2Frame2 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2Frame2 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2Frame2 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2Frame2 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2Frame2 *This,
            /* [in] */ ICoreWebView2FrameWebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2Frame2 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2Frame2Vtbl;

    interface ICoreWebView2Frame2
    {
        CONST_VTBL struct ICoreWebView2Frame2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Frame2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Frame2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Frame2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Frame2_get_Name(This, name) \
    ((This)->lpVtbl->get_Name(This, name))

#define ICoreWebView2Frame2_add_NameChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_NameChanged(This, eventHandler, token))

#define ICoreWebView2Frame2_remove_NameChanged(This, token) \
    ((This)->lpVtbl->remove_NameChanged(This, token))

#define ICoreWebView2Frame2_AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins) \
    ((This)->lpVtbl->AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins))

#define ICoreWebView2Frame2_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2Frame2_add_Destroyed(This, eventHandler, token) \
    ((This)->lpVtbl->add_Destroyed(This, eventHandler, token))

#define ICoreWebView2Frame2_remove_Destroyed(This, token) \
    ((This)->lpVtbl->remove_Destroyed(This, token))

#define ICoreWebView2Frame2_IsDestroyed(This, destroyed) \
    ((This)->lpVtbl->IsDestroyed(This, destroyed))

#define ICoreWebView2Frame2_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2Frame2_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2Frame2_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2Frame2_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2Frame2_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2Frame2_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2Frame2_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2Frame2_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2Frame2_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2Frame2_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2Frame2_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2Frame2_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2Frame2_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Frame2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameContentLoadingEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameContentLoadingEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameContentLoadingEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameContentLoadingEventHandler = {0x0d6156f2, 0xd332, 0x49a7, {0x9e, 0x03, 0x7d, 0x8f, 0x2f, 0xee, 0xee, 0x54}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0d6156f2-d332-49a7-9e03-7d8f2feeee54")
    ICoreWebView2FrameContentLoadingEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ ICoreWebView2ContentLoadingEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameContentLoadingEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameContentLoadingEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameContentLoadingEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameContentLoadingEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameContentLoadingEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameContentLoadingEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ ICoreWebView2ContentLoadingEventArgs *args);

        END_INTERFACE
    } ICoreWebView2FrameContentLoadingEventHandlerVtbl;

    interface ICoreWebView2FrameContentLoadingEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameContentLoadingEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameContentLoadingEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameContentLoadingEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameContentLoadingEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameContentLoadingEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameContentLoadingEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameDOMContentLoadedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameDOMContentLoadedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameDOMContentLoadedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameDOMContentLoadedEventHandler = {0x38d9520d, 0x340f, 0x4d1e, {0xa7, 0x75, 0x43, 0xfc, 0xe9, 0x75, 0x36, 0x83}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("38d9520d-340f-4d1e-a775-43fce9753683")
    ICoreWebView2FrameDOMContentLoadedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ ICoreWebView2DOMContentLoadedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameDOMContentLoadedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameDOMContentLoadedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameDOMContentLoadedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameDOMContentLoadedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameDOMContentLoadedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameDOMContentLoadedEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ ICoreWebView2DOMContentLoadedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2FrameDOMContentLoadedEventHandlerVtbl;

    interface ICoreWebView2FrameDOMContentLoadedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameDOMContentLoadedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameDOMContentLoadedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameDOMContentLoadedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameDOMContentLoadedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameDOMContentLoadedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameDOMContentLoadedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameNavigationCompletedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameNavigationCompletedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameNavigationCompletedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameNavigationCompletedEventHandler = {0x609302ad, 0x0e36, 0x4f9a, {0xa2, 0x10, 0x6a, 0x45, 0x27, 0x28, 0x42, 0xa9}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("609302ad-0e36-4f9a-a210-6a45272842a9")
    ICoreWebView2FrameNavigationCompletedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ ICoreWebView2NavigationCompletedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameNavigationCompletedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameNavigationCompletedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameNavigationCompletedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameNavigationCompletedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameNavigationCompletedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameNavigationCompletedEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ ICoreWebView2NavigationCompletedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2FrameNavigationCompletedEventHandlerVtbl;

    interface ICoreWebView2FrameNavigationCompletedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameNavigationCompletedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameNavigationCompletedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameNavigationCompletedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameNavigationCompletedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameNavigationCompletedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameNavigationCompletedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameNavigationStartingEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameNavigationStartingEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameNavigationStartingEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameNavigationStartingEventHandler = {0xe79908bf, 0x2d5d, 0x4968, {0x83, 0xdb, 0x26, 0x3f, 0xea, 0x2c, 0x1d, 0xa3}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e79908bf-2d5d-4968-83db-263fea2c1da3")
    ICoreWebView2FrameNavigationStartingEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ ICoreWebView2NavigationStartingEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameNavigationStartingEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameNavigationStartingEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameNavigationStartingEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameNavigationStartingEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameNavigationStartingEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameNavigationStartingEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ ICoreWebView2NavigationStartingEventArgs *args);

        END_INTERFACE
    } ICoreWebView2FrameNavigationStartingEventHandlerVtbl;

    interface ICoreWebView2FrameNavigationStartingEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameNavigationStartingEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameNavigationStartingEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameNavigationStartingEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameNavigationStartingEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameNavigationStartingEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameNavigationStartingEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameWebMessageReceivedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameWebMessageReceivedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameWebMessageReceivedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameWebMessageReceivedEventHandler = {0xe371e005, 0x6d1d, 0x4517, {0x93, 0x4b, 0xa8, 0xf1, 0x62, 0x9c, 0x62, 0xa5}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e371e005-6d1d-4517-934b-a8f1629c62a5")
    ICoreWebView2FrameWebMessageReceivedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ ICoreWebView2WebMessageReceivedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameWebMessageReceivedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameWebMessageReceivedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameWebMessageReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameWebMessageReceivedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameWebMessageReceivedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameWebMessageReceivedEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ ICoreWebView2WebMessageReceivedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2FrameWebMessageReceivedEventHandlerVtbl;

    interface ICoreWebView2FrameWebMessageReceivedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameWebMessageReceivedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameWebMessageReceivedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameWebMessageReceivedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameWebMessageReceivedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameWebMessageReceivedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameWebMessageReceivedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Frame3_INTERFACE_DEFINED__
#define __ICoreWebView2Frame3_INTERFACE_DEFINED__

    /* interface ICoreWebView2Frame3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Frame3 = {0xb50d82cc, 0xcc28, 0x481d, {0x96, 0x14, 0xcb, 0x04, 0x88, 0x95, 0xe6, 0xa0}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b50d82cc-cc28-481d-9614-cb048895e6a0")
    ICoreWebView2Frame3 : public ICoreWebView2Frame2
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_PermissionRequested(
            /* [in] */ ICoreWebView2FramePermissionRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_PermissionRequested(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Frame3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Frame3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Frame3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Frame3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2Frame3 *This,
            /* [retval][out] */ LPWSTR *name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_NameChanged)
        HRESULT(STDMETHODCALLTYPE *add_NameChanged)(
            ICoreWebView2Frame3 *This,
            /* [in] */ ICoreWebView2FrameNameChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_NameChanged)
        HRESULT(STDMETHODCALLTYPE *remove_NameChanged)(
            ICoreWebView2Frame3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, AddHostObjectToScriptWithOrigins)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScriptWithOrigins)(
            ICoreWebView2Frame3 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object,
            /* [in] */ UINT32 originsCount,
            /* [size_is][in] */ LPCWSTR *origins);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2Frame3 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_Destroyed)
        HRESULT(STDMETHODCALLTYPE *add_Destroyed)(
            ICoreWebView2Frame3 *This,
            /* [in] */ ICoreWebView2FrameDestroyedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_Destroyed)
        HRESULT(STDMETHODCALLTYPE *remove_Destroyed)(
            ICoreWebView2Frame3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, IsDestroyed)
        HRESULT(STDMETHODCALLTYPE *IsDestroyed)(
            ICoreWebView2Frame3 *This,
            /* [retval][out] */ BOOL *destroyed);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2Frame3 *This,
            /* [in] */ ICoreWebView2FrameNavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2Frame3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2Frame3 *This,
            /* [in] */ ICoreWebView2FrameContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2Frame3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2Frame3 *This,
            /* [in] */ ICoreWebView2FrameNavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2Frame3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2Frame3 *This,
            /* [in] */ ICoreWebView2FrameDOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2Frame3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2Frame3 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2Frame3 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2Frame3 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2Frame3 *This,
            /* [in] */ ICoreWebView2FrameWebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2Frame3 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2Frame3 *This,
            /* [in] */ ICoreWebView2FramePermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2Frame3 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2Frame3Vtbl;

    interface ICoreWebView2Frame3
    {
        CONST_VTBL struct ICoreWebView2Frame3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Frame3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Frame3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Frame3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Frame3_get_Name(This, name) \
    ((This)->lpVtbl->get_Name(This, name))

#define ICoreWebView2Frame3_add_NameChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_NameChanged(This, eventHandler, token))

#define ICoreWebView2Frame3_remove_NameChanged(This, token) \
    ((This)->lpVtbl->remove_NameChanged(This, token))

#define ICoreWebView2Frame3_AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins) \
    ((This)->lpVtbl->AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins))

#define ICoreWebView2Frame3_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2Frame3_add_Destroyed(This, eventHandler, token) \
    ((This)->lpVtbl->add_Destroyed(This, eventHandler, token))

#define ICoreWebView2Frame3_remove_Destroyed(This, token) \
    ((This)->lpVtbl->remove_Destroyed(This, token))

#define ICoreWebView2Frame3_IsDestroyed(This, destroyed) \
    ((This)->lpVtbl->IsDestroyed(This, destroyed))

#define ICoreWebView2Frame3_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2Frame3_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2Frame3_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2Frame3_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2Frame3_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2Frame3_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2Frame3_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2Frame3_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2Frame3_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2Frame3_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2Frame3_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2Frame3_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2Frame3_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2Frame3_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2Frame3_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Frame3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FramePermissionRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FramePermissionRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FramePermissionRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FramePermissionRequestedEventHandler = {0x845d0edd, 0x8bd8, 0x429b, {0x99, 0x15, 0x48, 0x21, 0x78, 0x9f, 0x23, 0xe9}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("845d0edd-8bd8-429b-9915-4821789f23e9")
    ICoreWebView2FramePermissionRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ ICoreWebView2PermissionRequestedEventArgs2 * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FramePermissionRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FramePermissionRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FramePermissionRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FramePermissionRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FramePermissionRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FramePermissionRequestedEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ ICoreWebView2PermissionRequestedEventArgs2 *args);

        END_INTERFACE
    } ICoreWebView2FramePermissionRequestedEventHandlerVtbl;

    interface ICoreWebView2FramePermissionRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FramePermissionRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FramePermissionRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FramePermissionRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FramePermissionRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FramePermissionRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FramePermissionRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Frame4_INTERFACE_DEFINED__
#define __ICoreWebView2Frame4_INTERFACE_DEFINED__

    /* interface ICoreWebView2Frame4 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Frame4 = {0x188782dc, 0x92aa, 0x4732, {0xab, 0x3c, 0xfc, 0xc5, 0x9f, 0x6f, 0x68, 0xb9}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("188782dc-92aa-4732-ab3c-fcc59f6f68b9")
    ICoreWebView2Frame4 : public ICoreWebView2Frame3
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE PostSharedBufferToScript(
            /* [in] */ ICoreWebView2SharedBuffer * sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Frame4Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Frame4 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Frame4 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Frame4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2Frame4 *This,
            /* [retval][out] */ LPWSTR *name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_NameChanged)
        HRESULT(STDMETHODCALLTYPE *add_NameChanged)(
            ICoreWebView2Frame4 *This,
            /* [in] */ ICoreWebView2FrameNameChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_NameChanged)
        HRESULT(STDMETHODCALLTYPE *remove_NameChanged)(
            ICoreWebView2Frame4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, AddHostObjectToScriptWithOrigins)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScriptWithOrigins)(
            ICoreWebView2Frame4 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object,
            /* [in] */ UINT32 originsCount,
            /* [size_is][in] */ LPCWSTR *origins);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2Frame4 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_Destroyed)
        HRESULT(STDMETHODCALLTYPE *add_Destroyed)(
            ICoreWebView2Frame4 *This,
            /* [in] */ ICoreWebView2FrameDestroyedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_Destroyed)
        HRESULT(STDMETHODCALLTYPE *remove_Destroyed)(
            ICoreWebView2Frame4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, IsDestroyed)
        HRESULT(STDMETHODCALLTYPE *IsDestroyed)(
            ICoreWebView2Frame4 *This,
            /* [retval][out] */ BOOL *destroyed);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2Frame4 *This,
            /* [in] */ ICoreWebView2FrameNavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2Frame4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2Frame4 *This,
            /* [in] */ ICoreWebView2FrameContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2Frame4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2Frame4 *This,
            /* [in] */ ICoreWebView2FrameNavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2Frame4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2Frame4 *This,
            /* [in] */ ICoreWebView2FrameDOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2Frame4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2Frame4 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2Frame4 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2Frame4 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2Frame4 *This,
            /* [in] */ ICoreWebView2FrameWebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2Frame4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2Frame4 *This,
            /* [in] */ ICoreWebView2FramePermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2Frame4 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame4, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2Frame4 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        END_INTERFACE
    } ICoreWebView2Frame4Vtbl;

    interface ICoreWebView2Frame4
    {
        CONST_VTBL struct ICoreWebView2Frame4Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Frame4_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Frame4_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Frame4_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Frame4_get_Name(This, name) \
    ((This)->lpVtbl->get_Name(This, name))

#define ICoreWebView2Frame4_add_NameChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_NameChanged(This, eventHandler, token))

#define ICoreWebView2Frame4_remove_NameChanged(This, token) \
    ((This)->lpVtbl->remove_NameChanged(This, token))

#define ICoreWebView2Frame4_AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins) \
    ((This)->lpVtbl->AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins))

#define ICoreWebView2Frame4_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2Frame4_add_Destroyed(This, eventHandler, token) \
    ((This)->lpVtbl->add_Destroyed(This, eventHandler, token))

#define ICoreWebView2Frame4_remove_Destroyed(This, token) \
    ((This)->lpVtbl->remove_Destroyed(This, token))

#define ICoreWebView2Frame4_IsDestroyed(This, destroyed) \
    ((This)->lpVtbl->IsDestroyed(This, destroyed))

#define ICoreWebView2Frame4_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2Frame4_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2Frame4_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2Frame4_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2Frame4_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2Frame4_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2Frame4_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2Frame4_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2Frame4_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2Frame4_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2Frame4_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2Frame4_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2Frame4_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2Frame4_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2Frame4_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2Frame4_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Frame4_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Frame5_INTERFACE_DEFINED__
#define __ICoreWebView2Frame5_INTERFACE_DEFINED__

    /* interface ICoreWebView2Frame5 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Frame5 = {0x99d199c4, 0x7305, 0x11ee, {0xb9, 0x62, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("99d199c4-7305-11ee-b962-0242ac120002")
    ICoreWebView2Frame5 : public ICoreWebView2Frame4
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FrameId(
            /* [retval][out] */ UINT32 * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Frame5Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Frame5 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Frame5 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Frame5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2Frame5 *This,
            /* [retval][out] */ LPWSTR *name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_NameChanged)
        HRESULT(STDMETHODCALLTYPE *add_NameChanged)(
            ICoreWebView2Frame5 *This,
            /* [in] */ ICoreWebView2FrameNameChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_NameChanged)
        HRESULT(STDMETHODCALLTYPE *remove_NameChanged)(
            ICoreWebView2Frame5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, AddHostObjectToScriptWithOrigins)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScriptWithOrigins)(
            ICoreWebView2Frame5 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object,
            /* [in] */ UINT32 originsCount,
            /* [size_is][in] */ LPCWSTR *origins);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2Frame5 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_Destroyed)
        HRESULT(STDMETHODCALLTYPE *add_Destroyed)(
            ICoreWebView2Frame5 *This,
            /* [in] */ ICoreWebView2FrameDestroyedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_Destroyed)
        HRESULT(STDMETHODCALLTYPE *remove_Destroyed)(
            ICoreWebView2Frame5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, IsDestroyed)
        HRESULT(STDMETHODCALLTYPE *IsDestroyed)(
            ICoreWebView2Frame5 *This,
            /* [retval][out] */ BOOL *destroyed);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2Frame5 *This,
            /* [in] */ ICoreWebView2FrameNavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2Frame5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2Frame5 *This,
            /* [in] */ ICoreWebView2FrameContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2Frame5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2Frame5 *This,
            /* [in] */ ICoreWebView2FrameNavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2Frame5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2Frame5 *This,
            /* [in] */ ICoreWebView2FrameDOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2Frame5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2Frame5 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2Frame5 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2Frame5 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2Frame5 *This,
            /* [in] */ ICoreWebView2FrameWebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2Frame5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2Frame5 *This,
            /* [in] */ ICoreWebView2FramePermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2Frame5 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame4, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2Frame5 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame5, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2Frame5 *This,
            /* [retval][out] */ UINT32 *value);

        END_INTERFACE
    } ICoreWebView2Frame5Vtbl;

    interface ICoreWebView2Frame5
    {
        CONST_VTBL struct ICoreWebView2Frame5Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Frame5_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Frame5_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Frame5_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Frame5_get_Name(This, name) \
    ((This)->lpVtbl->get_Name(This, name))

#define ICoreWebView2Frame5_add_NameChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_NameChanged(This, eventHandler, token))

#define ICoreWebView2Frame5_remove_NameChanged(This, token) \
    ((This)->lpVtbl->remove_NameChanged(This, token))

#define ICoreWebView2Frame5_AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins) \
    ((This)->lpVtbl->AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins))

#define ICoreWebView2Frame5_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2Frame5_add_Destroyed(This, eventHandler, token) \
    ((This)->lpVtbl->add_Destroyed(This, eventHandler, token))

#define ICoreWebView2Frame5_remove_Destroyed(This, token) \
    ((This)->lpVtbl->remove_Destroyed(This, token))

#define ICoreWebView2Frame5_IsDestroyed(This, destroyed) \
    ((This)->lpVtbl->IsDestroyed(This, destroyed))

#define ICoreWebView2Frame5_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2Frame5_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2Frame5_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2Frame5_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2Frame5_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2Frame5_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2Frame5_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2Frame5_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2Frame5_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2Frame5_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2Frame5_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2Frame5_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2Frame5_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2Frame5_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2Frame5_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2Frame5_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2Frame5_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Frame5_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Frame6_INTERFACE_DEFINED__
#define __ICoreWebView2Frame6_INTERFACE_DEFINED__

    /* interface ICoreWebView2Frame6 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Frame6 = {0x0de611fd, 0x31e9, 0x5ddc, {0x9d, 0x71, 0x95, 0xed, 0xa2, 0x6e, 0xff, 0x32}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0de611fd-31e9-5ddc-9d71-95eda26eff32")
    ICoreWebView2Frame6 : public ICoreWebView2Frame5
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_ScreenCaptureStarting(
            /* [in] */ ICoreWebView2FrameScreenCaptureStartingEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_ScreenCaptureStarting(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Frame6Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Frame6 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Frame6 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Frame6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2Frame6 *This,
            /* [retval][out] */ LPWSTR *name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_NameChanged)
        HRESULT(STDMETHODCALLTYPE *add_NameChanged)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2FrameNameChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_NameChanged)
        HRESULT(STDMETHODCALLTYPE *remove_NameChanged)(
            ICoreWebView2Frame6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, AddHostObjectToScriptWithOrigins)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScriptWithOrigins)(
            ICoreWebView2Frame6 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object,
            /* [in] */ UINT32 originsCount,
            /* [size_is][in] */ LPCWSTR *origins);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2Frame6 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_Destroyed)
        HRESULT(STDMETHODCALLTYPE *add_Destroyed)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2FrameDestroyedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_Destroyed)
        HRESULT(STDMETHODCALLTYPE *remove_Destroyed)(
            ICoreWebView2Frame6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, IsDestroyed)
        HRESULT(STDMETHODCALLTYPE *IsDestroyed)(
            ICoreWebView2Frame6 *This,
            /* [retval][out] */ BOOL *destroyed);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2FrameNavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2Frame6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2FrameContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2Frame6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2FrameNavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2Frame6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2FrameDOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2Frame6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2Frame6 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2Frame6 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2Frame6 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2FrameWebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2Frame6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2FramePermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2Frame6 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame4, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame5, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2Frame6 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame6, add_ScreenCaptureStarting)
        HRESULT(STDMETHODCALLTYPE *add_ScreenCaptureStarting)(
            ICoreWebView2Frame6 *This,
            /* [in] */ ICoreWebView2FrameScreenCaptureStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame6, remove_ScreenCaptureStarting)
        HRESULT(STDMETHODCALLTYPE *remove_ScreenCaptureStarting)(
            ICoreWebView2Frame6 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2Frame6Vtbl;

    interface ICoreWebView2Frame6
    {
        CONST_VTBL struct ICoreWebView2Frame6Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Frame6_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Frame6_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Frame6_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Frame6_get_Name(This, name) \
    ((This)->lpVtbl->get_Name(This, name))

#define ICoreWebView2Frame6_add_NameChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_NameChanged(This, eventHandler, token))

#define ICoreWebView2Frame6_remove_NameChanged(This, token) \
    ((This)->lpVtbl->remove_NameChanged(This, token))

#define ICoreWebView2Frame6_AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins) \
    ((This)->lpVtbl->AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins))

#define ICoreWebView2Frame6_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2Frame6_add_Destroyed(This, eventHandler, token) \
    ((This)->lpVtbl->add_Destroyed(This, eventHandler, token))

#define ICoreWebView2Frame6_remove_Destroyed(This, token) \
    ((This)->lpVtbl->remove_Destroyed(This, token))

#define ICoreWebView2Frame6_IsDestroyed(This, destroyed) \
    ((This)->lpVtbl->IsDestroyed(This, destroyed))

#define ICoreWebView2Frame6_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2Frame6_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2Frame6_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2Frame6_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2Frame6_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2Frame6_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2Frame6_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2Frame6_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2Frame6_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2Frame6_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2Frame6_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2Frame6_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2Frame6_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2Frame6_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2Frame6_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2Frame6_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2Frame6_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#define ICoreWebView2Frame6_add_ScreenCaptureStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScreenCaptureStarting(This, eventHandler, token))

#define ICoreWebView2Frame6_remove_ScreenCaptureStarting(This, token) \
    ((This)->lpVtbl->remove_ScreenCaptureStarting(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Frame6_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameScreenCaptureStartingEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameScreenCaptureStartingEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameScreenCaptureStartingEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameScreenCaptureStartingEventHandler = {0xa6c1d8ad, 0xbb80, 0x59c5, {0x89, 0x5b, 0xfb, 0xa1, 0x69, 0x8b, 0x93, 0x09}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("a6c1d8ad-bb80-59c5-895b-fba1698b9309")
    ICoreWebView2FrameScreenCaptureStartingEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ ICoreWebView2ScreenCaptureStartingEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameScreenCaptureStartingEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameScreenCaptureStartingEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameScreenCaptureStartingEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameScreenCaptureStartingEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameScreenCaptureStartingEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameScreenCaptureStartingEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ ICoreWebView2ScreenCaptureStartingEventArgs *args);

        END_INTERFACE
    } ICoreWebView2FrameScreenCaptureStartingEventHandlerVtbl;

    interface ICoreWebView2FrameScreenCaptureStartingEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameScreenCaptureStartingEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameScreenCaptureStartingEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameScreenCaptureStartingEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameScreenCaptureStartingEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameScreenCaptureStartingEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameScreenCaptureStartingEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Frame7_INTERFACE_DEFINED__
#define __ICoreWebView2Frame7_INTERFACE_DEFINED__

    /* interface ICoreWebView2Frame7 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Frame7 = {0x3598cfa2, 0xd85d, 0x5a9f, {0x92, 0x28, 0x4d, 0xde, 0x1f, 0x59, 0xec, 0x64}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("3598cfa2-d85d-5a9f-9228-4dde1f59ec64")
    ICoreWebView2Frame7 : public ICoreWebView2Frame6
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_FrameCreated(
            /* [in] */ ICoreWebView2FrameChildFrameCreatedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_FrameCreated(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Frame7Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Frame7 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Frame7 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Frame7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2Frame7 *This,
            /* [retval][out] */ LPWSTR *name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_NameChanged)
        HRESULT(STDMETHODCALLTYPE *add_NameChanged)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FrameNameChangedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_NameChanged)
        HRESULT(STDMETHODCALLTYPE *remove_NameChanged)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, AddHostObjectToScriptWithOrigins)
        HRESULT(STDMETHODCALLTYPE *AddHostObjectToScriptWithOrigins)(
            ICoreWebView2Frame7 *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ VARIANT *object,
            /* [in] */ UINT32 originsCount,
            /* [size_is][in] */ LPCWSTR *origins);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, RemoveHostObjectFromScript)
        HRESULT(STDMETHODCALLTYPE *RemoveHostObjectFromScript)(
            ICoreWebView2Frame7 *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, add_Destroyed)
        HRESULT(STDMETHODCALLTYPE *add_Destroyed)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FrameDestroyedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, remove_Destroyed)
        HRESULT(STDMETHODCALLTYPE *remove_Destroyed)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame, IsDestroyed)
        HRESULT(STDMETHODCALLTYPE *IsDestroyed)(
            ICoreWebView2Frame7 *This,
            /* [retval][out] */ BOOL *destroyed);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *add_NavigationStarting)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FrameNavigationStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationStarting)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationStarting)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *add_ContentLoading)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FrameContentLoadingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_ContentLoading)
        HRESULT(STDMETHODCALLTYPE *remove_ContentLoading)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *add_NavigationCompleted)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FrameNavigationCompletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_NavigationCompleted)
        HRESULT(STDMETHODCALLTYPE *remove_NavigationCompleted)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *add_DOMContentLoaded)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FrameDOMContentLoadedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_DOMContentLoaded)
        HRESULT(STDMETHODCALLTYPE *remove_DOMContentLoaded)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, ExecuteScript)
        HRESULT(STDMETHODCALLTYPE *ExecuteScript)(
            ICoreWebView2Frame7 *This,
            /* [in] */ LPCWSTR javaScript,
            /* [in] */ ICoreWebView2ExecuteScriptCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsJson)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsJson)(
            ICoreWebView2Frame7 *This,
            /* [in] */ LPCWSTR webMessageAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, PostWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *PostWebMessageAsString)(
            ICoreWebView2Frame7 *This,
            /* [in] */ LPCWSTR webMessageAsString);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, add_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *add_WebMessageReceived)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FrameWebMessageReceivedEventHandler *handler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame2, remove_WebMessageReceived)
        HRESULT(STDMETHODCALLTYPE *remove_WebMessageReceived)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, add_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *add_PermissionRequested)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FramePermissionRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame3, remove_PermissionRequested)
        HRESULT(STDMETHODCALLTYPE *remove_PermissionRequested)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame4, PostSharedBufferToScript)
        HRESULT(STDMETHODCALLTYPE *PostSharedBufferToScript)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2SharedBuffer *sharedBuffer,
            /* [in] */ COREWEBVIEW2_SHARED_BUFFER_ACCESS access,
            /* [in] */ LPCWSTR additionalDataAsJson);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame5, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2Frame7 *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame6, add_ScreenCaptureStarting)
        HRESULT(STDMETHODCALLTYPE *add_ScreenCaptureStarting)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FrameScreenCaptureStartingEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame6, remove_ScreenCaptureStarting)
        HRESULT(STDMETHODCALLTYPE *remove_ScreenCaptureStarting)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame7, add_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *add_FrameCreated)(
            ICoreWebView2Frame7 *This,
            /* [in] */ ICoreWebView2FrameChildFrameCreatedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Frame7, remove_FrameCreated)
        HRESULT(STDMETHODCALLTYPE *remove_FrameCreated)(
            ICoreWebView2Frame7 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2Frame7Vtbl;

    interface ICoreWebView2Frame7
    {
        CONST_VTBL struct ICoreWebView2Frame7Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Frame7_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Frame7_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Frame7_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Frame7_get_Name(This, name) \
    ((This)->lpVtbl->get_Name(This, name))

#define ICoreWebView2Frame7_add_NameChanged(This, eventHandler, token) \
    ((This)->lpVtbl->add_NameChanged(This, eventHandler, token))

#define ICoreWebView2Frame7_remove_NameChanged(This, token) \
    ((This)->lpVtbl->remove_NameChanged(This, token))

#define ICoreWebView2Frame7_AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins) \
    ((This)->lpVtbl->AddHostObjectToScriptWithOrigins(This, name, object, originsCount, origins))

#define ICoreWebView2Frame7_RemoveHostObjectFromScript(This, name) \
    ((This)->lpVtbl->RemoveHostObjectFromScript(This, name))

#define ICoreWebView2Frame7_add_Destroyed(This, eventHandler, token) \
    ((This)->lpVtbl->add_Destroyed(This, eventHandler, token))

#define ICoreWebView2Frame7_remove_Destroyed(This, token) \
    ((This)->lpVtbl->remove_Destroyed(This, token))

#define ICoreWebView2Frame7_IsDestroyed(This, destroyed) \
    ((This)->lpVtbl->IsDestroyed(This, destroyed))

#define ICoreWebView2Frame7_add_NavigationStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationStarting(This, eventHandler, token))

#define ICoreWebView2Frame7_remove_NavigationStarting(This, token) \
    ((This)->lpVtbl->remove_NavigationStarting(This, token))

#define ICoreWebView2Frame7_add_ContentLoading(This, eventHandler, token) \
    ((This)->lpVtbl->add_ContentLoading(This, eventHandler, token))

#define ICoreWebView2Frame7_remove_ContentLoading(This, token) \
    ((This)->lpVtbl->remove_ContentLoading(This, token))

#define ICoreWebView2Frame7_add_NavigationCompleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_NavigationCompleted(This, eventHandler, token))

#define ICoreWebView2Frame7_remove_NavigationCompleted(This, token) \
    ((This)->lpVtbl->remove_NavigationCompleted(This, token))

#define ICoreWebView2Frame7_add_DOMContentLoaded(This, eventHandler, token) \
    ((This)->lpVtbl->add_DOMContentLoaded(This, eventHandler, token))

#define ICoreWebView2Frame7_remove_DOMContentLoaded(This, token) \
    ((This)->lpVtbl->remove_DOMContentLoaded(This, token))

#define ICoreWebView2Frame7_ExecuteScript(This, javaScript, handler) \
    ((This)->lpVtbl->ExecuteScript(This, javaScript, handler))

#define ICoreWebView2Frame7_PostWebMessageAsJson(This, webMessageAsJson) \
    ((This)->lpVtbl->PostWebMessageAsJson(This, webMessageAsJson))

#define ICoreWebView2Frame7_PostWebMessageAsString(This, webMessageAsString) \
    ((This)->lpVtbl->PostWebMessageAsString(This, webMessageAsString))

#define ICoreWebView2Frame7_add_WebMessageReceived(This, handler, token) \
    ((This)->lpVtbl->add_WebMessageReceived(This, handler, token))

#define ICoreWebView2Frame7_remove_WebMessageReceived(This, token) \
    ((This)->lpVtbl->remove_WebMessageReceived(This, token))

#define ICoreWebView2Frame7_add_PermissionRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_PermissionRequested(This, eventHandler, token))

#define ICoreWebView2Frame7_remove_PermissionRequested(This, token) \
    ((This)->lpVtbl->remove_PermissionRequested(This, token))

#define ICoreWebView2Frame7_PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson) \
    ((This)->lpVtbl->PostSharedBufferToScript(This, sharedBuffer, access, additionalDataAsJson))

#define ICoreWebView2Frame7_get_FrameId(This, value) \
    ((This)->lpVtbl->get_FrameId(This, value))

#define ICoreWebView2Frame7_add_ScreenCaptureStarting(This, eventHandler, token) \
    ((This)->lpVtbl->add_ScreenCaptureStarting(This, eventHandler, token))

#define ICoreWebView2Frame7_remove_ScreenCaptureStarting(This, token) \
    ((This)->lpVtbl->remove_ScreenCaptureStarting(This, token))

#define ICoreWebView2Frame7_add_FrameCreated(This, eventHandler, token) \
    ((This)->lpVtbl->add_FrameCreated(This, eventHandler, token))

#define ICoreWebView2Frame7_remove_FrameCreated(This, token) \
    ((This)->lpVtbl->remove_FrameCreated(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Frame7_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameChildFrameCreatedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2FrameChildFrameCreatedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameChildFrameCreatedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameChildFrameCreatedEventHandler = {0x569e40e7, 0x46b7, 0x563d, {0x83, 0xae, 0x10, 0x73, 0x15, 0x56, 0x64, 0xd7}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("569e40e7-46b7-563d-83ae-1073155664d7")
    ICoreWebView2FrameChildFrameCreatedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Frame * sender,
            /* [in] */ ICoreWebView2FrameCreatedEventArgs * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameChildFrameCreatedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameChildFrameCreatedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameChildFrameCreatedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameChildFrameCreatedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameChildFrameCreatedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2FrameChildFrameCreatedEventHandler *This,
            /* [in] */ ICoreWebView2Frame *sender,
            /* [in] */ ICoreWebView2FrameCreatedEventArgs *args);

        END_INTERFACE
    } ICoreWebView2FrameChildFrameCreatedEventHandlerVtbl;

    interface ICoreWebView2FrameChildFrameCreatedEventHandler
    {
        CONST_VTBL struct ICoreWebView2FrameChildFrameCreatedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameChildFrameCreatedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameChildFrameCreatedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameChildFrameCreatedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameChildFrameCreatedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameChildFrameCreatedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameCreatedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2FrameCreatedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameCreatedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameCreatedEventArgs = {0x4d6e7b5e, 0x9baa, 0x11eb, {0xa8, 0xb3, 0x02, 0x42, 0xac, 0x13, 0x00, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4d6e7b5e-9baa-11eb-a8b3-0242ac130003")
    ICoreWebView2FrameCreatedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Frame(
            /* [retval][out] */ ICoreWebView2Frame * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameCreatedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameCreatedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameCreatedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameCreatedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameCreatedEventArgs, get_Frame)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Frame)(
            ICoreWebView2FrameCreatedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Frame **value);

        END_INTERFACE
    } ICoreWebView2FrameCreatedEventArgsVtbl;

    interface ICoreWebView2FrameCreatedEventArgs
    {
        CONST_VTBL struct ICoreWebView2FrameCreatedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameCreatedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameCreatedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameCreatedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameCreatedEventArgs_get_Frame(This, value) \
    ((This)->lpVtbl->get_Frame(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameCreatedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameInfo_INTERFACE_DEFINED__
#define __ICoreWebView2FrameInfo_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameInfo */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameInfo = {0xda86b8a1, 0xbdf3, 0x4f11, {0x99, 0x55, 0x52, 0x8c, 0xef, 0xa5, 0x97, 0x27}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("da86b8a1-bdf3-4f11-9955-528cefa59727")
    ICoreWebView2FrameInfo : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Source(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameInfoVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameInfo *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameInfo *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameInfo *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfo, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2FrameInfo *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfo, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2FrameInfo *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2FrameInfoVtbl;

    interface ICoreWebView2FrameInfo
    {
        CONST_VTBL struct ICoreWebView2FrameInfoVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameInfo_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameInfo_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameInfo_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameInfo_get_Name(This, value) \
    ((This)->lpVtbl->get_Name(This, value))

#define ICoreWebView2FrameInfo_get_Source(This, value) \
    ((This)->lpVtbl->get_Source(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameInfo_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameInfo2_INTERFACE_DEFINED__
#define __ICoreWebView2FrameInfo2_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameInfo2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameInfo2 = {0x56f85cfa, 0x72c4, 0x11ee, {0xb9, 0x62, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("56f85cfa-72c4-11ee-b962-0242ac120002")
    ICoreWebView2FrameInfo2 : public ICoreWebView2FrameInfo
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ParentFrameInfo(
            /* [retval][out] */ ICoreWebView2FrameInfo * *frameInfo) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FrameId(
            /* [retval][out] */ UINT32 * id) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FrameKind(
            /* [retval][out] */ COREWEBVIEW2_FRAME_KIND * kind) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameInfo2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameInfo2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameInfo2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameInfo2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfo, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2FrameInfo2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfo, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2FrameInfo2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfo2, get_ParentFrameInfo)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ParentFrameInfo)(
            ICoreWebView2FrameInfo2 *This,
            /* [retval][out] */ ICoreWebView2FrameInfo **frameInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfo2, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2FrameInfo2 *This,
            /* [retval][out] */ UINT32 *id);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfo2, get_FrameKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameKind)(
            ICoreWebView2FrameInfo2 *This,
            /* [retval][out] */ COREWEBVIEW2_FRAME_KIND *kind);

        END_INTERFACE
    } ICoreWebView2FrameInfo2Vtbl;

    interface ICoreWebView2FrameInfo2
    {
        CONST_VTBL struct ICoreWebView2FrameInfo2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameInfo2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameInfo2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameInfo2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameInfo2_get_Name(This, value) \
    ((This)->lpVtbl->get_Name(This, value))

#define ICoreWebView2FrameInfo2_get_Source(This, value) \
    ((This)->lpVtbl->get_Source(This, value))

#define ICoreWebView2FrameInfo2_get_ParentFrameInfo(This, frameInfo) \
    ((This)->lpVtbl->get_ParentFrameInfo(This, frameInfo))

#define ICoreWebView2FrameInfo2_get_FrameId(This, id) \
    ((This)->lpVtbl->get_FrameId(This, id))

#define ICoreWebView2FrameInfo2_get_FrameKind(This, kind) \
    ((This)->lpVtbl->get_FrameKind(This, kind))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameInfo2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameInfoCollection_INTERFACE_DEFINED__
#define __ICoreWebView2FrameInfoCollection_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameInfoCollection */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameInfoCollection = {0x8f834154, 0xd38e, 0x4d90, {0xaf, 0xfb, 0x68, 0x00, 0xa7, 0x27, 0x28, 0x39}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("8f834154-d38e-4d90-affb-6800a7272839")
    ICoreWebView2FrameInfoCollection : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetIterator(
            /* [retval][out] */ ICoreWebView2FrameInfoCollectionIterator * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameInfoCollectionVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameInfoCollection *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameInfoCollection *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameInfoCollection *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfoCollection, GetIterator)
        HRESULT(STDMETHODCALLTYPE *GetIterator)(
            ICoreWebView2FrameInfoCollection *This,
            /* [retval][out] */ ICoreWebView2FrameInfoCollectionIterator **value);

        END_INTERFACE
    } ICoreWebView2FrameInfoCollectionVtbl;

    interface ICoreWebView2FrameInfoCollection
    {
        CONST_VTBL struct ICoreWebView2FrameInfoCollectionVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameInfoCollection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameInfoCollection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameInfoCollection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameInfoCollection_GetIterator(This, value) \
    ((This)->lpVtbl->GetIterator(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameInfoCollection_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2FrameInfoCollectionIterator_INTERFACE_DEFINED__
#define __ICoreWebView2FrameInfoCollectionIterator_INTERFACE_DEFINED__

    /* interface ICoreWebView2FrameInfoCollectionIterator */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2FrameInfoCollectionIterator = {0x1bf89e2d, 0x1b2b, 0x4629, {0xb2, 0x8f, 0x05, 0x09, 0x9b, 0x41, 0xbb, 0x03}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("1bf89e2d-1b2b-4629-b28f-05099b41bb03")
    ICoreWebView2FrameInfoCollectionIterator : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrent(
            /* [retval][out] */ BOOL * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetCurrent(
            /* [retval][out] */ ICoreWebView2FrameInfo * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE MoveNext(
            /* [retval][out] */ BOOL * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2FrameInfoCollectionIteratorVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2FrameInfoCollectionIterator *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2FrameInfoCollectionIterator *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2FrameInfoCollectionIterator *This);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfoCollectionIterator, get_HasCurrent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HasCurrent)(
            ICoreWebView2FrameInfoCollectionIterator *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfoCollectionIterator, GetCurrent)
        HRESULT(STDMETHODCALLTYPE *GetCurrent)(
            ICoreWebView2FrameInfoCollectionIterator *This,
            /* [retval][out] */ ICoreWebView2FrameInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2FrameInfoCollectionIterator, MoveNext)
        HRESULT(STDMETHODCALLTYPE *MoveNext)(
            ICoreWebView2FrameInfoCollectionIterator *This,
            /* [retval][out] */ BOOL *value);

        END_INTERFACE
    } ICoreWebView2FrameInfoCollectionIteratorVtbl;

    interface ICoreWebView2FrameInfoCollectionIterator
    {
        CONST_VTBL struct ICoreWebView2FrameInfoCollectionIteratorVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2FrameInfoCollectionIterator_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2FrameInfoCollectionIterator_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2FrameInfoCollectionIterator_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2FrameInfoCollectionIterator_get_HasCurrent(This, value) \
    ((This)->lpVtbl->get_HasCurrent(This, value))

#define ICoreWebView2FrameInfoCollectionIterator_GetCurrent(This, value) \
    ((This)->lpVtbl->GetCurrent(This, value))

#define ICoreWebView2FrameInfoCollectionIterator_MoveNext(This, value) \
    ((This)->lpVtbl->MoveNext(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2FrameInfoCollectionIterator_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2HttpHeadersCollectionIterator_INTERFACE_DEFINED__
#define __ICoreWebView2HttpHeadersCollectionIterator_INTERFACE_DEFINED__

    /* interface ICoreWebView2HttpHeadersCollectionIterator */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2HttpHeadersCollectionIterator = {0x0702fc30, 0xf43b, 0x47bb, {0xab, 0x52, 0xa4, 0x2c, 0xb5, 0x52, 0xad, 0x9f}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0702fc30-f43b-47bb-ab52-a42cb552ad9f")
    ICoreWebView2HttpHeadersCollectionIterator : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetCurrentHeader(
            /* [out] */ LPWSTR * name,
            /* [out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasCurrentHeader(
            /* [retval][out] */ BOOL * hasCurrent) = 0;

        virtual HRESULT STDMETHODCALLTYPE MoveNext(
            /* [retval][out] */ BOOL * hasNext) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2HttpHeadersCollectionIteratorVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2HttpHeadersCollectionIterator *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2HttpHeadersCollectionIterator *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2HttpHeadersCollectionIterator *This);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpHeadersCollectionIterator, GetCurrentHeader)
        HRESULT(STDMETHODCALLTYPE *GetCurrentHeader)(
            ICoreWebView2HttpHeadersCollectionIterator *This,
            /* [out] */ LPWSTR *name,
            /* [out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpHeadersCollectionIterator, get_HasCurrentHeader)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HasCurrentHeader)(
            ICoreWebView2HttpHeadersCollectionIterator *This,
            /* [retval][out] */ BOOL *hasCurrent);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpHeadersCollectionIterator, MoveNext)
        HRESULT(STDMETHODCALLTYPE *MoveNext)(
            ICoreWebView2HttpHeadersCollectionIterator *This,
            /* [retval][out] */ BOOL *hasNext);

        END_INTERFACE
    } ICoreWebView2HttpHeadersCollectionIteratorVtbl;

    interface ICoreWebView2HttpHeadersCollectionIterator
    {
        CONST_VTBL struct ICoreWebView2HttpHeadersCollectionIteratorVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2HttpHeadersCollectionIterator_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2HttpHeadersCollectionIterator_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2HttpHeadersCollectionIterator_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2HttpHeadersCollectionIterator_GetCurrentHeader(This, name, value) \
    ((This)->lpVtbl->GetCurrentHeader(This, name, value))

#define ICoreWebView2HttpHeadersCollectionIterator_get_HasCurrentHeader(This, hasCurrent) \
    ((This)->lpVtbl->get_HasCurrentHeader(This, hasCurrent))

#define ICoreWebView2HttpHeadersCollectionIterator_MoveNext(This, hasNext) \
    ((This)->lpVtbl->MoveNext(This, hasNext))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2HttpHeadersCollectionIterator_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2HttpRequestHeaders_INTERFACE_DEFINED__
#define __ICoreWebView2HttpRequestHeaders_INTERFACE_DEFINED__

    /* interface ICoreWebView2HttpRequestHeaders */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2HttpRequestHeaders = {0xe86cac0e, 0x5523, 0x465c, {0xb5, 0x36, 0x8f, 0xb9, 0xfc, 0x8c, 0x8c, 0x60}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e86cac0e-5523-465c-b536-8fb9fc8c8c60")
    ICoreWebView2HttpRequestHeaders : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetHeader(
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetHeaders(
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ ICoreWebView2HttpHeadersCollectionIterator * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE Contains(
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ BOOL * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE SetHeader(
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR value) = 0;

        virtual HRESULT STDMETHODCALLTYPE RemoveHeader(
            /* [in] */ LPCWSTR name) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetIterator(
            /* [retval][out] */ ICoreWebView2HttpHeadersCollectionIterator * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2HttpRequestHeadersVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2HttpRequestHeaders *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2HttpRequestHeaders *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2HttpRequestHeaders *This);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpRequestHeaders, GetHeader)
        HRESULT(STDMETHODCALLTYPE *GetHeader)(
            ICoreWebView2HttpRequestHeaders *This,
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpRequestHeaders, GetHeaders)
        HRESULT(STDMETHODCALLTYPE *GetHeaders)(
            ICoreWebView2HttpRequestHeaders *This,
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ ICoreWebView2HttpHeadersCollectionIterator **value);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpRequestHeaders, Contains)
        HRESULT(STDMETHODCALLTYPE *Contains)(
            ICoreWebView2HttpRequestHeaders *This,
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpRequestHeaders, SetHeader)
        HRESULT(STDMETHODCALLTYPE *SetHeader)(
            ICoreWebView2HttpRequestHeaders *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpRequestHeaders, RemoveHeader)
        HRESULT(STDMETHODCALLTYPE *RemoveHeader)(
            ICoreWebView2HttpRequestHeaders *This,
            /* [in] */ LPCWSTR name);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpRequestHeaders, GetIterator)
        HRESULT(STDMETHODCALLTYPE *GetIterator)(
            ICoreWebView2HttpRequestHeaders *This,
            /* [retval][out] */ ICoreWebView2HttpHeadersCollectionIterator **value);

        END_INTERFACE
    } ICoreWebView2HttpRequestHeadersVtbl;

    interface ICoreWebView2HttpRequestHeaders
    {
        CONST_VTBL struct ICoreWebView2HttpRequestHeadersVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2HttpRequestHeaders_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2HttpRequestHeaders_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2HttpRequestHeaders_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2HttpRequestHeaders_GetHeader(This, name, value) \
    ((This)->lpVtbl->GetHeader(This, name, value))

#define ICoreWebView2HttpRequestHeaders_GetHeaders(This, name, value) \
    ((This)->lpVtbl->GetHeaders(This, name, value))

#define ICoreWebView2HttpRequestHeaders_Contains(This, name, value) \
    ((This)->lpVtbl->Contains(This, name, value))

#define ICoreWebView2HttpRequestHeaders_SetHeader(This, name, value) \
    ((This)->lpVtbl->SetHeader(This, name, value))

#define ICoreWebView2HttpRequestHeaders_RemoveHeader(This, name) \
    ((This)->lpVtbl->RemoveHeader(This, name))

#define ICoreWebView2HttpRequestHeaders_GetIterator(This, value) \
    ((This)->lpVtbl->GetIterator(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2HttpRequestHeaders_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2HttpResponseHeaders_INTERFACE_DEFINED__
#define __ICoreWebView2HttpResponseHeaders_INTERFACE_DEFINED__

    /* interface ICoreWebView2HttpResponseHeaders */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2HttpResponseHeaders = {0x03c5ff5a, 0x9b45, 0x4a88, {0x88, 0x1c, 0x89, 0xa9, 0xf3, 0x28, 0x61, 0x9c}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("03c5ff5a-9b45-4a88-881c-89a9f328619c")
    ICoreWebView2HttpResponseHeaders : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AppendHeader(
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR value) = 0;

        virtual HRESULT STDMETHODCALLTYPE Contains(
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ BOOL * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetHeader(
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetHeaders(
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ ICoreWebView2HttpHeadersCollectionIterator * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetIterator(
            /* [retval][out] */ ICoreWebView2HttpHeadersCollectionIterator * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2HttpResponseHeadersVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2HttpResponseHeaders *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2HttpResponseHeaders *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2HttpResponseHeaders *This);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpResponseHeaders, AppendHeader)
        HRESULT(STDMETHODCALLTYPE *AppendHeader)(
            ICoreWebView2HttpResponseHeaders *This,
            /* [in] */ LPCWSTR name,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpResponseHeaders, Contains)
        HRESULT(STDMETHODCALLTYPE *Contains)(
            ICoreWebView2HttpResponseHeaders *This,
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpResponseHeaders, GetHeader)
        HRESULT(STDMETHODCALLTYPE *GetHeader)(
            ICoreWebView2HttpResponseHeaders *This,
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpResponseHeaders, GetHeaders)
        HRESULT(STDMETHODCALLTYPE *GetHeaders)(
            ICoreWebView2HttpResponseHeaders *This,
            /* [in] */ LPCWSTR name,
            /* [retval][out] */ ICoreWebView2HttpHeadersCollectionIterator **value);

        DECLSPEC_XFGVIRT(ICoreWebView2HttpResponseHeaders, GetIterator)
        HRESULT(STDMETHODCALLTYPE *GetIterator)(
            ICoreWebView2HttpResponseHeaders *This,
            /* [retval][out] */ ICoreWebView2HttpHeadersCollectionIterator **value);

        END_INTERFACE
    } ICoreWebView2HttpResponseHeadersVtbl;

    interface ICoreWebView2HttpResponseHeaders
    {
        CONST_VTBL struct ICoreWebView2HttpResponseHeadersVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2HttpResponseHeaders_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2HttpResponseHeaders_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2HttpResponseHeaders_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2HttpResponseHeaders_AppendHeader(This, name, value) \
    ((This)->lpVtbl->AppendHeader(This, name, value))

#define ICoreWebView2HttpResponseHeaders_Contains(This, name, value) \
    ((This)->lpVtbl->Contains(This, name, value))

#define ICoreWebView2HttpResponseHeaders_GetHeader(This, name, value) \
    ((This)->lpVtbl->GetHeader(This, name, value))

#define ICoreWebView2HttpResponseHeaders_GetHeaders(This, name, value) \
    ((This)->lpVtbl->GetHeaders(This, name, value))

#define ICoreWebView2HttpResponseHeaders_GetIterator(This, value) \
    ((This)->lpVtbl->GetIterator(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2HttpResponseHeaders_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2LaunchingExternalUriSchemeEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2LaunchingExternalUriSchemeEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2LaunchingExternalUriSchemeEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2LaunchingExternalUriSchemeEventArgs = {0x07D1A6C3, 0x7175, 0x4BA1, {0x93, 0x06, 0xE5, 0x93, 0xCA, 0x07, 0xE4, 0x6C}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("07D1A6C3-7175-4BA1-9306-E593CA07E46C")
    ICoreWebView2LaunchingExternalUriSchemeEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Uri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InitiatingOrigin(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsUserInitiated(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Cancel(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Cancel(
            /* [in] */ BOOL value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2LaunchingExternalUriSchemeEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2LaunchingExternalUriSchemeEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2LaunchingExternalUriSchemeEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2LaunchingExternalUriSchemeEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2LaunchingExternalUriSchemeEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2LaunchingExternalUriSchemeEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2LaunchingExternalUriSchemeEventArgs, get_InitiatingOrigin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_InitiatingOrigin)(
            ICoreWebView2LaunchingExternalUriSchemeEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2LaunchingExternalUriSchemeEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2LaunchingExternalUriSchemeEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2LaunchingExternalUriSchemeEventArgs, get_Cancel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cancel)(
            ICoreWebView2LaunchingExternalUriSchemeEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2LaunchingExternalUriSchemeEventArgs, put_Cancel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Cancel)(
            ICoreWebView2LaunchingExternalUriSchemeEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2LaunchingExternalUriSchemeEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2LaunchingExternalUriSchemeEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **value);

        END_INTERFACE
    } ICoreWebView2LaunchingExternalUriSchemeEventArgsVtbl;

    interface ICoreWebView2LaunchingExternalUriSchemeEventArgs
    {
        CONST_VTBL struct ICoreWebView2LaunchingExternalUriSchemeEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2LaunchingExternalUriSchemeEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2LaunchingExternalUriSchemeEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2LaunchingExternalUriSchemeEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2LaunchingExternalUriSchemeEventArgs_get_Uri(This, value) \
    ((This)->lpVtbl->get_Uri(This, value))

#define ICoreWebView2LaunchingExternalUriSchemeEventArgs_get_InitiatingOrigin(This, value) \
    ((This)->lpVtbl->get_InitiatingOrigin(This, value))

#define ICoreWebView2LaunchingExternalUriSchemeEventArgs_get_IsUserInitiated(This, value) \
    ((This)->lpVtbl->get_IsUserInitiated(This, value))

#define ICoreWebView2LaunchingExternalUriSchemeEventArgs_get_Cancel(This, value) \
    ((This)->lpVtbl->get_Cancel(This, value))

#define ICoreWebView2LaunchingExternalUriSchemeEventArgs_put_Cancel(This, value) \
    ((This)->lpVtbl->put_Cancel(This, value))

#define ICoreWebView2LaunchingExternalUriSchemeEventArgs_GetDeferral(This, value) \
    ((This)->lpVtbl->GetDeferral(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2LaunchingExternalUriSchemeEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2MoveFocusRequestedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2MoveFocusRequestedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2MoveFocusRequestedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2MoveFocusRequestedEventArgs = {0x2d6aa13b, 0x3839, 0x4a15, {0x92, 0xfc, 0xd8, 0x8b, 0x3c, 0x0d, 0x9c, 0x9d}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("2d6aa13b-3839-4a15-92fc-d88b3c0d9c9d")
    ICoreWebView2MoveFocusRequestedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Reason(
            /* [retval][out] */ COREWEBVIEW2_MOVE_FOCUS_REASON * reason) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2MoveFocusRequestedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2MoveFocusRequestedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2MoveFocusRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2MoveFocusRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2MoveFocusRequestedEventArgs, get_Reason)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Reason)(
            ICoreWebView2MoveFocusRequestedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_MOVE_FOCUS_REASON *reason);

        DECLSPEC_XFGVIRT(ICoreWebView2MoveFocusRequestedEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2MoveFocusRequestedEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2MoveFocusRequestedEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2MoveFocusRequestedEventArgs *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2MoveFocusRequestedEventArgsVtbl;

    interface ICoreWebView2MoveFocusRequestedEventArgs
    {
        CONST_VTBL struct ICoreWebView2MoveFocusRequestedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2MoveFocusRequestedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2MoveFocusRequestedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2MoveFocusRequestedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2MoveFocusRequestedEventArgs_get_Reason(This, reason) \
    ((This)->lpVtbl->get_Reason(This, reason))

#define ICoreWebView2MoveFocusRequestedEventArgs_get_Handled(This, value) \
    ((This)->lpVtbl->get_Handled(This, value))

#define ICoreWebView2MoveFocusRequestedEventArgs_put_Handled(This, value) \
    ((This)->lpVtbl->put_Handled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2MoveFocusRequestedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NavigationCompletedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2NavigationCompletedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2NavigationCompletedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NavigationCompletedEventArgs = {0x30d68b7d, 0x20d9, 0x4752, {0xa9, 0xca, 0xec, 0x84, 0x48, 0xfb, 0xb5, 0xc1}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("30d68b7d-20d9-4752-a9ca-ec8448fbb5c1")
    ICoreWebView2NavigationCompletedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsSuccess(
            /* [retval][out] */ BOOL * isSuccess) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_WebErrorStatus(
            /* [retval][out] */ COREWEBVIEW2_WEB_ERROR_STATUS * webErrorStatus) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NavigationId(
            /* [retval][out] */ UINT64 * navigationId) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NavigationCompletedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NavigationCompletedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NavigationCompletedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NavigationCompletedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationCompletedEventArgs, get_IsSuccess)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuccess)(
            ICoreWebView2NavigationCompletedEventArgs *This,
            /* [retval][out] */ BOOL *isSuccess);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationCompletedEventArgs, get_WebErrorStatus)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_WebErrorStatus)(
            ICoreWebView2NavigationCompletedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_WEB_ERROR_STATUS *webErrorStatus);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationCompletedEventArgs, get_NavigationId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NavigationId)(
            ICoreWebView2NavigationCompletedEventArgs *This,
            /* [retval][out] */ UINT64 *navigationId);

        END_INTERFACE
    } ICoreWebView2NavigationCompletedEventArgsVtbl;

    interface ICoreWebView2NavigationCompletedEventArgs
    {
        CONST_VTBL struct ICoreWebView2NavigationCompletedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NavigationCompletedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NavigationCompletedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NavigationCompletedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NavigationCompletedEventArgs_get_IsSuccess(This, isSuccess) \
    ((This)->lpVtbl->get_IsSuccess(This, isSuccess))

#define ICoreWebView2NavigationCompletedEventArgs_get_WebErrorStatus(This, webErrorStatus) \
    ((This)->lpVtbl->get_WebErrorStatus(This, webErrorStatus))

#define ICoreWebView2NavigationCompletedEventArgs_get_NavigationId(This, navigationId) \
    ((This)->lpVtbl->get_NavigationId(This, navigationId))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NavigationCompletedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NavigationCompletedEventArgs2_INTERFACE_DEFINED__
#define __ICoreWebView2NavigationCompletedEventArgs2_INTERFACE_DEFINED__

    /* interface ICoreWebView2NavigationCompletedEventArgs2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NavigationCompletedEventArgs2 = {0xfdf8b738, 0xee1e, 0x4db2, {0xa3, 0x29, 0x8d, 0x7d, 0x7b, 0x74, 0xd7, 0x92}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("fdf8b738-ee1e-4db2-a329-8d7d7b74d792")
    ICoreWebView2NavigationCompletedEventArgs2 : public ICoreWebView2NavigationCompletedEventArgs
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HttpStatusCode(
            /* [retval][out] */ int *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NavigationCompletedEventArgs2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NavigationCompletedEventArgs2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NavigationCompletedEventArgs2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NavigationCompletedEventArgs2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationCompletedEventArgs, get_IsSuccess)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSuccess)(
            ICoreWebView2NavigationCompletedEventArgs2 *This,
            /* [retval][out] */ BOOL *isSuccess);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationCompletedEventArgs, get_WebErrorStatus)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_WebErrorStatus)(
            ICoreWebView2NavigationCompletedEventArgs2 *This,
            /* [retval][out] */ COREWEBVIEW2_WEB_ERROR_STATUS *webErrorStatus);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationCompletedEventArgs, get_NavigationId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NavigationId)(
            ICoreWebView2NavigationCompletedEventArgs2 *This,
            /* [retval][out] */ UINT64 *navigationId);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationCompletedEventArgs2, get_HttpStatusCode)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HttpStatusCode)(
            ICoreWebView2NavigationCompletedEventArgs2 *This,
            /* [retval][out] */ int *value);

        END_INTERFACE
    } ICoreWebView2NavigationCompletedEventArgs2Vtbl;

    interface ICoreWebView2NavigationCompletedEventArgs2
    {
        CONST_VTBL struct ICoreWebView2NavigationCompletedEventArgs2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NavigationCompletedEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NavigationCompletedEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NavigationCompletedEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NavigationCompletedEventArgs2_get_IsSuccess(This, isSuccess) \
    ((This)->lpVtbl->get_IsSuccess(This, isSuccess))

#define ICoreWebView2NavigationCompletedEventArgs2_get_WebErrorStatus(This, webErrorStatus) \
    ((This)->lpVtbl->get_WebErrorStatus(This, webErrorStatus))

#define ICoreWebView2NavigationCompletedEventArgs2_get_NavigationId(This, navigationId) \
    ((This)->lpVtbl->get_NavigationId(This, navigationId))

#define ICoreWebView2NavigationCompletedEventArgs2_get_HttpStatusCode(This, value) \
    ((This)->lpVtbl->get_HttpStatusCode(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NavigationCompletedEventArgs2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NavigationStartingEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2NavigationStartingEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2NavigationStartingEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NavigationStartingEventArgs = {0x5b495469, 0xe119, 0x438a, {0x9b, 0x18, 0x76, 0x04, 0xf2, 0x5f, 0x2e, 0x49}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("5b495469-e119-438a-9b18-7604f25f2e49")
    ICoreWebView2NavigationStartingEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Uri(
            /* [retval][out] */ LPWSTR * uri) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsUserInitiated(
            /* [retval][out] */ BOOL * isUserInitiated) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsRedirected(
            /* [retval][out] */ BOOL * isRedirected) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RequestHeaders(
            /* [retval][out] */ ICoreWebView2HttpRequestHeaders * *requestHeaders) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Cancel(
            /* [retval][out] */ BOOL * cancel) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Cancel(
            /* [in] */ BOOL cancel) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NavigationId(
            /* [retval][out] */ UINT64 * navigationId) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NavigationStartingEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NavigationStartingEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NavigationStartingEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NavigationStartingEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2NavigationStartingEventArgs *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2NavigationStartingEventArgs *This,
            /* [retval][out] */ BOOL *isUserInitiated);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_IsRedirected)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsRedirected)(
            ICoreWebView2NavigationStartingEventArgs *This,
            /* [retval][out] */ BOOL *isRedirected);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_RequestHeaders)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RequestHeaders)(
            ICoreWebView2NavigationStartingEventArgs *This,
            /* [retval][out] */ ICoreWebView2HttpRequestHeaders **requestHeaders);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_Cancel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cancel)(
            ICoreWebView2NavigationStartingEventArgs *This,
            /* [retval][out] */ BOOL *cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, put_Cancel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Cancel)(
            ICoreWebView2NavigationStartingEventArgs *This,
            /* [in] */ BOOL cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_NavigationId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NavigationId)(
            ICoreWebView2NavigationStartingEventArgs *This,
            /* [retval][out] */ UINT64 *navigationId);

        END_INTERFACE
    } ICoreWebView2NavigationStartingEventArgsVtbl;

    interface ICoreWebView2NavigationStartingEventArgs
    {
        CONST_VTBL struct ICoreWebView2NavigationStartingEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NavigationStartingEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NavigationStartingEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NavigationStartingEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NavigationStartingEventArgs_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2NavigationStartingEventArgs_get_IsUserInitiated(This, isUserInitiated) \
    ((This)->lpVtbl->get_IsUserInitiated(This, isUserInitiated))

#define ICoreWebView2NavigationStartingEventArgs_get_IsRedirected(This, isRedirected) \
    ((This)->lpVtbl->get_IsRedirected(This, isRedirected))

#define ICoreWebView2NavigationStartingEventArgs_get_RequestHeaders(This, requestHeaders) \
    ((This)->lpVtbl->get_RequestHeaders(This, requestHeaders))

#define ICoreWebView2NavigationStartingEventArgs_get_Cancel(This, cancel) \
    ((This)->lpVtbl->get_Cancel(This, cancel))

#define ICoreWebView2NavigationStartingEventArgs_put_Cancel(This, cancel) \
    ((This)->lpVtbl->put_Cancel(This, cancel))

#define ICoreWebView2NavigationStartingEventArgs_get_NavigationId(This, navigationId) \
    ((This)->lpVtbl->get_NavigationId(This, navigationId))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NavigationStartingEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NavigationStartingEventArgs2_INTERFACE_DEFINED__
#define __ICoreWebView2NavigationStartingEventArgs2_INTERFACE_DEFINED__

    /* interface ICoreWebView2NavigationStartingEventArgs2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NavigationStartingEventArgs2 = {0x9086be93, 0x91aa, 0x472d, {0xa7, 0xe0, 0x57, 0x9f, 0x2b, 0xa0, 0x06, 0xad}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9086be93-91aa-472d-a7e0-579f2ba006ad")
    ICoreWebView2NavigationStartingEventArgs2 : public ICoreWebView2NavigationStartingEventArgs
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AdditionalAllowedFrameAncestors(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AdditionalAllowedFrameAncestors(
            /* [in] */ LPCWSTR value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NavigationStartingEventArgs2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NavigationStartingEventArgs2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NavigationStartingEventArgs2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [retval][out] */ BOOL *isUserInitiated);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_IsRedirected)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsRedirected)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [retval][out] */ BOOL *isRedirected);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_RequestHeaders)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RequestHeaders)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2HttpRequestHeaders **requestHeaders);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_Cancel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cancel)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [retval][out] */ BOOL *cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, put_Cancel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Cancel)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [in] */ BOOL cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_NavigationId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NavigationId)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [retval][out] */ UINT64 *navigationId);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs2, get_AdditionalAllowedFrameAncestors)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AdditionalAllowedFrameAncestors)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs2, put_AdditionalAllowedFrameAncestors)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AdditionalAllowedFrameAncestors)(
            ICoreWebView2NavigationStartingEventArgs2 *This,
            /* [in] */ LPCWSTR value);

        END_INTERFACE
    } ICoreWebView2NavigationStartingEventArgs2Vtbl;

    interface ICoreWebView2NavigationStartingEventArgs2
    {
        CONST_VTBL struct ICoreWebView2NavigationStartingEventArgs2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NavigationStartingEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NavigationStartingEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NavigationStartingEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NavigationStartingEventArgs2_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2NavigationStartingEventArgs2_get_IsUserInitiated(This, isUserInitiated) \
    ((This)->lpVtbl->get_IsUserInitiated(This, isUserInitiated))

#define ICoreWebView2NavigationStartingEventArgs2_get_IsRedirected(This, isRedirected) \
    ((This)->lpVtbl->get_IsRedirected(This, isRedirected))

#define ICoreWebView2NavigationStartingEventArgs2_get_RequestHeaders(This, requestHeaders) \
    ((This)->lpVtbl->get_RequestHeaders(This, requestHeaders))

#define ICoreWebView2NavigationStartingEventArgs2_get_Cancel(This, cancel) \
    ((This)->lpVtbl->get_Cancel(This, cancel))

#define ICoreWebView2NavigationStartingEventArgs2_put_Cancel(This, cancel) \
    ((This)->lpVtbl->put_Cancel(This, cancel))

#define ICoreWebView2NavigationStartingEventArgs2_get_NavigationId(This, navigationId) \
    ((This)->lpVtbl->get_NavigationId(This, navigationId))

#define ICoreWebView2NavigationStartingEventArgs2_get_AdditionalAllowedFrameAncestors(This, value) \
    ((This)->lpVtbl->get_AdditionalAllowedFrameAncestors(This, value))

#define ICoreWebView2NavigationStartingEventArgs2_put_AdditionalAllowedFrameAncestors(This, value) \
    ((This)->lpVtbl->put_AdditionalAllowedFrameAncestors(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NavigationStartingEventArgs2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NavigationStartingEventArgs3_INTERFACE_DEFINED__
#define __ICoreWebView2NavigationStartingEventArgs3_INTERFACE_DEFINED__

    /* interface ICoreWebView2NavigationStartingEventArgs3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NavigationStartingEventArgs3 = {0xddffe494, 0x4942, 0x4bd2, {0xab, 0x73, 0x35, 0xb8, 0xff, 0x40, 0xe1, 0x9f}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ddffe494-4942-4bd2-ab73-35b8ff40e19f")
    ICoreWebView2NavigationStartingEventArgs3 : public ICoreWebView2NavigationStartingEventArgs2
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NavigationKind(
            /* [retval][out] */ COREWEBVIEW2_NAVIGATION_KIND * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NavigationStartingEventArgs3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NavigationStartingEventArgs3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NavigationStartingEventArgs3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [retval][out] */ BOOL *isUserInitiated);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_IsRedirected)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsRedirected)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [retval][out] */ BOOL *isRedirected);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_RequestHeaders)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RequestHeaders)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [retval][out] */ ICoreWebView2HttpRequestHeaders **requestHeaders);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_Cancel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cancel)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [retval][out] */ BOOL *cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, put_Cancel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Cancel)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [in] */ BOOL cancel);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs, get_NavigationId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NavigationId)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [retval][out] */ UINT64 *navigationId);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs2, get_AdditionalAllowedFrameAncestors)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AdditionalAllowedFrameAncestors)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs2, put_AdditionalAllowedFrameAncestors)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AdditionalAllowedFrameAncestors)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2NavigationStartingEventArgs3, get_NavigationKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NavigationKind)(
            ICoreWebView2NavigationStartingEventArgs3 *This,
            /* [retval][out] */ COREWEBVIEW2_NAVIGATION_KIND *value);

        END_INTERFACE
    } ICoreWebView2NavigationStartingEventArgs3Vtbl;

    interface ICoreWebView2NavigationStartingEventArgs3
    {
        CONST_VTBL struct ICoreWebView2NavigationStartingEventArgs3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NavigationStartingEventArgs3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NavigationStartingEventArgs3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NavigationStartingEventArgs3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NavigationStartingEventArgs3_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2NavigationStartingEventArgs3_get_IsUserInitiated(This, isUserInitiated) \
    ((This)->lpVtbl->get_IsUserInitiated(This, isUserInitiated))

#define ICoreWebView2NavigationStartingEventArgs3_get_IsRedirected(This, isRedirected) \
    ((This)->lpVtbl->get_IsRedirected(This, isRedirected))

#define ICoreWebView2NavigationStartingEventArgs3_get_RequestHeaders(This, requestHeaders) \
    ((This)->lpVtbl->get_RequestHeaders(This, requestHeaders))

#define ICoreWebView2NavigationStartingEventArgs3_get_Cancel(This, cancel) \
    ((This)->lpVtbl->get_Cancel(This, cancel))

#define ICoreWebView2NavigationStartingEventArgs3_put_Cancel(This, cancel) \
    ((This)->lpVtbl->put_Cancel(This, cancel))

#define ICoreWebView2NavigationStartingEventArgs3_get_NavigationId(This, navigationId) \
    ((This)->lpVtbl->get_NavigationId(This, navigationId))

#define ICoreWebView2NavigationStartingEventArgs3_get_AdditionalAllowedFrameAncestors(This, value) \
    ((This)->lpVtbl->get_AdditionalAllowedFrameAncestors(This, value))

#define ICoreWebView2NavigationStartingEventArgs3_put_AdditionalAllowedFrameAncestors(This, value) \
    ((This)->lpVtbl->put_AdditionalAllowedFrameAncestors(This, value))

#define ICoreWebView2NavigationStartingEventArgs3_get_NavigationKind(This, value) \
    ((This)->lpVtbl->get_NavigationKind(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NavigationStartingEventArgs3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NewWindowRequestedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2NewWindowRequestedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2NewWindowRequestedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NewWindowRequestedEventArgs = {0x34acb11c, 0xfc37, 0x4418, {0x91, 0x32, 0xf9, 0xc2, 0x1d, 0x1e, 0xaf, 0xb9}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("34acb11c-fc37-4418-9132-f9c21d1eafb9")
    ICoreWebView2NewWindowRequestedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Uri(
            /* [retval][out] */ LPWSTR * uri) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_NewWindow(
            /* [in] */ ICoreWebView2 * newWindow) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_NewWindow(
            /* [retval][out] */ ICoreWebView2 * *newWindow) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handled(
            /* [in] */ BOOL handled) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handled(
            /* [retval][out] */ BOOL * handled) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsUserInitiated(
            /* [retval][out] */ BOOL * isUserInitiated) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_WindowFeatures(
            /* [retval][out] */ ICoreWebView2WindowFeatures * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NewWindowRequestedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NewWindowRequestedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NewWindowRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NewWindowRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2NewWindowRequestedEventArgs *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, put_NewWindow)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_NewWindow)(
            ICoreWebView2NewWindowRequestedEventArgs *This,
            /* [in] */ ICoreWebView2 *newWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_NewWindow)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NewWindow)(
            ICoreWebView2NewWindowRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2 **newWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2NewWindowRequestedEventArgs *This,
            /* [in] */ BOOL handled);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2NewWindowRequestedEventArgs *This,
            /* [retval][out] */ BOOL *handled);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2NewWindowRequestedEventArgs *This,
            /* [retval][out] */ BOOL *isUserInitiated);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2NewWindowRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_WindowFeatures)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_WindowFeatures)(
            ICoreWebView2NewWindowRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2WindowFeatures **value);

        END_INTERFACE
    } ICoreWebView2NewWindowRequestedEventArgsVtbl;

    interface ICoreWebView2NewWindowRequestedEventArgs
    {
        CONST_VTBL struct ICoreWebView2NewWindowRequestedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NewWindowRequestedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NewWindowRequestedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NewWindowRequestedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NewWindowRequestedEventArgs_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2NewWindowRequestedEventArgs_put_NewWindow(This, newWindow) \
    ((This)->lpVtbl->put_NewWindow(This, newWindow))

#define ICoreWebView2NewWindowRequestedEventArgs_get_NewWindow(This, newWindow) \
    ((This)->lpVtbl->get_NewWindow(This, newWindow))

#define ICoreWebView2NewWindowRequestedEventArgs_put_Handled(This, handled) \
    ((This)->lpVtbl->put_Handled(This, handled))

#define ICoreWebView2NewWindowRequestedEventArgs_get_Handled(This, handled) \
    ((This)->lpVtbl->get_Handled(This, handled))

#define ICoreWebView2NewWindowRequestedEventArgs_get_IsUserInitiated(This, isUserInitiated) \
    ((This)->lpVtbl->get_IsUserInitiated(This, isUserInitiated))

#define ICoreWebView2NewWindowRequestedEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#define ICoreWebView2NewWindowRequestedEventArgs_get_WindowFeatures(This, value) \
    ((This)->lpVtbl->get_WindowFeatures(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NewWindowRequestedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NewWindowRequestedEventArgs2_INTERFACE_DEFINED__
#define __ICoreWebView2NewWindowRequestedEventArgs2_INTERFACE_DEFINED__

    /* interface ICoreWebView2NewWindowRequestedEventArgs2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NewWindowRequestedEventArgs2 = {0xbbc7baed, 0x74c6, 0x4c92, {0xb6, 0x3a, 0x7f, 0x5a, 0xea, 0xe0, 0x3d, 0xe3}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("bbc7baed-74c6-4c92-b63a-7f5aeae03de3")
    ICoreWebView2NewWindowRequestedEventArgs2 : public ICoreWebView2NewWindowRequestedEventArgs
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NewWindowRequestedEventArgs2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, put_NewWindow)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_NewWindow)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [in] */ ICoreWebView2 *newWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_NewWindow)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NewWindow)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2 **newWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [in] */ BOOL handled);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [retval][out] */ BOOL *handled);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [retval][out] */ BOOL *isUserInitiated);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_WindowFeatures)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_WindowFeatures)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2WindowFeatures **value);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs2, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2NewWindowRequestedEventArgs2 *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2NewWindowRequestedEventArgs2Vtbl;

    interface ICoreWebView2NewWindowRequestedEventArgs2
    {
        CONST_VTBL struct ICoreWebView2NewWindowRequestedEventArgs2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NewWindowRequestedEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NewWindowRequestedEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NewWindowRequestedEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NewWindowRequestedEventArgs2_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2NewWindowRequestedEventArgs2_put_NewWindow(This, newWindow) \
    ((This)->lpVtbl->put_NewWindow(This, newWindow))

#define ICoreWebView2NewWindowRequestedEventArgs2_get_NewWindow(This, newWindow) \
    ((This)->lpVtbl->get_NewWindow(This, newWindow))

#define ICoreWebView2NewWindowRequestedEventArgs2_put_Handled(This, handled) \
    ((This)->lpVtbl->put_Handled(This, handled))

#define ICoreWebView2NewWindowRequestedEventArgs2_get_Handled(This, handled) \
    ((This)->lpVtbl->get_Handled(This, handled))

#define ICoreWebView2NewWindowRequestedEventArgs2_get_IsUserInitiated(This, isUserInitiated) \
    ((This)->lpVtbl->get_IsUserInitiated(This, isUserInitiated))

#define ICoreWebView2NewWindowRequestedEventArgs2_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#define ICoreWebView2NewWindowRequestedEventArgs2_get_WindowFeatures(This, value) \
    ((This)->lpVtbl->get_WindowFeatures(This, value))

#define ICoreWebView2NewWindowRequestedEventArgs2_get_Name(This, value) \
    ((This)->lpVtbl->get_Name(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NewWindowRequestedEventArgs2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NewWindowRequestedEventArgs3_INTERFACE_DEFINED__
#define __ICoreWebView2NewWindowRequestedEventArgs3_INTERFACE_DEFINED__

    /* interface ICoreWebView2NewWindowRequestedEventArgs3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NewWindowRequestedEventArgs3 = {0x842bed3c, 0x6ad6, 0x4dd9, {0xb9, 0x38, 0x28, 0xc9, 0x66, 0x67, 0xad, 0x66}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("842bed3c-6ad6-4dd9-b938-28c96667ad66")
    ICoreWebView2NewWindowRequestedEventArgs3 : public ICoreWebView2NewWindowRequestedEventArgs2
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OriginalSourceFrameInfo(
            /* [retval][out] */ ICoreWebView2FrameInfo * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NewWindowRequestedEventArgs3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, put_NewWindow)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_NewWindow)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [in] */ ICoreWebView2 *newWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_NewWindow)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_NewWindow)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [retval][out] */ ICoreWebView2 **newWindow);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [in] */ BOOL handled);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [retval][out] */ BOOL *handled);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [retval][out] */ BOOL *isUserInitiated);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs, get_WindowFeatures)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_WindowFeatures)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [retval][out] */ ICoreWebView2WindowFeatures **value);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs2, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2NewWindowRequestedEventArgs3, get_OriginalSourceFrameInfo)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_OriginalSourceFrameInfo)(
            ICoreWebView2NewWindowRequestedEventArgs3 *This,
            /* [retval][out] */ ICoreWebView2FrameInfo **value);

        END_INTERFACE
    } ICoreWebView2NewWindowRequestedEventArgs3Vtbl;

    interface ICoreWebView2NewWindowRequestedEventArgs3
    {
        CONST_VTBL struct ICoreWebView2NewWindowRequestedEventArgs3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NewWindowRequestedEventArgs3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NewWindowRequestedEventArgs3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NewWindowRequestedEventArgs3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NewWindowRequestedEventArgs3_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2NewWindowRequestedEventArgs3_put_NewWindow(This, newWindow) \
    ((This)->lpVtbl->put_NewWindow(This, newWindow))

#define ICoreWebView2NewWindowRequestedEventArgs3_get_NewWindow(This, newWindow) \
    ((This)->lpVtbl->get_NewWindow(This, newWindow))

#define ICoreWebView2NewWindowRequestedEventArgs3_put_Handled(This, handled) \
    ((This)->lpVtbl->put_Handled(This, handled))

#define ICoreWebView2NewWindowRequestedEventArgs3_get_Handled(This, handled) \
    ((This)->lpVtbl->get_Handled(This, handled))

#define ICoreWebView2NewWindowRequestedEventArgs3_get_IsUserInitiated(This, isUserInitiated) \
    ((This)->lpVtbl->get_IsUserInitiated(This, isUserInitiated))

#define ICoreWebView2NewWindowRequestedEventArgs3_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#define ICoreWebView2NewWindowRequestedEventArgs3_get_WindowFeatures(This, value) \
    ((This)->lpVtbl->get_WindowFeatures(This, value))

#define ICoreWebView2NewWindowRequestedEventArgs3_get_Name(This, value) \
    ((This)->lpVtbl->get_Name(This, value))

#define ICoreWebView2NewWindowRequestedEventArgs3_get_OriginalSourceFrameInfo(This, value) \
    ((This)->lpVtbl->get_OriginalSourceFrameInfo(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NewWindowRequestedEventArgs3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NonClientRegionChangedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2NonClientRegionChangedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2NonClientRegionChangedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NonClientRegionChangedEventArgs = {0xab71d500, 0x0820, 0x4a52, {0x80, 0x9c, 0x48, 0xdb, 0x04, 0xff, 0x93, 0xbf}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ab71d500-0820-4a52-809c-48db04ff93bf")
    ICoreWebView2NonClientRegionChangedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RegionKind(
            /* [retval][out] */ COREWEBVIEW2_NON_CLIENT_REGION_KIND * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NonClientRegionChangedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NonClientRegionChangedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NonClientRegionChangedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NonClientRegionChangedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NonClientRegionChangedEventArgs, get_RegionKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RegionKind)(
            ICoreWebView2NonClientRegionChangedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_NON_CLIENT_REGION_KIND *value);

        END_INTERFACE
    } ICoreWebView2NonClientRegionChangedEventArgsVtbl;

    interface ICoreWebView2NonClientRegionChangedEventArgs
    {
        CONST_VTBL struct ICoreWebView2NonClientRegionChangedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NonClientRegionChangedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NonClientRegionChangedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NonClientRegionChangedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NonClientRegionChangedEventArgs_get_RegionKind(This, value) \
    ((This)->lpVtbl->get_RegionKind(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NonClientRegionChangedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Notification_INTERFACE_DEFINED__
#define __ICoreWebView2Notification_INTERFACE_DEFINED__

    /* interface ICoreWebView2Notification */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Notification = {0xB7434D98, 0x6BC8, 0x419D, {0x9D, 0xA5, 0xFB, 0x5A, 0x96, 0xD4, 0xDA, 0xCD}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("B7434D98-6BC8-419D-9DA5-FB5A96D4DACD")
    ICoreWebView2Notification : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE add_CloseRequested(
            /* [in] */ ICoreWebView2NotificationCloseRequestedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_CloseRequested(
            /* [in] */ EventRegistrationToken token) = 0;

        virtual HRESULT STDMETHODCALLTYPE ReportShown(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE ReportClicked(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE ReportClosed(void) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Body(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Direction(
            /* [retval][out] */ COREWEBVIEW2_TEXT_DIRECTION_KIND * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Language(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Tag(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IconUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Title(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BadgeUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_BodyImageUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShouldRenotify(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RequiresInteraction(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsSilent(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Timestamp(
            /* [retval][out] */ double *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetVibrationPattern(
            /* [out] */ UINT32 * count,
            /* [out] */ UINT64 * *vibrationPattern) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NotificationVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Notification *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Notification *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Notification *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, add_CloseRequested)
        HRESULT(STDMETHODCALLTYPE *add_CloseRequested)(
            ICoreWebView2Notification *This,
            /* [in] */ ICoreWebView2NotificationCloseRequestedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, remove_CloseRequested)
        HRESULT(STDMETHODCALLTYPE *remove_CloseRequested)(
            ICoreWebView2Notification *This,
            /* [in] */ EventRegistrationToken token);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, ReportShown)
        HRESULT(STDMETHODCALLTYPE *ReportShown)(
            ICoreWebView2Notification *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, ReportClicked)
        HRESULT(STDMETHODCALLTYPE *ReportClicked)(
            ICoreWebView2Notification *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, ReportClosed)
        HRESULT(STDMETHODCALLTYPE *ReportClosed)(
            ICoreWebView2Notification *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_Body)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Body)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_Direction)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Direction)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ COREWEBVIEW2_TEXT_DIRECTION_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_Language)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Language)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_Tag)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Tag)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_IconUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IconUri)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_Title)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Title)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_BadgeUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BadgeUri)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_BodyImageUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_BodyImageUri)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_ShouldRenotify)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldRenotify)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_RequiresInteraction)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RequiresInteraction)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_IsSilent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSilent)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, get_Timestamp)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Timestamp)(
            ICoreWebView2Notification *This,
            /* [retval][out] */ double *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Notification, GetVibrationPattern)
        HRESULT(STDMETHODCALLTYPE *GetVibrationPattern)(
            ICoreWebView2Notification *This,
            /* [out] */ UINT32 *count,
            /* [out] */ UINT64 **vibrationPattern);

        END_INTERFACE
    } ICoreWebView2NotificationVtbl;

    interface ICoreWebView2Notification
    {
        CONST_VTBL struct ICoreWebView2NotificationVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Notification_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Notification_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Notification_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Notification_add_CloseRequested(This, eventHandler, token) \
    ((This)->lpVtbl->add_CloseRequested(This, eventHandler, token))

#define ICoreWebView2Notification_remove_CloseRequested(This, token) \
    ((This)->lpVtbl->remove_CloseRequested(This, token))

#define ICoreWebView2Notification_ReportShown(This) \
    ((This)->lpVtbl->ReportShown(This))

#define ICoreWebView2Notification_ReportClicked(This) \
    ((This)->lpVtbl->ReportClicked(This))

#define ICoreWebView2Notification_ReportClosed(This) \
    ((This)->lpVtbl->ReportClosed(This))

#define ICoreWebView2Notification_get_Body(This, value) \
    ((This)->lpVtbl->get_Body(This, value))

#define ICoreWebView2Notification_get_Direction(This, value) \
    ((This)->lpVtbl->get_Direction(This, value))

#define ICoreWebView2Notification_get_Language(This, value) \
    ((This)->lpVtbl->get_Language(This, value))

#define ICoreWebView2Notification_get_Tag(This, value) \
    ((This)->lpVtbl->get_Tag(This, value))

#define ICoreWebView2Notification_get_IconUri(This, value) \
    ((This)->lpVtbl->get_IconUri(This, value))

#define ICoreWebView2Notification_get_Title(This, value) \
    ((This)->lpVtbl->get_Title(This, value))

#define ICoreWebView2Notification_get_BadgeUri(This, value) \
    ((This)->lpVtbl->get_BadgeUri(This, value))

#define ICoreWebView2Notification_get_BodyImageUri(This, value) \
    ((This)->lpVtbl->get_BodyImageUri(This, value))

#define ICoreWebView2Notification_get_ShouldRenotify(This, value) \
    ((This)->lpVtbl->get_ShouldRenotify(This, value))

#define ICoreWebView2Notification_get_RequiresInteraction(This, value) \
    ((This)->lpVtbl->get_RequiresInteraction(This, value))

#define ICoreWebView2Notification_get_IsSilent(This, value) \
    ((This)->lpVtbl->get_IsSilent(This, value))

#define ICoreWebView2Notification_get_Timestamp(This, value) \
    ((This)->lpVtbl->get_Timestamp(This, value))

#define ICoreWebView2Notification_GetVibrationPattern(This, count, vibrationPattern) \
    ((This)->lpVtbl->GetVibrationPattern(This, count, vibrationPattern))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Notification_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NotificationCloseRequestedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2NotificationCloseRequestedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2NotificationCloseRequestedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NotificationCloseRequestedEventHandler = {0x47c32d23, 0x1e94, 0x4733, {0x85, 0xf1, 0xd9, 0xbf, 0x4a, 0xcd, 0x09, 0x74}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("47c32d23-1e94-4733-85f1-d9bf4acd0974")
    ICoreWebView2NotificationCloseRequestedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Notification * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NotificationCloseRequestedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NotificationCloseRequestedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NotificationCloseRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NotificationCloseRequestedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NotificationCloseRequestedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2NotificationCloseRequestedEventHandler *This,
            /* [in] */ ICoreWebView2Notification *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2NotificationCloseRequestedEventHandlerVtbl;

    interface ICoreWebView2NotificationCloseRequestedEventHandler
    {
        CONST_VTBL struct ICoreWebView2NotificationCloseRequestedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NotificationCloseRequestedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NotificationCloseRequestedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NotificationCloseRequestedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NotificationCloseRequestedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NotificationCloseRequestedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2NotificationReceivedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2NotificationReceivedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2NotificationReceivedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2NotificationReceivedEventArgs = {0x1512DD5B, 0x5514, 0x4F85, {0x88, 0x6E, 0x21, 0xC3, 0xA4, 0xC9, 0xCF, 0xE6}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("1512DD5B-5514-4F85-886E-21C3A4C9CFE6")
    ICoreWebView2NotificationReceivedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SenderOrigin(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Notification(
            /* [retval][out] */ ICoreWebView2Notification * *value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handled(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2NotificationReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2NotificationReceivedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2NotificationReceivedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2NotificationReceivedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2NotificationReceivedEventArgs, get_SenderOrigin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SenderOrigin)(
            ICoreWebView2NotificationReceivedEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2NotificationReceivedEventArgs, get_Notification)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Notification)(
            ICoreWebView2NotificationReceivedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Notification **value);

        DECLSPEC_XFGVIRT(ICoreWebView2NotificationReceivedEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2NotificationReceivedEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2NotificationReceivedEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2NotificationReceivedEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2NotificationReceivedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2NotificationReceivedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        END_INTERFACE
    } ICoreWebView2NotificationReceivedEventArgsVtbl;

    interface ICoreWebView2NotificationReceivedEventArgs
    {
        CONST_VTBL struct ICoreWebView2NotificationReceivedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2NotificationReceivedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2NotificationReceivedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2NotificationReceivedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2NotificationReceivedEventArgs_get_SenderOrigin(This, value) \
    ((This)->lpVtbl->get_SenderOrigin(This, value))

#define ICoreWebView2NotificationReceivedEventArgs_get_Notification(This, value) \
    ((This)->lpVtbl->get_Notification(This, value))

#define ICoreWebView2NotificationReceivedEventArgs_put_Handled(This, value) \
    ((This)->lpVtbl->put_Handled(This, value))

#define ICoreWebView2NotificationReceivedEventArgs_get_Handled(This, value) \
    ((This)->lpVtbl->get_Handled(This, value))

#define ICoreWebView2NotificationReceivedEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2NotificationReceivedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ObjectCollectionView_INTERFACE_DEFINED__
#define __ICoreWebView2ObjectCollectionView_INTERFACE_DEFINED__

    /* interface ICoreWebView2ObjectCollectionView */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ObjectCollectionView = {0x0f36fd87, 0x4f69, 0x4415, {0x98, 0xda, 0x88, 0x8f, 0x89, 0xfb, 0x9a, 0x33}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0f36fd87-4f69-4415-98da-888f89fb9a33")
    ICoreWebView2ObjectCollectionView : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ IUnknown * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ObjectCollectionViewVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ObjectCollectionView *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ObjectCollectionView *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ObjectCollectionView *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ObjectCollectionView, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2ObjectCollectionView *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ObjectCollectionView, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2ObjectCollectionView *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ IUnknown **value);

        END_INTERFACE
    } ICoreWebView2ObjectCollectionViewVtbl;

    interface ICoreWebView2ObjectCollectionView
    {
        CONST_VTBL struct ICoreWebView2ObjectCollectionViewVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ObjectCollectionView_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ObjectCollectionView_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ObjectCollectionView_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ObjectCollectionView_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2ObjectCollectionView_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ObjectCollectionView_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ObjectCollection_INTERFACE_DEFINED__
#define __ICoreWebView2ObjectCollection_INTERFACE_DEFINED__

    /* interface ICoreWebView2ObjectCollection */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ObjectCollection = {0x5cfec11c, 0x25bd, 0x4e8d, {0x9e, 0x1a, 0x7a, 0xcd, 0xae, 0xee, 0xc0, 0x47}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("5cfec11c-25bd-4e8d-9e1a-7acdaeeec047")
    ICoreWebView2ObjectCollection : public ICoreWebView2ObjectCollectionView
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE RemoveValueAtIndex(
            /* [in] */ UINT32 index) = 0;

        virtual HRESULT STDMETHODCALLTYPE InsertValueAtIndex(
            /* [in] */ UINT32 index,
            /* [in] */ IUnknown * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ObjectCollectionVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ObjectCollection *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ObjectCollection *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ObjectCollection *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ObjectCollectionView, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2ObjectCollection *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ObjectCollectionView, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2ObjectCollection *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ IUnknown **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ObjectCollection, RemoveValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *RemoveValueAtIndex)(
            ICoreWebView2ObjectCollection *This,
            /* [in] */ UINT32 index);

        DECLSPEC_XFGVIRT(ICoreWebView2ObjectCollection, InsertValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *InsertValueAtIndex)(
            ICoreWebView2ObjectCollection *This,
            /* [in] */ UINT32 index,
            /* [in] */ IUnknown *value);

        END_INTERFACE
    } ICoreWebView2ObjectCollectionVtbl;

    interface ICoreWebView2ObjectCollection
    {
        CONST_VTBL struct ICoreWebView2ObjectCollectionVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ObjectCollection_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ObjectCollection_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ObjectCollection_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ObjectCollection_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2ObjectCollection_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#define ICoreWebView2ObjectCollection_RemoveValueAtIndex(This, index) \
    ((This)->lpVtbl->RemoveValueAtIndex(This, index))

#define ICoreWebView2ObjectCollection_InsertValueAtIndex(This, index, value) \
    ((This)->lpVtbl->InsertValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ObjectCollection_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PermissionRequestedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2PermissionRequestedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2PermissionRequestedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PermissionRequestedEventArgs = {0x973ae2ef, 0xff18, 0x4894, {0x8f, 0xb2, 0x3c, 0x75, 0x8f, 0x04, 0x68, 0x10}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("973ae2ef-ff18-4894-8fb2-3c758f046810")
    ICoreWebView2PermissionRequestedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Uri(
            /* [retval][out] */ LPWSTR * uri) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PermissionKind(
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_KIND * permissionKind) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsUserInitiated(
            /* [retval][out] */ BOOL * isUserInitiated) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_State(
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_STATE * state) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_State(
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE state) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PermissionRequestedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PermissionRequestedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PermissionRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PermissionRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2PermissionRequestedEventArgs *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_PermissionKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PermissionKind)(
            ICoreWebView2PermissionRequestedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_KIND *permissionKind);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2PermissionRequestedEventArgs *This,
            /* [retval][out] */ BOOL *isUserInitiated);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_State)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_State)(
            ICoreWebView2PermissionRequestedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_STATE *state);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, put_State)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_State)(
            ICoreWebView2PermissionRequestedEventArgs *This,
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE state);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2PermissionRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        END_INTERFACE
    } ICoreWebView2PermissionRequestedEventArgsVtbl;

    interface ICoreWebView2PermissionRequestedEventArgs
    {
        CONST_VTBL struct ICoreWebView2PermissionRequestedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PermissionRequestedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PermissionRequestedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PermissionRequestedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PermissionRequestedEventArgs_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2PermissionRequestedEventArgs_get_PermissionKind(This, permissionKind) \
    ((This)->lpVtbl->get_PermissionKind(This, permissionKind))

#define ICoreWebView2PermissionRequestedEventArgs_get_IsUserInitiated(This, isUserInitiated) \
    ((This)->lpVtbl->get_IsUserInitiated(This, isUserInitiated))

#define ICoreWebView2PermissionRequestedEventArgs_get_State(This, state) \
    ((This)->lpVtbl->get_State(This, state))

#define ICoreWebView2PermissionRequestedEventArgs_put_State(This, state) \
    ((This)->lpVtbl->put_State(This, state))

#define ICoreWebView2PermissionRequestedEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PermissionRequestedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PermissionRequestedEventArgs2_INTERFACE_DEFINED__
#define __ICoreWebView2PermissionRequestedEventArgs2_INTERFACE_DEFINED__

    /* interface ICoreWebView2PermissionRequestedEventArgs2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PermissionRequestedEventArgs2 = {0x74d7127f, 0x9de6, 0x4200, {0x87, 0x34, 0x42, 0xd6, 0xfb, 0x4f, 0xf7, 0x41}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("74d7127f-9de6-4200-8734-42d6fb4ff741")
    ICoreWebView2PermissionRequestedEventArgs2 : public ICoreWebView2PermissionRequestedEventArgs
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PermissionRequestedEventArgs2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PermissionRequestedEventArgs2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PermissionRequestedEventArgs2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PermissionRequestedEventArgs2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2PermissionRequestedEventArgs2 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_PermissionKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PermissionKind)(
            ICoreWebView2PermissionRequestedEventArgs2 *This,
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_KIND *permissionKind);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2PermissionRequestedEventArgs2 *This,
            /* [retval][out] */ BOOL *isUserInitiated);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_State)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_State)(
            ICoreWebView2PermissionRequestedEventArgs2 *This,
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_STATE *state);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, put_State)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_State)(
            ICoreWebView2PermissionRequestedEventArgs2 *This,
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE state);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2PermissionRequestedEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs2, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2PermissionRequestedEventArgs2 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs2, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2PermissionRequestedEventArgs2 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2PermissionRequestedEventArgs2Vtbl;

    interface ICoreWebView2PermissionRequestedEventArgs2
    {
        CONST_VTBL struct ICoreWebView2PermissionRequestedEventArgs2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PermissionRequestedEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PermissionRequestedEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PermissionRequestedEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PermissionRequestedEventArgs2_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2PermissionRequestedEventArgs2_get_PermissionKind(This, permissionKind) \
    ((This)->lpVtbl->get_PermissionKind(This, permissionKind))

#define ICoreWebView2PermissionRequestedEventArgs2_get_IsUserInitiated(This, isUserInitiated) \
    ((This)->lpVtbl->get_IsUserInitiated(This, isUserInitiated))

#define ICoreWebView2PermissionRequestedEventArgs2_get_State(This, state) \
    ((This)->lpVtbl->get_State(This, state))

#define ICoreWebView2PermissionRequestedEventArgs2_put_State(This, state) \
    ((This)->lpVtbl->put_State(This, state))

#define ICoreWebView2PermissionRequestedEventArgs2_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#define ICoreWebView2PermissionRequestedEventArgs2_get_Handled(This, value) \
    ((This)->lpVtbl->get_Handled(This, value))

#define ICoreWebView2PermissionRequestedEventArgs2_put_Handled(This, value) \
    ((This)->lpVtbl->put_Handled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PermissionRequestedEventArgs2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PermissionRequestedEventArgs3_INTERFACE_DEFINED__
#define __ICoreWebView2PermissionRequestedEventArgs3_INTERFACE_DEFINED__

    /* interface ICoreWebView2PermissionRequestedEventArgs3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PermissionRequestedEventArgs3 = {0xe61670bc, 0x3dce, 0x4177, {0x86, 0xd2, 0xc6, 0x29, 0xae, 0x3c, 0xb6, 0xac}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e61670bc-3dce-4177-86d2-c629ae3cb6ac")
    ICoreWebView2PermissionRequestedEventArgs3 : public ICoreWebView2PermissionRequestedEventArgs2
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SavesInProfile(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SavesInProfile(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PermissionRequestedEventArgs3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PermissionRequestedEventArgs3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PermissionRequestedEventArgs3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_PermissionKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PermissionKind)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_KIND *permissionKind);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_IsUserInitiated)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsUserInitiated)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [retval][out] */ BOOL *isUserInitiated);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, get_State)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_State)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_STATE *state);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, put_State)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_State)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE state);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs2, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs2, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs3, get_SavesInProfile)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SavesInProfile)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionRequestedEventArgs3, put_SavesInProfile)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_SavesInProfile)(
            ICoreWebView2PermissionRequestedEventArgs3 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2PermissionRequestedEventArgs3Vtbl;

    interface ICoreWebView2PermissionRequestedEventArgs3
    {
        CONST_VTBL struct ICoreWebView2PermissionRequestedEventArgs3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PermissionRequestedEventArgs3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PermissionRequestedEventArgs3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PermissionRequestedEventArgs3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PermissionRequestedEventArgs3_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2PermissionRequestedEventArgs3_get_PermissionKind(This, permissionKind) \
    ((This)->lpVtbl->get_PermissionKind(This, permissionKind))

#define ICoreWebView2PermissionRequestedEventArgs3_get_IsUserInitiated(This, isUserInitiated) \
    ((This)->lpVtbl->get_IsUserInitiated(This, isUserInitiated))

#define ICoreWebView2PermissionRequestedEventArgs3_get_State(This, state) \
    ((This)->lpVtbl->get_State(This, state))

#define ICoreWebView2PermissionRequestedEventArgs3_put_State(This, state) \
    ((This)->lpVtbl->put_State(This, state))

#define ICoreWebView2PermissionRequestedEventArgs3_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#define ICoreWebView2PermissionRequestedEventArgs3_get_Handled(This, value) \
    ((This)->lpVtbl->get_Handled(This, value))

#define ICoreWebView2PermissionRequestedEventArgs3_put_Handled(This, value) \
    ((This)->lpVtbl->put_Handled(This, value))

#define ICoreWebView2PermissionRequestedEventArgs3_get_SavesInProfile(This, value) \
    ((This)->lpVtbl->get_SavesInProfile(This, value))

#define ICoreWebView2PermissionRequestedEventArgs3_put_SavesInProfile(This, value) \
    ((This)->lpVtbl->put_SavesInProfile(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PermissionRequestedEventArgs3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PermissionSetting_INTERFACE_DEFINED__
#define __ICoreWebView2PermissionSetting_INTERFACE_DEFINED__

    /* interface ICoreWebView2PermissionSetting */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PermissionSetting = {0x792b6eca, 0x5576, 0x421c, {0x91, 0x19, 0x74, 0xeb, 0xb3, 0xa4, 0xff, 0xb3}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("792b6eca-5576-421c-9119-74ebb3a4ffb3")
    ICoreWebView2PermissionSetting : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PermissionKind(
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_KIND * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PermissionOrigin(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PermissionState(
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_STATE * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PermissionSettingVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PermissionSetting *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PermissionSetting *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PermissionSetting *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionSetting, get_PermissionKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PermissionKind)(
            ICoreWebView2PermissionSetting *This,
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionSetting, get_PermissionOrigin)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PermissionOrigin)(
            ICoreWebView2PermissionSetting *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionSetting, get_PermissionState)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PermissionState)(
            ICoreWebView2PermissionSetting *This,
            /* [retval][out] */ COREWEBVIEW2_PERMISSION_STATE *value);

        END_INTERFACE
    } ICoreWebView2PermissionSettingVtbl;

    interface ICoreWebView2PermissionSetting
    {
        CONST_VTBL struct ICoreWebView2PermissionSettingVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PermissionSetting_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PermissionSetting_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PermissionSetting_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PermissionSetting_get_PermissionKind(This, value) \
    ((This)->lpVtbl->get_PermissionKind(This, value))

#define ICoreWebView2PermissionSetting_get_PermissionOrigin(This, value) \
    ((This)->lpVtbl->get_PermissionOrigin(This, value))

#define ICoreWebView2PermissionSetting_get_PermissionState(This, value) \
    ((This)->lpVtbl->get_PermissionState(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PermissionSetting_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PointerInfo_INTERFACE_DEFINED__
#define __ICoreWebView2PointerInfo_INTERFACE_DEFINED__

    /* interface ICoreWebView2PointerInfo */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PointerInfo = {0xe6995887, 0xd10d, 0x4f5d, {0x93, 0x59, 0x4c, 0xe4, 0x6e, 0x4f, 0x96, 0xb9}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e6995887-d10d-4f5d-9359-4ce46e4f96b9")
    ICoreWebView2PointerInfo : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PointerKind(
            /* [retval][out] */ DWORD * pointerKind) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PointerKind(
            /* [in] */ DWORD pointerKind) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PointerId(
            /* [retval][out] */ UINT32 * pointerId) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PointerId(
            /* [in] */ UINT32 pointerId) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FrameId(
            /* [retval][out] */ UINT32 * frameId) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_FrameId(
            /* [in] */ UINT32 frameId) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PointerFlags(
            /* [retval][out] */ UINT32 * pointerFlags) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PointerFlags(
            /* [in] */ UINT32 pointerFlags) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PointerDeviceRect(
            /* [retval][out] */ RECT * pointerDeviceRect) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PointerDeviceRect(
            /* [in] */ RECT pointerDeviceRect) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DisplayRect(
            /* [retval][out] */ RECT * displayRect) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_DisplayRect(
            /* [in] */ RECT displayRect) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PixelLocation(
            /* [retval][out] */ POINT * pixelLocation) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PixelLocation(
            /* [in] */ POINT pixelLocation) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HimetricLocation(
            /* [retval][out] */ POINT * himetricLocation) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HimetricLocation(
            /* [in] */ POINT himetricLocation) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PixelLocationRaw(
            /* [retval][out] */ POINT * pixelLocationRaw) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PixelLocationRaw(
            /* [in] */ POINT pixelLocationRaw) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HimetricLocationRaw(
            /* [retval][out] */ POINT * himetricLocationRaw) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HimetricLocationRaw(
            /* [in] */ POINT himetricLocationRaw) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Time(
            /* [retval][out] */ DWORD * time) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Time(
            /* [in] */ DWORD time) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HistoryCount(
            /* [retval][out] */ UINT32 * historyCount) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HistoryCount(
            /* [in] */ UINT32 historyCount) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_InputData(
            /* [retval][out] */ INT32 * inputData) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_InputData(
            /* [in] */ INT32 inputData) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_KeyStates(
            /* [retval][out] */ DWORD * keyStates) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_KeyStates(
            /* [in] */ DWORD keyStates) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PerformanceCount(
            /* [retval][out] */ UINT64 * performanceCount) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PerformanceCount(
            /* [in] */ UINT64 performanceCount) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ButtonChangeKind(
            /* [retval][out] */ INT32 * buttonChangeKind) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ButtonChangeKind(
            /* [in] */ INT32 buttonChangeKind) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PenFlags(
            /* [retval][out] */ UINT32 * penFLags) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PenFlags(
            /* [in] */ UINT32 penFLags) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PenMask(
            /* [retval][out] */ UINT32 * penMask) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PenMask(
            /* [in] */ UINT32 penMask) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PenPressure(
            /* [retval][out] */ UINT32 * penPressure) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PenPressure(
            /* [in] */ UINT32 penPressure) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PenRotation(
            /* [retval][out] */ UINT32 * penRotation) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PenRotation(
            /* [in] */ UINT32 penRotation) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PenTiltX(
            /* [retval][out] */ INT32 * penTiltX) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PenTiltX(
            /* [in] */ INT32 penTiltX) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PenTiltY(
            /* [retval][out] */ INT32 * penTiltY) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PenTiltY(
            /* [in] */ INT32 penTiltY) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TouchFlags(
            /* [retval][out] */ UINT32 * touchFlags) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TouchFlags(
            /* [in] */ UINT32 touchFlags) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TouchMask(
            /* [retval][out] */ UINT32 * touchMask) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TouchMask(
            /* [in] */ UINT32 touchMask) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TouchContact(
            /* [retval][out] */ RECT * touchContact) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TouchContact(
            /* [in] */ RECT touchContact) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TouchContactRaw(
            /* [retval][out] */ RECT * touchContactRaw) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TouchContactRaw(
            /* [in] */ RECT touchContactRaw) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TouchOrientation(
            /* [retval][out] */ UINT32 * touchOrientation) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TouchOrientation(
            /* [in] */ UINT32 touchOrientation) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_TouchPressure(
            /* [retval][out] */ UINT32 * touchPressure) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_TouchPressure(
            /* [in] */ UINT32 touchPressure) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PointerInfoVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PointerInfo *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PointerInfo *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PointerKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PointerKind)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ DWORD *pointerKind);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PointerKind)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PointerKind)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ DWORD pointerKind);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PointerId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PointerId)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *pointerId);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PointerId)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PointerId)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 pointerId);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_FrameId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameId)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *frameId);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_FrameId)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_FrameId)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 frameId);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PointerFlags)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PointerFlags)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *pointerFlags);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PointerFlags)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PointerFlags)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 pointerFlags);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PointerDeviceRect)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PointerDeviceRect)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ RECT *pointerDeviceRect);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PointerDeviceRect)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PointerDeviceRect)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ RECT pointerDeviceRect);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_DisplayRect)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DisplayRect)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ RECT *displayRect);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_DisplayRect)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DisplayRect)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ RECT displayRect);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PixelLocation)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PixelLocation)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ POINT *pixelLocation);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PixelLocation)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PixelLocation)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ POINT pixelLocation);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_HimetricLocation)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HimetricLocation)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ POINT *himetricLocation);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_HimetricLocation)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_HimetricLocation)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ POINT himetricLocation);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PixelLocationRaw)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PixelLocationRaw)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ POINT *pixelLocationRaw);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PixelLocationRaw)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PixelLocationRaw)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ POINT pixelLocationRaw);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_HimetricLocationRaw)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HimetricLocationRaw)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ POINT *himetricLocationRaw);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_HimetricLocationRaw)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_HimetricLocationRaw)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ POINT himetricLocationRaw);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_Time)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Time)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ DWORD *time);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_Time)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Time)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ DWORD time);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_HistoryCount)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HistoryCount)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *historyCount);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_HistoryCount)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_HistoryCount)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 historyCount);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_InputData)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_InputData)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ INT32 *inputData);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_InputData)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_InputData)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ INT32 inputData);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_KeyStates)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_KeyStates)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ DWORD *keyStates);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_KeyStates)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_KeyStates)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ DWORD keyStates);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PerformanceCount)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PerformanceCount)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT64 *performanceCount);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PerformanceCount)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PerformanceCount)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT64 performanceCount);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_ButtonChangeKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ButtonChangeKind)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ INT32 *buttonChangeKind);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_ButtonChangeKind)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ButtonChangeKind)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ INT32 buttonChangeKind);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PenFlags)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PenFlags)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *penFLags);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PenFlags)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PenFlags)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 penFLags);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PenMask)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PenMask)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *penMask);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PenMask)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PenMask)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 penMask);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PenPressure)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PenPressure)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *penPressure);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PenPressure)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PenPressure)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 penPressure);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PenRotation)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PenRotation)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *penRotation);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PenRotation)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PenRotation)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 penRotation);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PenTiltX)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PenTiltX)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ INT32 *penTiltX);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PenTiltX)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PenTiltX)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ INT32 penTiltX);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_PenTiltY)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PenTiltY)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ INT32 *penTiltY);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_PenTiltY)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PenTiltY)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ INT32 penTiltY);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_TouchFlags)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_TouchFlags)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *touchFlags);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_TouchFlags)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_TouchFlags)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 touchFlags);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_TouchMask)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_TouchMask)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *touchMask);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_TouchMask)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_TouchMask)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 touchMask);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_TouchContact)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_TouchContact)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ RECT *touchContact);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_TouchContact)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_TouchContact)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ RECT touchContact);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_TouchContactRaw)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_TouchContactRaw)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ RECT *touchContactRaw);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_TouchContactRaw)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_TouchContactRaw)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ RECT touchContactRaw);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_TouchOrientation)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_TouchOrientation)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *touchOrientation);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_TouchOrientation)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_TouchOrientation)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 touchOrientation);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, get_TouchPressure)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_TouchPressure)(
            ICoreWebView2PointerInfo *This,
            /* [retval][out] */ UINT32 *touchPressure);

        DECLSPEC_XFGVIRT(ICoreWebView2PointerInfo, put_TouchPressure)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_TouchPressure)(
            ICoreWebView2PointerInfo *This,
            /* [in] */ UINT32 touchPressure);

        END_INTERFACE
    } ICoreWebView2PointerInfoVtbl;

    interface ICoreWebView2PointerInfo
    {
        CONST_VTBL struct ICoreWebView2PointerInfoVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PointerInfo_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PointerInfo_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PointerInfo_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PointerInfo_get_PointerKind(This, pointerKind) \
    ((This)->lpVtbl->get_PointerKind(This, pointerKind))

#define ICoreWebView2PointerInfo_put_PointerKind(This, pointerKind) \
    ((This)->lpVtbl->put_PointerKind(This, pointerKind))

#define ICoreWebView2PointerInfo_get_PointerId(This, pointerId) \
    ((This)->lpVtbl->get_PointerId(This, pointerId))

#define ICoreWebView2PointerInfo_put_PointerId(This, pointerId) \
    ((This)->lpVtbl->put_PointerId(This, pointerId))

#define ICoreWebView2PointerInfo_get_FrameId(This, frameId) \
    ((This)->lpVtbl->get_FrameId(This, frameId))

#define ICoreWebView2PointerInfo_put_FrameId(This, frameId) \
    ((This)->lpVtbl->put_FrameId(This, frameId))

#define ICoreWebView2PointerInfo_get_PointerFlags(This, pointerFlags) \
    ((This)->lpVtbl->get_PointerFlags(This, pointerFlags))

#define ICoreWebView2PointerInfo_put_PointerFlags(This, pointerFlags) \
    ((This)->lpVtbl->put_PointerFlags(This, pointerFlags))

#define ICoreWebView2PointerInfo_get_PointerDeviceRect(This, pointerDeviceRect) \
    ((This)->lpVtbl->get_PointerDeviceRect(This, pointerDeviceRect))

#define ICoreWebView2PointerInfo_put_PointerDeviceRect(This, pointerDeviceRect) \
    ((This)->lpVtbl->put_PointerDeviceRect(This, pointerDeviceRect))

#define ICoreWebView2PointerInfo_get_DisplayRect(This, displayRect) \
    ((This)->lpVtbl->get_DisplayRect(This, displayRect))

#define ICoreWebView2PointerInfo_put_DisplayRect(This, displayRect) \
    ((This)->lpVtbl->put_DisplayRect(This, displayRect))

#define ICoreWebView2PointerInfo_get_PixelLocation(This, pixelLocation) \
    ((This)->lpVtbl->get_PixelLocation(This, pixelLocation))

#define ICoreWebView2PointerInfo_put_PixelLocation(This, pixelLocation) \
    ((This)->lpVtbl->put_PixelLocation(This, pixelLocation))

#define ICoreWebView2PointerInfo_get_HimetricLocation(This, himetricLocation) \
    ((This)->lpVtbl->get_HimetricLocation(This, himetricLocation))

#define ICoreWebView2PointerInfo_put_HimetricLocation(This, himetricLocation) \
    ((This)->lpVtbl->put_HimetricLocation(This, himetricLocation))

#define ICoreWebView2PointerInfo_get_PixelLocationRaw(This, pixelLocationRaw) \
    ((This)->lpVtbl->get_PixelLocationRaw(This, pixelLocationRaw))

#define ICoreWebView2PointerInfo_put_PixelLocationRaw(This, pixelLocationRaw) \
    ((This)->lpVtbl->put_PixelLocationRaw(This, pixelLocationRaw))

#define ICoreWebView2PointerInfo_get_HimetricLocationRaw(This, himetricLocationRaw) \
    ((This)->lpVtbl->get_HimetricLocationRaw(This, himetricLocationRaw))

#define ICoreWebView2PointerInfo_put_HimetricLocationRaw(This, himetricLocationRaw) \
    ((This)->lpVtbl->put_HimetricLocationRaw(This, himetricLocationRaw))

#define ICoreWebView2PointerInfo_get_Time(This, time) \
    ((This)->lpVtbl->get_Time(This, time))

#define ICoreWebView2PointerInfo_put_Time(This, time) \
    ((This)->lpVtbl->put_Time(This, time))

#define ICoreWebView2PointerInfo_get_HistoryCount(This, historyCount) \
    ((This)->lpVtbl->get_HistoryCount(This, historyCount))

#define ICoreWebView2PointerInfo_put_HistoryCount(This, historyCount) \
    ((This)->lpVtbl->put_HistoryCount(This, historyCount))

#define ICoreWebView2PointerInfo_get_InputData(This, inputData) \
    ((This)->lpVtbl->get_InputData(This, inputData))

#define ICoreWebView2PointerInfo_put_InputData(This, inputData) \
    ((This)->lpVtbl->put_InputData(This, inputData))

#define ICoreWebView2PointerInfo_get_KeyStates(This, keyStates) \
    ((This)->lpVtbl->get_KeyStates(This, keyStates))

#define ICoreWebView2PointerInfo_put_KeyStates(This, keyStates) \
    ((This)->lpVtbl->put_KeyStates(This, keyStates))

#define ICoreWebView2PointerInfo_get_PerformanceCount(This, performanceCount) \
    ((This)->lpVtbl->get_PerformanceCount(This, performanceCount))

#define ICoreWebView2PointerInfo_put_PerformanceCount(This, performanceCount) \
    ((This)->lpVtbl->put_PerformanceCount(This, performanceCount))

#define ICoreWebView2PointerInfo_get_ButtonChangeKind(This, buttonChangeKind) \
    ((This)->lpVtbl->get_ButtonChangeKind(This, buttonChangeKind))

#define ICoreWebView2PointerInfo_put_ButtonChangeKind(This, buttonChangeKind) \
    ((This)->lpVtbl->put_ButtonChangeKind(This, buttonChangeKind))

#define ICoreWebView2PointerInfo_get_PenFlags(This, penFLags) \
    ((This)->lpVtbl->get_PenFlags(This, penFLags))

#define ICoreWebView2PointerInfo_put_PenFlags(This, penFLags) \
    ((This)->lpVtbl->put_PenFlags(This, penFLags))

#define ICoreWebView2PointerInfo_get_PenMask(This, penMask) \
    ((This)->lpVtbl->get_PenMask(This, penMask))

#define ICoreWebView2PointerInfo_put_PenMask(This, penMask) \
    ((This)->lpVtbl->put_PenMask(This, penMask))

#define ICoreWebView2PointerInfo_get_PenPressure(This, penPressure) \
    ((This)->lpVtbl->get_PenPressure(This, penPressure))

#define ICoreWebView2PointerInfo_put_PenPressure(This, penPressure) \
    ((This)->lpVtbl->put_PenPressure(This, penPressure))

#define ICoreWebView2PointerInfo_get_PenRotation(This, penRotation) \
    ((This)->lpVtbl->get_PenRotation(This, penRotation))

#define ICoreWebView2PointerInfo_put_PenRotation(This, penRotation) \
    ((This)->lpVtbl->put_PenRotation(This, penRotation))

#define ICoreWebView2PointerInfo_get_PenTiltX(This, penTiltX) \
    ((This)->lpVtbl->get_PenTiltX(This, penTiltX))

#define ICoreWebView2PointerInfo_put_PenTiltX(This, penTiltX) \
    ((This)->lpVtbl->put_PenTiltX(This, penTiltX))

#define ICoreWebView2PointerInfo_get_PenTiltY(This, penTiltY) \
    ((This)->lpVtbl->get_PenTiltY(This, penTiltY))

#define ICoreWebView2PointerInfo_put_PenTiltY(This, penTiltY) \
    ((This)->lpVtbl->put_PenTiltY(This, penTiltY))

#define ICoreWebView2PointerInfo_get_TouchFlags(This, touchFlags) \
    ((This)->lpVtbl->get_TouchFlags(This, touchFlags))

#define ICoreWebView2PointerInfo_put_TouchFlags(This, touchFlags) \
    ((This)->lpVtbl->put_TouchFlags(This, touchFlags))

#define ICoreWebView2PointerInfo_get_TouchMask(This, touchMask) \
    ((This)->lpVtbl->get_TouchMask(This, touchMask))

#define ICoreWebView2PointerInfo_put_TouchMask(This, touchMask) \
    ((This)->lpVtbl->put_TouchMask(This, touchMask))

#define ICoreWebView2PointerInfo_get_TouchContact(This, touchContact) \
    ((This)->lpVtbl->get_TouchContact(This, touchContact))

#define ICoreWebView2PointerInfo_put_TouchContact(This, touchContact) \
    ((This)->lpVtbl->put_TouchContact(This, touchContact))

#define ICoreWebView2PointerInfo_get_TouchContactRaw(This, touchContactRaw) \
    ((This)->lpVtbl->get_TouchContactRaw(This, touchContactRaw))

#define ICoreWebView2PointerInfo_put_TouchContactRaw(This, touchContactRaw) \
    ((This)->lpVtbl->put_TouchContactRaw(This, touchContactRaw))

#define ICoreWebView2PointerInfo_get_TouchOrientation(This, touchOrientation) \
    ((This)->lpVtbl->get_TouchOrientation(This, touchOrientation))

#define ICoreWebView2PointerInfo_put_TouchOrientation(This, touchOrientation) \
    ((This)->lpVtbl->put_TouchOrientation(This, touchOrientation))

#define ICoreWebView2PointerInfo_get_TouchPressure(This, touchPressure) \
    ((This)->lpVtbl->get_TouchPressure(This, touchPressure))

#define ICoreWebView2PointerInfo_put_TouchPressure(This, touchPressure) \
    ((This)->lpVtbl->put_TouchPressure(This, touchPressure))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PointerInfo_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PrintSettings_INTERFACE_DEFINED__
#define __ICoreWebView2PrintSettings_INTERFACE_DEFINED__

    /* interface ICoreWebView2PrintSettings */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PrintSettings = {0x377f3721, 0xc74e, 0x48ca, {0x8d, 0xb1, 0xdf, 0x68, 0xe5, 0x1d, 0x60, 0xe2}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("377f3721-c74e-48ca-8db1-df68e51d60e2")
    ICoreWebView2PrintSettings : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Orientation(
            /* [retval][out] */ COREWEBVIEW2_PRINT_ORIENTATION * orientation) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Orientation(
            /* [in] */ COREWEBVIEW2_PRINT_ORIENTATION orientation) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ScaleFactor(
            /* [retval][out] */ double *scaleFactor) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ScaleFactor(
            /* [in] */ double scaleFactor) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PageWidth(
            /* [retval][out] */ double *pageWidth) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PageWidth(
            /* [in] */ double pageWidth) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PageHeight(
            /* [retval][out] */ double *pageHeight) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PageHeight(
            /* [in] */ double pageHeight) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MarginTop(
            /* [retval][out] */ double *marginTop) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MarginTop(
            /* [in] */ double marginTop) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MarginBottom(
            /* [retval][out] */ double *marginBottom) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MarginBottom(
            /* [in] */ double marginBottom) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MarginLeft(
            /* [retval][out] */ double *marginLeft) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MarginLeft(
            /* [in] */ double marginLeft) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MarginRight(
            /* [retval][out] */ double *marginRight) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MarginRight(
            /* [in] */ double marginRight) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShouldPrintBackgrounds(
            /* [retval][out] */ BOOL * shouldPrintBackgrounds) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ShouldPrintBackgrounds(
            /* [in] */ BOOL shouldPrintBackgrounds) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShouldPrintSelectionOnly(
            /* [retval][out] */ BOOL * shouldPrintSelectionOnly) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ShouldPrintSelectionOnly(
            /* [in] */ BOOL shouldPrintSelectionOnly) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShouldPrintHeaderAndFooter(
            /* [retval][out] */ BOOL * shouldPrintHeaderAndFooter) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ShouldPrintHeaderAndFooter(
            /* [in] */ BOOL shouldPrintHeaderAndFooter) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HeaderTitle(
            /* [retval][out] */ LPWSTR * headerTitle) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HeaderTitle(
            /* [in] */ LPCWSTR headerTitle) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FooterUri(
            /* [retval][out] */ LPWSTR * footerUri) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_FooterUri(
            /* [in] */ LPCWSTR footerUri) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PrintSettingsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PrintSettings *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PrintSettings *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_Orientation)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Orientation)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ COREWEBVIEW2_PRINT_ORIENTATION *orientation);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_Orientation)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Orientation)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ COREWEBVIEW2_PRINT_ORIENTATION orientation);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_ScaleFactor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ScaleFactor)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ double *scaleFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_ScaleFactor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ScaleFactor)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ double scaleFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_PageWidth)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PageWidth)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ double *pageWidth);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_PageWidth)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PageWidth)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ double pageWidth);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_PageHeight)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PageHeight)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ double *pageHeight);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_PageHeight)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PageHeight)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ double pageHeight);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_MarginTop)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MarginTop)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ double *marginTop);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_MarginTop)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MarginTop)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ double marginTop);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_MarginBottom)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MarginBottom)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ double *marginBottom);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_MarginBottom)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MarginBottom)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ double marginBottom);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_MarginLeft)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MarginLeft)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ double *marginLeft);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_MarginLeft)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MarginLeft)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ double marginLeft);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_MarginRight)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MarginRight)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ double *marginRight);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_MarginRight)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MarginRight)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ double marginRight);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_ShouldPrintBackgrounds)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldPrintBackgrounds)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ BOOL *shouldPrintBackgrounds);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_ShouldPrintBackgrounds)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ShouldPrintBackgrounds)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ BOOL shouldPrintBackgrounds);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_ShouldPrintSelectionOnly)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldPrintSelectionOnly)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ BOOL *shouldPrintSelectionOnly);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_ShouldPrintSelectionOnly)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ShouldPrintSelectionOnly)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ BOOL shouldPrintSelectionOnly);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_ShouldPrintHeaderAndFooter)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldPrintHeaderAndFooter)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ BOOL *shouldPrintHeaderAndFooter);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_ShouldPrintHeaderAndFooter)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ShouldPrintHeaderAndFooter)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ BOOL shouldPrintHeaderAndFooter);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_HeaderTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HeaderTitle)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ LPWSTR *headerTitle);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_HeaderTitle)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_HeaderTitle)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ LPCWSTR headerTitle);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_FooterUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FooterUri)(
            ICoreWebView2PrintSettings *This,
            /* [retval][out] */ LPWSTR *footerUri);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_FooterUri)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_FooterUri)(
            ICoreWebView2PrintSettings *This,
            /* [in] */ LPCWSTR footerUri);

        END_INTERFACE
    } ICoreWebView2PrintSettingsVtbl;

    interface ICoreWebView2PrintSettings
    {
        CONST_VTBL struct ICoreWebView2PrintSettingsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PrintSettings_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PrintSettings_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PrintSettings_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PrintSettings_get_Orientation(This, orientation) \
    ((This)->lpVtbl->get_Orientation(This, orientation))

#define ICoreWebView2PrintSettings_put_Orientation(This, orientation) \
    ((This)->lpVtbl->put_Orientation(This, orientation))

#define ICoreWebView2PrintSettings_get_ScaleFactor(This, scaleFactor) \
    ((This)->lpVtbl->get_ScaleFactor(This, scaleFactor))

#define ICoreWebView2PrintSettings_put_ScaleFactor(This, scaleFactor) \
    ((This)->lpVtbl->put_ScaleFactor(This, scaleFactor))

#define ICoreWebView2PrintSettings_get_PageWidth(This, pageWidth) \
    ((This)->lpVtbl->get_PageWidth(This, pageWidth))

#define ICoreWebView2PrintSettings_put_PageWidth(This, pageWidth) \
    ((This)->lpVtbl->put_PageWidth(This, pageWidth))

#define ICoreWebView2PrintSettings_get_PageHeight(This, pageHeight) \
    ((This)->lpVtbl->get_PageHeight(This, pageHeight))

#define ICoreWebView2PrintSettings_put_PageHeight(This, pageHeight) \
    ((This)->lpVtbl->put_PageHeight(This, pageHeight))

#define ICoreWebView2PrintSettings_get_MarginTop(This, marginTop) \
    ((This)->lpVtbl->get_MarginTop(This, marginTop))

#define ICoreWebView2PrintSettings_put_MarginTop(This, marginTop) \
    ((This)->lpVtbl->put_MarginTop(This, marginTop))

#define ICoreWebView2PrintSettings_get_MarginBottom(This, marginBottom) \
    ((This)->lpVtbl->get_MarginBottom(This, marginBottom))

#define ICoreWebView2PrintSettings_put_MarginBottom(This, marginBottom) \
    ((This)->lpVtbl->put_MarginBottom(This, marginBottom))

#define ICoreWebView2PrintSettings_get_MarginLeft(This, marginLeft) \
    ((This)->lpVtbl->get_MarginLeft(This, marginLeft))

#define ICoreWebView2PrintSettings_put_MarginLeft(This, marginLeft) \
    ((This)->lpVtbl->put_MarginLeft(This, marginLeft))

#define ICoreWebView2PrintSettings_get_MarginRight(This, marginRight) \
    ((This)->lpVtbl->get_MarginRight(This, marginRight))

#define ICoreWebView2PrintSettings_put_MarginRight(This, marginRight) \
    ((This)->lpVtbl->put_MarginRight(This, marginRight))

#define ICoreWebView2PrintSettings_get_ShouldPrintBackgrounds(This, shouldPrintBackgrounds) \
    ((This)->lpVtbl->get_ShouldPrintBackgrounds(This, shouldPrintBackgrounds))

#define ICoreWebView2PrintSettings_put_ShouldPrintBackgrounds(This, shouldPrintBackgrounds) \
    ((This)->lpVtbl->put_ShouldPrintBackgrounds(This, shouldPrintBackgrounds))

#define ICoreWebView2PrintSettings_get_ShouldPrintSelectionOnly(This, shouldPrintSelectionOnly) \
    ((This)->lpVtbl->get_ShouldPrintSelectionOnly(This, shouldPrintSelectionOnly))

#define ICoreWebView2PrintSettings_put_ShouldPrintSelectionOnly(This, shouldPrintSelectionOnly) \
    ((This)->lpVtbl->put_ShouldPrintSelectionOnly(This, shouldPrintSelectionOnly))

#define ICoreWebView2PrintSettings_get_ShouldPrintHeaderAndFooter(This, shouldPrintHeaderAndFooter) \
    ((This)->lpVtbl->get_ShouldPrintHeaderAndFooter(This, shouldPrintHeaderAndFooter))

#define ICoreWebView2PrintSettings_put_ShouldPrintHeaderAndFooter(This, shouldPrintHeaderAndFooter) \
    ((This)->lpVtbl->put_ShouldPrintHeaderAndFooter(This, shouldPrintHeaderAndFooter))

#define ICoreWebView2PrintSettings_get_HeaderTitle(This, headerTitle) \
    ((This)->lpVtbl->get_HeaderTitle(This, headerTitle))

#define ICoreWebView2PrintSettings_put_HeaderTitle(This, headerTitle) \
    ((This)->lpVtbl->put_HeaderTitle(This, headerTitle))

#define ICoreWebView2PrintSettings_get_FooterUri(This, footerUri) \
    ((This)->lpVtbl->get_FooterUri(This, footerUri))

#define ICoreWebView2PrintSettings_put_FooterUri(This, footerUri) \
    ((This)->lpVtbl->put_FooterUri(This, footerUri))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PrintSettings_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PrintSettings2_INTERFACE_DEFINED__
#define __ICoreWebView2PrintSettings2_INTERFACE_DEFINED__

    /* interface ICoreWebView2PrintSettings2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PrintSettings2 = {0xCA7F0E1F, 0x3484, 0x41D1, {0x8C, 0x1A, 0x65, 0xCD, 0x44, 0xA6, 0x3F, 0x8D}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("CA7F0E1F-3484-41D1-8C1A-65CD44A63F8D")
    ICoreWebView2PrintSettings2 : public ICoreWebView2PrintSettings
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PageRanges(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PageRanges(
            /* [in] */ LPCWSTR value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PagesPerSide(
            /* [retval][out] */ INT32 * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PagesPerSide(
            /* [in] */ INT32 value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Copies(
            /* [retval][out] */ INT32 * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Copies(
            /* [in] */ INT32 value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Collation(
            /* [retval][out] */ COREWEBVIEW2_PRINT_COLLATION * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Collation(
            /* [in] */ COREWEBVIEW2_PRINT_COLLATION value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ColorMode(
            /* [retval][out] */ COREWEBVIEW2_PRINT_COLOR_MODE * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ColorMode(
            /* [in] */ COREWEBVIEW2_PRINT_COLOR_MODE value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Duplex(
            /* [retval][out] */ COREWEBVIEW2_PRINT_DUPLEX * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Duplex(
            /* [in] */ COREWEBVIEW2_PRINT_DUPLEX value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_MediaSize(
            /* [retval][out] */ COREWEBVIEW2_PRINT_MEDIA_SIZE * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_MediaSize(
            /* [in] */ COREWEBVIEW2_PRINT_MEDIA_SIZE value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PrinterName(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PrinterName(
            /* [in] */ LPCWSTR value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PrintSettings2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PrintSettings2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PrintSettings2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_Orientation)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Orientation)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ COREWEBVIEW2_PRINT_ORIENTATION *orientation);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_Orientation)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Orientation)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ COREWEBVIEW2_PRINT_ORIENTATION orientation);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_ScaleFactor)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ScaleFactor)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ double *scaleFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_ScaleFactor)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ScaleFactor)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ double scaleFactor);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_PageWidth)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PageWidth)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ double *pageWidth);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_PageWidth)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PageWidth)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ double pageWidth);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_PageHeight)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PageHeight)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ double *pageHeight);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_PageHeight)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PageHeight)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ double pageHeight);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_MarginTop)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MarginTop)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ double *marginTop);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_MarginTop)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MarginTop)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ double marginTop);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_MarginBottom)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MarginBottom)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ double *marginBottom);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_MarginBottom)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MarginBottom)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ double marginBottom);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_MarginLeft)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MarginLeft)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ double *marginLeft);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_MarginLeft)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MarginLeft)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ double marginLeft);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_MarginRight)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MarginRight)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ double *marginRight);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_MarginRight)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MarginRight)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ double marginRight);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_ShouldPrintBackgrounds)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldPrintBackgrounds)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ BOOL *shouldPrintBackgrounds);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_ShouldPrintBackgrounds)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ShouldPrintBackgrounds)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ BOOL shouldPrintBackgrounds);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_ShouldPrintSelectionOnly)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldPrintSelectionOnly)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ BOOL *shouldPrintSelectionOnly);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_ShouldPrintSelectionOnly)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ShouldPrintSelectionOnly)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ BOOL shouldPrintSelectionOnly);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_ShouldPrintHeaderAndFooter)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldPrintHeaderAndFooter)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ BOOL *shouldPrintHeaderAndFooter);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_ShouldPrintHeaderAndFooter)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ShouldPrintHeaderAndFooter)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ BOOL shouldPrintHeaderAndFooter);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_HeaderTitle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HeaderTitle)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ LPWSTR *headerTitle);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_HeaderTitle)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_HeaderTitle)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ LPCWSTR headerTitle);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, get_FooterUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FooterUri)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ LPWSTR *footerUri);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings, put_FooterUri)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_FooterUri)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ LPCWSTR footerUri);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, get_PageRanges)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PageRanges)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, put_PageRanges)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PageRanges)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, get_PagesPerSide)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PagesPerSide)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ INT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, put_PagesPerSide)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PagesPerSide)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ INT32 value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, get_Copies)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Copies)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ INT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, put_Copies)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Copies)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ INT32 value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, get_Collation)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Collation)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ COREWEBVIEW2_PRINT_COLLATION *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, put_Collation)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Collation)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ COREWEBVIEW2_PRINT_COLLATION value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, get_ColorMode)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ColorMode)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ COREWEBVIEW2_PRINT_COLOR_MODE *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, put_ColorMode)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ColorMode)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ COREWEBVIEW2_PRINT_COLOR_MODE value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, get_Duplex)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Duplex)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ COREWEBVIEW2_PRINT_DUPLEX *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, put_Duplex)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Duplex)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ COREWEBVIEW2_PRINT_DUPLEX value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, get_MediaSize)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_MediaSize)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ COREWEBVIEW2_PRINT_MEDIA_SIZE *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, put_MediaSize)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_MediaSize)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ COREWEBVIEW2_PRINT_MEDIA_SIZE value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, get_PrinterName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PrinterName)(
            ICoreWebView2PrintSettings2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2PrintSettings2, put_PrinterName)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PrinterName)(
            ICoreWebView2PrintSettings2 *This,
            /* [in] */ LPCWSTR value);

        END_INTERFACE
    } ICoreWebView2PrintSettings2Vtbl;

    interface ICoreWebView2PrintSettings2
    {
        CONST_VTBL struct ICoreWebView2PrintSettings2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PrintSettings2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PrintSettings2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PrintSettings2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PrintSettings2_get_Orientation(This, orientation) \
    ((This)->lpVtbl->get_Orientation(This, orientation))

#define ICoreWebView2PrintSettings2_put_Orientation(This, orientation) \
    ((This)->lpVtbl->put_Orientation(This, orientation))

#define ICoreWebView2PrintSettings2_get_ScaleFactor(This, scaleFactor) \
    ((This)->lpVtbl->get_ScaleFactor(This, scaleFactor))

#define ICoreWebView2PrintSettings2_put_ScaleFactor(This, scaleFactor) \
    ((This)->lpVtbl->put_ScaleFactor(This, scaleFactor))

#define ICoreWebView2PrintSettings2_get_PageWidth(This, pageWidth) \
    ((This)->lpVtbl->get_PageWidth(This, pageWidth))

#define ICoreWebView2PrintSettings2_put_PageWidth(This, pageWidth) \
    ((This)->lpVtbl->put_PageWidth(This, pageWidth))

#define ICoreWebView2PrintSettings2_get_PageHeight(This, pageHeight) \
    ((This)->lpVtbl->get_PageHeight(This, pageHeight))

#define ICoreWebView2PrintSettings2_put_PageHeight(This, pageHeight) \
    ((This)->lpVtbl->put_PageHeight(This, pageHeight))

#define ICoreWebView2PrintSettings2_get_MarginTop(This, marginTop) \
    ((This)->lpVtbl->get_MarginTop(This, marginTop))

#define ICoreWebView2PrintSettings2_put_MarginTop(This, marginTop) \
    ((This)->lpVtbl->put_MarginTop(This, marginTop))

#define ICoreWebView2PrintSettings2_get_MarginBottom(This, marginBottom) \
    ((This)->lpVtbl->get_MarginBottom(This, marginBottom))

#define ICoreWebView2PrintSettings2_put_MarginBottom(This, marginBottom) \
    ((This)->lpVtbl->put_MarginBottom(This, marginBottom))

#define ICoreWebView2PrintSettings2_get_MarginLeft(This, marginLeft) \
    ((This)->lpVtbl->get_MarginLeft(This, marginLeft))

#define ICoreWebView2PrintSettings2_put_MarginLeft(This, marginLeft) \
    ((This)->lpVtbl->put_MarginLeft(This, marginLeft))

#define ICoreWebView2PrintSettings2_get_MarginRight(This, marginRight) \
    ((This)->lpVtbl->get_MarginRight(This, marginRight))

#define ICoreWebView2PrintSettings2_put_MarginRight(This, marginRight) \
    ((This)->lpVtbl->put_MarginRight(This, marginRight))

#define ICoreWebView2PrintSettings2_get_ShouldPrintBackgrounds(This, shouldPrintBackgrounds) \
    ((This)->lpVtbl->get_ShouldPrintBackgrounds(This, shouldPrintBackgrounds))

#define ICoreWebView2PrintSettings2_put_ShouldPrintBackgrounds(This, shouldPrintBackgrounds) \
    ((This)->lpVtbl->put_ShouldPrintBackgrounds(This, shouldPrintBackgrounds))

#define ICoreWebView2PrintSettings2_get_ShouldPrintSelectionOnly(This, shouldPrintSelectionOnly) \
    ((This)->lpVtbl->get_ShouldPrintSelectionOnly(This, shouldPrintSelectionOnly))

#define ICoreWebView2PrintSettings2_put_ShouldPrintSelectionOnly(This, shouldPrintSelectionOnly) \
    ((This)->lpVtbl->put_ShouldPrintSelectionOnly(This, shouldPrintSelectionOnly))

#define ICoreWebView2PrintSettings2_get_ShouldPrintHeaderAndFooter(This, shouldPrintHeaderAndFooter) \
    ((This)->lpVtbl->get_ShouldPrintHeaderAndFooter(This, shouldPrintHeaderAndFooter))

#define ICoreWebView2PrintSettings2_put_ShouldPrintHeaderAndFooter(This, shouldPrintHeaderAndFooter) \
    ((This)->lpVtbl->put_ShouldPrintHeaderAndFooter(This, shouldPrintHeaderAndFooter))

#define ICoreWebView2PrintSettings2_get_HeaderTitle(This, headerTitle) \
    ((This)->lpVtbl->get_HeaderTitle(This, headerTitle))

#define ICoreWebView2PrintSettings2_put_HeaderTitle(This, headerTitle) \
    ((This)->lpVtbl->put_HeaderTitle(This, headerTitle))

#define ICoreWebView2PrintSettings2_get_FooterUri(This, footerUri) \
    ((This)->lpVtbl->get_FooterUri(This, footerUri))

#define ICoreWebView2PrintSettings2_put_FooterUri(This, footerUri) \
    ((This)->lpVtbl->put_FooterUri(This, footerUri))

#define ICoreWebView2PrintSettings2_get_PageRanges(This, value) \
    ((This)->lpVtbl->get_PageRanges(This, value))

#define ICoreWebView2PrintSettings2_put_PageRanges(This, value) \
    ((This)->lpVtbl->put_PageRanges(This, value))

#define ICoreWebView2PrintSettings2_get_PagesPerSide(This, value) \
    ((This)->lpVtbl->get_PagesPerSide(This, value))

#define ICoreWebView2PrintSettings2_put_PagesPerSide(This, value) \
    ((This)->lpVtbl->put_PagesPerSide(This, value))

#define ICoreWebView2PrintSettings2_get_Copies(This, value) \
    ((This)->lpVtbl->get_Copies(This, value))

#define ICoreWebView2PrintSettings2_put_Copies(This, value) \
    ((This)->lpVtbl->put_Copies(This, value))

#define ICoreWebView2PrintSettings2_get_Collation(This, value) \
    ((This)->lpVtbl->get_Collation(This, value))

#define ICoreWebView2PrintSettings2_put_Collation(This, value) \
    ((This)->lpVtbl->put_Collation(This, value))

#define ICoreWebView2PrintSettings2_get_ColorMode(This, value) \
    ((This)->lpVtbl->get_ColorMode(This, value))

#define ICoreWebView2PrintSettings2_put_ColorMode(This, value) \
    ((This)->lpVtbl->put_ColorMode(This, value))

#define ICoreWebView2PrintSettings2_get_Duplex(This, value) \
    ((This)->lpVtbl->get_Duplex(This, value))

#define ICoreWebView2PrintSettings2_put_Duplex(This, value) \
    ((This)->lpVtbl->put_Duplex(This, value))

#define ICoreWebView2PrintSettings2_get_MediaSize(This, value) \
    ((This)->lpVtbl->get_MediaSize(This, value))

#define ICoreWebView2PrintSettings2_put_MediaSize(This, value) \
    ((This)->lpVtbl->put_MediaSize(This, value))

#define ICoreWebView2PrintSettings2_get_PrinterName(This, value) \
    ((This)->lpVtbl->get_PrinterName(This, value))

#define ICoreWebView2PrintSettings2_put_PrinterName(This, value) \
    ((This)->lpVtbl->put_PrinterName(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PrintSettings2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProcessExtendedInfo_INTERFACE_DEFINED__
#define __ICoreWebView2ProcessExtendedInfo_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProcessExtendedInfo */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProcessExtendedInfo = {0xaf4c4c2e, 0x45db, 0x11ee, {0xbe, 0x56, 0x02, 0x42, 0xac, 0x12, 0x00, 0x02}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("af4c4c2e-45db-11ee-be56-0242ac120002")
    ICoreWebView2ProcessExtendedInfo : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProcessInfo(
            /* [retval][out] */ ICoreWebView2ProcessInfo * *processInfo) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AssociatedFrameInfos(
            /* [retval][out] */ ICoreWebView2FrameInfoCollection * *frames) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProcessExtendedInfoVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProcessExtendedInfo *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProcessExtendedInfo *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProcessExtendedInfo *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessExtendedInfo, get_ProcessInfo)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProcessInfo)(
            ICoreWebView2ProcessExtendedInfo *This,
            /* [retval][out] */ ICoreWebView2ProcessInfo **processInfo);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessExtendedInfo, get_AssociatedFrameInfos)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AssociatedFrameInfos)(
            ICoreWebView2ProcessExtendedInfo *This,
            /* [retval][out] */ ICoreWebView2FrameInfoCollection **frames);

        END_INTERFACE
    } ICoreWebView2ProcessExtendedInfoVtbl;

    interface ICoreWebView2ProcessExtendedInfo
    {
        CONST_VTBL struct ICoreWebView2ProcessExtendedInfoVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProcessExtendedInfo_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProcessExtendedInfo_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProcessExtendedInfo_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProcessExtendedInfo_get_ProcessInfo(This, processInfo) \
    ((This)->lpVtbl->get_ProcessInfo(This, processInfo))

#define ICoreWebView2ProcessExtendedInfo_get_AssociatedFrameInfos(This, frames) \
    ((This)->lpVtbl->get_AssociatedFrameInfos(This, frames))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProcessExtendedInfo_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProcessFailedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2ProcessFailedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProcessFailedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProcessFailedEventArgs = {0x8155a9a4, 0x1474, 0x4a86, {0x8c, 0xae, 0x15, 0x1b, 0x0f, 0xa6, 0xb8, 0xca}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("8155a9a4-1474-4a86-8cae-151b0fa6b8ca")
    ICoreWebView2ProcessFailedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProcessFailedKind(
            /* [retval][out] */ COREWEBVIEW2_PROCESS_FAILED_KIND * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProcessFailedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProcessFailedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProcessFailedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProcessFailedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs, get_ProcessFailedKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProcessFailedKind)(
            ICoreWebView2ProcessFailedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_PROCESS_FAILED_KIND *value);

        END_INTERFACE
    } ICoreWebView2ProcessFailedEventArgsVtbl;

    interface ICoreWebView2ProcessFailedEventArgs
    {
        CONST_VTBL struct ICoreWebView2ProcessFailedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProcessFailedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProcessFailedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProcessFailedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProcessFailedEventArgs_get_ProcessFailedKind(This, value) \
    ((This)->lpVtbl->get_ProcessFailedKind(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProcessFailedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProcessFailedEventArgs2_INTERFACE_DEFINED__
#define __ICoreWebView2ProcessFailedEventArgs2_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProcessFailedEventArgs2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProcessFailedEventArgs2 = {0x4dab9422, 0x46fa, 0x4c3e, {0xa5, 0xd2, 0x41, 0xd2, 0x07, 0x1d, 0x36, 0x80}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("4dab9422-46fa-4c3e-a5d2-41d2071d3680")
    ICoreWebView2ProcessFailedEventArgs2 : public ICoreWebView2ProcessFailedEventArgs
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Reason(
            /* [retval][out] */ COREWEBVIEW2_PROCESS_FAILED_REASON * reason) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ExitCode(
            /* [retval][out] */ int *exitCode) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProcessDescription(
            /* [retval][out] */ LPWSTR * processDescription) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FrameInfosForFailedProcess(
            /* [retval][out] */ ICoreWebView2FrameInfoCollection * *frames) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProcessFailedEventArgs2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProcessFailedEventArgs2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProcessFailedEventArgs2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProcessFailedEventArgs2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs, get_ProcessFailedKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProcessFailedKind)(
            ICoreWebView2ProcessFailedEventArgs2 *This,
            /* [retval][out] */ COREWEBVIEW2_PROCESS_FAILED_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs2, get_Reason)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Reason)(
            ICoreWebView2ProcessFailedEventArgs2 *This,
            /* [retval][out] */ COREWEBVIEW2_PROCESS_FAILED_REASON *reason);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs2, get_ExitCode)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ExitCode)(
            ICoreWebView2ProcessFailedEventArgs2 *This,
            /* [retval][out] */ int *exitCode);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs2, get_ProcessDescription)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProcessDescription)(
            ICoreWebView2ProcessFailedEventArgs2 *This,
            /* [retval][out] */ LPWSTR *processDescription);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs2, get_FrameInfosForFailedProcess)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameInfosForFailedProcess)(
            ICoreWebView2ProcessFailedEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2FrameInfoCollection **frames);

        END_INTERFACE
    } ICoreWebView2ProcessFailedEventArgs2Vtbl;

    interface ICoreWebView2ProcessFailedEventArgs2
    {
        CONST_VTBL struct ICoreWebView2ProcessFailedEventArgs2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProcessFailedEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProcessFailedEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProcessFailedEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProcessFailedEventArgs2_get_ProcessFailedKind(This, value) \
    ((This)->lpVtbl->get_ProcessFailedKind(This, value))

#define ICoreWebView2ProcessFailedEventArgs2_get_Reason(This, reason) \
    ((This)->lpVtbl->get_Reason(This, reason))

#define ICoreWebView2ProcessFailedEventArgs2_get_ExitCode(This, exitCode) \
    ((This)->lpVtbl->get_ExitCode(This, exitCode))

#define ICoreWebView2ProcessFailedEventArgs2_get_ProcessDescription(This, processDescription) \
    ((This)->lpVtbl->get_ProcessDescription(This, processDescription))

#define ICoreWebView2ProcessFailedEventArgs2_get_FrameInfosForFailedProcess(This, frames) \
    ((This)->lpVtbl->get_FrameInfosForFailedProcess(This, frames))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProcessFailedEventArgs2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProcessFailedEventArgs3_INTERFACE_DEFINED__
#define __ICoreWebView2ProcessFailedEventArgs3_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProcessFailedEventArgs3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProcessFailedEventArgs3 = {0xab667428, 0x094d, 0x5fd1, {0xb4, 0x80, 0x8b, 0x4c, 0x0f, 0xdb, 0xdf, 0x2f}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ab667428-094d-5fd1-b480-8b4c0fdbdf2f")
    ICoreWebView2ProcessFailedEventArgs3 : public ICoreWebView2ProcessFailedEventArgs2
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FailureSourceModulePath(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProcessFailedEventArgs3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProcessFailedEventArgs3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProcessFailedEventArgs3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProcessFailedEventArgs3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs, get_ProcessFailedKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProcessFailedKind)(
            ICoreWebView2ProcessFailedEventArgs3 *This,
            /* [retval][out] */ COREWEBVIEW2_PROCESS_FAILED_KIND *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs2, get_Reason)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Reason)(
            ICoreWebView2ProcessFailedEventArgs3 *This,
            /* [retval][out] */ COREWEBVIEW2_PROCESS_FAILED_REASON *reason);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs2, get_ExitCode)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ExitCode)(
            ICoreWebView2ProcessFailedEventArgs3 *This,
            /* [retval][out] */ int *exitCode);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs2, get_ProcessDescription)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProcessDescription)(
            ICoreWebView2ProcessFailedEventArgs3 *This,
            /* [retval][out] */ LPWSTR *processDescription);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs2, get_FrameInfosForFailedProcess)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FrameInfosForFailedProcess)(
            ICoreWebView2ProcessFailedEventArgs3 *This,
            /* [retval][out] */ ICoreWebView2FrameInfoCollection **frames);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessFailedEventArgs3, get_FailureSourceModulePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FailureSourceModulePath)(
            ICoreWebView2ProcessFailedEventArgs3 *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2ProcessFailedEventArgs3Vtbl;

    interface ICoreWebView2ProcessFailedEventArgs3
    {
        CONST_VTBL struct ICoreWebView2ProcessFailedEventArgs3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProcessFailedEventArgs3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProcessFailedEventArgs3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProcessFailedEventArgs3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProcessFailedEventArgs3_get_ProcessFailedKind(This, value) \
    ((This)->lpVtbl->get_ProcessFailedKind(This, value))

#define ICoreWebView2ProcessFailedEventArgs3_get_Reason(This, reason) \
    ((This)->lpVtbl->get_Reason(This, reason))

#define ICoreWebView2ProcessFailedEventArgs3_get_ExitCode(This, exitCode) \
    ((This)->lpVtbl->get_ExitCode(This, exitCode))

#define ICoreWebView2ProcessFailedEventArgs3_get_ProcessDescription(This, processDescription) \
    ((This)->lpVtbl->get_ProcessDescription(This, processDescription))

#define ICoreWebView2ProcessFailedEventArgs3_get_FrameInfosForFailedProcess(This, frames) \
    ((This)->lpVtbl->get_FrameInfosForFailedProcess(This, frames))

#define ICoreWebView2ProcessFailedEventArgs3_get_FailureSourceModulePath(This, value) \
    ((This)->lpVtbl->get_FailureSourceModulePath(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProcessFailedEventArgs3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProcessInfo_INTERFACE_DEFINED__
#define __ICoreWebView2ProcessInfo_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProcessInfo */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProcessInfo = {0x84FA7612, 0x3F3D, 0x4FBF, {0x88, 0x9D, 0xFA, 0xD0, 0x00, 0x49, 0x2D, 0x72}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("84FA7612-3F3D-4FBF-889D-FAD000492D72")
    ICoreWebView2ProcessInfo : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProcessId(
            /* [retval][out] */ INT32 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Kind(
            /* [retval][out] */ COREWEBVIEW2_PROCESS_KIND * kind) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProcessInfoVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProcessInfo *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProcessInfo *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProcessInfo *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessInfo, get_ProcessId)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProcessId)(
            ICoreWebView2ProcessInfo *This,
            /* [retval][out] */ INT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ProcessInfo, get_Kind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Kind)(
            ICoreWebView2ProcessInfo *This,
            /* [retval][out] */ COREWEBVIEW2_PROCESS_KIND *kind);

        END_INTERFACE
    } ICoreWebView2ProcessInfoVtbl;

    interface ICoreWebView2ProcessInfo
    {
        CONST_VTBL struct ICoreWebView2ProcessInfoVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProcessInfo_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProcessInfo_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProcessInfo_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProcessInfo_get_ProcessId(This, value) \
    ((This)->lpVtbl->get_ProcessId(This, value))

#define ICoreWebView2ProcessInfo_get_Kind(This, kind) \
    ((This)->lpVtbl->get_Kind(This, kind))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProcessInfo_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Profile_INTERFACE_DEFINED__
#define __ICoreWebView2Profile_INTERFACE_DEFINED__

    /* interface ICoreWebView2Profile */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Profile = {0x79110ad3, 0xcd5d, 0x4373, {0x8b, 0xc3, 0xc6, 0x06, 0x58, 0xf1, 0x7a, 0x5f}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("79110ad3-cd5d-4373-8bc3-c60658f17a5f")
    ICoreWebView2Profile : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProfileName(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsInPrivateModeEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ProfilePath(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultDownloadFolderPath(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_DefaultDownloadFolderPath(
            /* [in] */ LPCWSTR value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PreferredColorScheme(
            /* [retval][out] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PreferredColorScheme(
            /* [in] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProfileVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Profile *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Profile *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Profile *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2Profile *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2Profile *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfilePath)(
            ICoreWebView2Profile *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_DefaultDownloadFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadFolderPath)(
            ICoreWebView2Profile *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_DefaultDownloadFolderPath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadFolderPath)(
            ICoreWebView2Profile *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_PreferredColorScheme)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredColorScheme)(
            ICoreWebView2Profile *This,
            /* [retval][out] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_PreferredColorScheme)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredColorScheme)(
            ICoreWebView2Profile *This,
            /* [in] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME value);

        END_INTERFACE
    } ICoreWebView2ProfileVtbl;

    interface ICoreWebView2Profile
    {
        CONST_VTBL struct ICoreWebView2ProfileVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Profile_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Profile_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Profile_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Profile_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2Profile_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2Profile_get_ProfilePath(This, value) \
    ((This)->lpVtbl->get_ProfilePath(This, value))

#define ICoreWebView2Profile_get_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile_put_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile_get_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->get_PreferredColorScheme(This, value))

#define ICoreWebView2Profile_put_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->put_PreferredColorScheme(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Profile_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Profile2_INTERFACE_DEFINED__
#define __ICoreWebView2Profile2_INTERFACE_DEFINED__

    /* interface ICoreWebView2Profile2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Profile2 = {0xfa740d4b, 0x5eae, 0x4344, {0xa8, 0xad, 0x74, 0xbe, 0x31, 0x92, 0x53, 0x97}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("fa740d4b-5eae-4344-a8ad-74be31925397")
    ICoreWebView2Profile2 : public ICoreWebView2Profile
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE ClearBrowsingData(
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE ClearBrowsingDataInTimeRange(
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ double startTime,
            /* [in] */ double endTime,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE ClearBrowsingDataAll(
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Profile2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Profile2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Profile2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Profile2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2Profile2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2Profile2 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfilePath)(
            ICoreWebView2Profile2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_DefaultDownloadFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadFolderPath)(
            ICoreWebView2Profile2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_DefaultDownloadFolderPath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadFolderPath)(
            ICoreWebView2Profile2 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_PreferredColorScheme)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredColorScheme)(
            ICoreWebView2Profile2 *This,
            /* [retval][out] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_PreferredColorScheme)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredColorScheme)(
            ICoreWebView2Profile2 *This,
            /* [in] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingData)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingData)(
            ICoreWebView2Profile2 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataInTimeRange)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataInTimeRange)(
            ICoreWebView2Profile2 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ double startTime,
            /* [in] */ double endTime,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataAll)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataAll)(
            ICoreWebView2Profile2 *This,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2Profile2Vtbl;

    interface ICoreWebView2Profile2
    {
        CONST_VTBL struct ICoreWebView2Profile2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Profile2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Profile2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Profile2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Profile2_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2Profile2_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2Profile2_get_ProfilePath(This, value) \
    ((This)->lpVtbl->get_ProfilePath(This, value))

#define ICoreWebView2Profile2_get_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile2_put_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile2_get_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->get_PreferredColorScheme(This, value))

#define ICoreWebView2Profile2_put_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->put_PreferredColorScheme(This, value))

#define ICoreWebView2Profile2_ClearBrowsingData(This, dataKinds, handler) \
    ((This)->lpVtbl->ClearBrowsingData(This, dataKinds, handler))

#define ICoreWebView2Profile2_ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler) \
    ((This)->lpVtbl->ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler))

#define ICoreWebView2Profile2_ClearBrowsingDataAll(This, handler) \
    ((This)->lpVtbl->ClearBrowsingDataAll(This, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Profile2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ClearBrowsingDataCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ClearBrowsingDataCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ClearBrowsingDataCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ClearBrowsingDataCompletedHandler = {0xe9710a06, 0x1d1d, 0x49b2, {0x82, 0x34, 0x22, 0x6f, 0x35, 0x84, 0x6a, 0xe5}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e9710a06-1d1d-49b2-8234-226f35846ae5")
    ICoreWebView2ClearBrowsingDataCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ClearBrowsingDataCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ClearBrowsingDataCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ClearBrowsingDataCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ClearBrowsingDataCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ClearBrowsingDataCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ClearBrowsingDataCompletedHandler *This,
            /* [in] */ HRESULT errorCode);

        END_INTERFACE
    } ICoreWebView2ClearBrowsingDataCompletedHandlerVtbl;

    interface ICoreWebView2ClearBrowsingDataCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2ClearBrowsingDataCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ClearBrowsingDataCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ClearBrowsingDataCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ClearBrowsingDataCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ClearBrowsingDataCompletedHandler_Invoke(This, errorCode) \
    ((This)->lpVtbl->Invoke(This, errorCode))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ClearBrowsingDataCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Profile3_INTERFACE_DEFINED__
#define __ICoreWebView2Profile3_INTERFACE_DEFINED__

    /* interface ICoreWebView2Profile3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Profile3 = {0xb188e659, 0x5685, 0x4e05, {0xbd, 0xba, 0xfc, 0x64, 0x0e, 0x0f, 0x19, 0x92}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("b188e659-5685-4e05-bdba-fc640e0f1992")
    ICoreWebView2Profile3 : public ICoreWebView2Profile2
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_PreferredTrackingPreventionLevel(
            /* [retval][out] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_PreferredTrackingPreventionLevel(
            /* [in] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Profile3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Profile3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Profile3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Profile3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2Profile3 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2Profile3 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfilePath)(
            ICoreWebView2Profile3 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_DefaultDownloadFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadFolderPath)(
            ICoreWebView2Profile3 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_DefaultDownloadFolderPath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadFolderPath)(
            ICoreWebView2Profile3 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_PreferredColorScheme)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredColorScheme)(
            ICoreWebView2Profile3 *This,
            /* [retval][out] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_PreferredColorScheme)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredColorScheme)(
            ICoreWebView2Profile3 *This,
            /* [in] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingData)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingData)(
            ICoreWebView2Profile3 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataInTimeRange)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataInTimeRange)(
            ICoreWebView2Profile3 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ double startTime,
            /* [in] */ double endTime,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataAll)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataAll)(
            ICoreWebView2Profile3 *This,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, get_PreferredTrackingPreventionLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile3 *This,
            /* [retval][out] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, put_PreferredTrackingPreventionLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile3 *This,
            /* [in] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL value);

        END_INTERFACE
    } ICoreWebView2Profile3Vtbl;

    interface ICoreWebView2Profile3
    {
        CONST_VTBL struct ICoreWebView2Profile3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Profile3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Profile3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Profile3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Profile3_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2Profile3_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2Profile3_get_ProfilePath(This, value) \
    ((This)->lpVtbl->get_ProfilePath(This, value))

#define ICoreWebView2Profile3_get_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile3_put_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile3_get_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->get_PreferredColorScheme(This, value))

#define ICoreWebView2Profile3_put_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->put_PreferredColorScheme(This, value))

#define ICoreWebView2Profile3_ClearBrowsingData(This, dataKinds, handler) \
    ((This)->lpVtbl->ClearBrowsingData(This, dataKinds, handler))

#define ICoreWebView2Profile3_ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler) \
    ((This)->lpVtbl->ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler))

#define ICoreWebView2Profile3_ClearBrowsingDataAll(This, handler) \
    ((This)->lpVtbl->ClearBrowsingDataAll(This, handler))

#define ICoreWebView2Profile3_get_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->get_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile3_put_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->put_PreferredTrackingPreventionLevel(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Profile3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Profile4_INTERFACE_DEFINED__
#define __ICoreWebView2Profile4_INTERFACE_DEFINED__

    /* interface ICoreWebView2Profile4 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Profile4 = {0x8f4ae680, 0x192e, 0x4ec8, {0x83, 0x3a, 0x21, 0xcf, 0xad, 0xae, 0xf6, 0x28}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("8f4ae680-192e-4ec8-833a-21cfadaef628")
    ICoreWebView2Profile4 : public ICoreWebView2Profile3
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetPermissionState(
            /* [in] */ COREWEBVIEW2_PERMISSION_KIND PermissionKind,
            /* [in] */ LPCWSTR origin,
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE State,
            /* [in] */ ICoreWebView2SetPermissionStateCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetNonDefaultPermissionSettings(
            /* [in] */ ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Profile4Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Profile4 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Profile4 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Profile4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2Profile4 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2Profile4 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfilePath)(
            ICoreWebView2Profile4 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_DefaultDownloadFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadFolderPath)(
            ICoreWebView2Profile4 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_DefaultDownloadFolderPath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadFolderPath)(
            ICoreWebView2Profile4 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_PreferredColorScheme)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredColorScheme)(
            ICoreWebView2Profile4 *This,
            /* [retval][out] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_PreferredColorScheme)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredColorScheme)(
            ICoreWebView2Profile4 *This,
            /* [in] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingData)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingData)(
            ICoreWebView2Profile4 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataInTimeRange)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataInTimeRange)(
            ICoreWebView2Profile4 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ double startTime,
            /* [in] */ double endTime,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataAll)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataAll)(
            ICoreWebView2Profile4 *This,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, get_PreferredTrackingPreventionLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile4 *This,
            /* [retval][out] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, put_PreferredTrackingPreventionLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile4 *This,
            /* [in] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, SetPermissionState)
        HRESULT(STDMETHODCALLTYPE *SetPermissionState)(
            ICoreWebView2Profile4 *This,
            /* [in] */ COREWEBVIEW2_PERMISSION_KIND PermissionKind,
            /* [in] */ LPCWSTR origin,
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE State,
            /* [in] */ ICoreWebView2SetPermissionStateCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, GetNonDefaultPermissionSettings)
        HRESULT(STDMETHODCALLTYPE *GetNonDefaultPermissionSettings)(
            ICoreWebView2Profile4 *This,
            /* [in] */ ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2Profile4Vtbl;

    interface ICoreWebView2Profile4
    {
        CONST_VTBL struct ICoreWebView2Profile4Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Profile4_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Profile4_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Profile4_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Profile4_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2Profile4_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2Profile4_get_ProfilePath(This, value) \
    ((This)->lpVtbl->get_ProfilePath(This, value))

#define ICoreWebView2Profile4_get_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile4_put_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile4_get_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->get_PreferredColorScheme(This, value))

#define ICoreWebView2Profile4_put_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->put_PreferredColorScheme(This, value))

#define ICoreWebView2Profile4_ClearBrowsingData(This, dataKinds, handler) \
    ((This)->lpVtbl->ClearBrowsingData(This, dataKinds, handler))

#define ICoreWebView2Profile4_ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler) \
    ((This)->lpVtbl->ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler))

#define ICoreWebView2Profile4_ClearBrowsingDataAll(This, handler) \
    ((This)->lpVtbl->ClearBrowsingDataAll(This, handler))

#define ICoreWebView2Profile4_get_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->get_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile4_put_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->put_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile4_SetPermissionState(This, PermissionKind, origin, State, handler) \
    ((This)->lpVtbl->SetPermissionState(This, PermissionKind, origin, State, handler))

#define ICoreWebView2Profile4_GetNonDefaultPermissionSettings(This, handler) \
    ((This)->lpVtbl->GetNonDefaultPermissionSettings(This, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Profile4_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2SetPermissionStateCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2SetPermissionStateCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2SetPermissionStateCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2SetPermissionStateCompletedHandler = {0xfc77fb30, 0x9c9e, 0x4076, {0xb8, 0xc7, 0x76, 0x44, 0xa7, 0x03, 0xca, 0x1b}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("fc77fb30-9c9e-4076-b8c7-7644a703ca1b")
    ICoreWebView2SetPermissionStateCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2SetPermissionStateCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2SetPermissionStateCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2SetPermissionStateCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2SetPermissionStateCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2SetPermissionStateCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2SetPermissionStateCompletedHandler *This,
            /* [in] */ HRESULT errorCode);

        END_INTERFACE
    } ICoreWebView2SetPermissionStateCompletedHandlerVtbl;

    interface ICoreWebView2SetPermissionStateCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2SetPermissionStateCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2SetPermissionStateCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2SetPermissionStateCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2SetPermissionStateCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2SetPermissionStateCompletedHandler_Invoke(This, errorCode) \
    ((This)->lpVtbl->Invoke(This, errorCode))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2SetPermissionStateCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler = {0x38274481, 0xa15c, 0x4563, {0x94, 0xcf, 0x99, 0x0e, 0xdc, 0x9a, 0xeb, 0x95}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("38274481-a15c-4563-94cf-990edc9aeb95")
    ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2PermissionSettingCollectionView * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2PermissionSettingCollectionView *result);

        END_INTERFACE
    } ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandlerVtbl;

    interface ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Profile5_INTERFACE_DEFINED__
#define __ICoreWebView2Profile5_INTERFACE_DEFINED__

    /* interface ICoreWebView2Profile5 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Profile5 = {0x2ee5b76e, 0x6e80, 0x4df2, {0xbc, 0xd3, 0xd4, 0xec, 0x33, 0x40, 0xa0, 0x1b}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("2ee5b76e-6e80-4df2-bcd3-d4ec3340a01b")
    ICoreWebView2Profile5 : public ICoreWebView2Profile4
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CookieManager(
            /* [retval][out] */ ICoreWebView2CookieManager * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Profile5Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Profile5 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Profile5 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Profile5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2Profile5 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2Profile5 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfilePath)(
            ICoreWebView2Profile5 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_DefaultDownloadFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadFolderPath)(
            ICoreWebView2Profile5 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_DefaultDownloadFolderPath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadFolderPath)(
            ICoreWebView2Profile5 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_PreferredColorScheme)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredColorScheme)(
            ICoreWebView2Profile5 *This,
            /* [retval][out] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_PreferredColorScheme)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredColorScheme)(
            ICoreWebView2Profile5 *This,
            /* [in] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingData)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingData)(
            ICoreWebView2Profile5 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataInTimeRange)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataInTimeRange)(
            ICoreWebView2Profile5 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ double startTime,
            /* [in] */ double endTime,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataAll)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataAll)(
            ICoreWebView2Profile5 *This,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, get_PreferredTrackingPreventionLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile5 *This,
            /* [retval][out] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, put_PreferredTrackingPreventionLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile5 *This,
            /* [in] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, SetPermissionState)
        HRESULT(STDMETHODCALLTYPE *SetPermissionState)(
            ICoreWebView2Profile5 *This,
            /* [in] */ COREWEBVIEW2_PERMISSION_KIND PermissionKind,
            /* [in] */ LPCWSTR origin,
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE State,
            /* [in] */ ICoreWebView2SetPermissionStateCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, GetNonDefaultPermissionSettings)
        HRESULT(STDMETHODCALLTYPE *GetNonDefaultPermissionSettings)(
            ICoreWebView2Profile5 *This,
            /* [in] */ ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile5, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2Profile5 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **value);

        END_INTERFACE
    } ICoreWebView2Profile5Vtbl;

    interface ICoreWebView2Profile5
    {
        CONST_VTBL struct ICoreWebView2Profile5Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Profile5_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Profile5_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Profile5_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Profile5_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2Profile5_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2Profile5_get_ProfilePath(This, value) \
    ((This)->lpVtbl->get_ProfilePath(This, value))

#define ICoreWebView2Profile5_get_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile5_put_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile5_get_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->get_PreferredColorScheme(This, value))

#define ICoreWebView2Profile5_put_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->put_PreferredColorScheme(This, value))

#define ICoreWebView2Profile5_ClearBrowsingData(This, dataKinds, handler) \
    ((This)->lpVtbl->ClearBrowsingData(This, dataKinds, handler))

#define ICoreWebView2Profile5_ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler) \
    ((This)->lpVtbl->ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler))

#define ICoreWebView2Profile5_ClearBrowsingDataAll(This, handler) \
    ((This)->lpVtbl->ClearBrowsingDataAll(This, handler))

#define ICoreWebView2Profile5_get_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->get_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile5_put_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->put_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile5_SetPermissionState(This, PermissionKind, origin, State, handler) \
    ((This)->lpVtbl->SetPermissionState(This, PermissionKind, origin, State, handler))

#define ICoreWebView2Profile5_GetNonDefaultPermissionSettings(This, handler) \
    ((This)->lpVtbl->GetNonDefaultPermissionSettings(This, handler))

#define ICoreWebView2Profile5_get_CookieManager(This, value) \
    ((This)->lpVtbl->get_CookieManager(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Profile5_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Profile6_INTERFACE_DEFINED__
#define __ICoreWebView2Profile6_INTERFACE_DEFINED__

    /* interface ICoreWebView2Profile6 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Profile6 = {0xBD82FA6A, 0x1D65, 0x4C33, {0xB2, 0xB4, 0x03, 0x93, 0x02, 0x0C, 0xC6, 0x1B}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("BD82FA6A-1D65-4C33-B2B4-0393020CC61B")
    ICoreWebView2Profile6 : public ICoreWebView2Profile5
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsPasswordAutosaveEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsPasswordAutosaveEnabled(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsGeneralAutofillEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsGeneralAutofillEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Profile6Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Profile6 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Profile6 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Profile6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2Profile6 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2Profile6 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfilePath)(
            ICoreWebView2Profile6 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_DefaultDownloadFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadFolderPath)(
            ICoreWebView2Profile6 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_DefaultDownloadFolderPath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadFolderPath)(
            ICoreWebView2Profile6 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_PreferredColorScheme)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredColorScheme)(
            ICoreWebView2Profile6 *This,
            /* [retval][out] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_PreferredColorScheme)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredColorScheme)(
            ICoreWebView2Profile6 *This,
            /* [in] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingData)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingData)(
            ICoreWebView2Profile6 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataInTimeRange)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataInTimeRange)(
            ICoreWebView2Profile6 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ double startTime,
            /* [in] */ double endTime,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataAll)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataAll)(
            ICoreWebView2Profile6 *This,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, get_PreferredTrackingPreventionLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile6 *This,
            /* [retval][out] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, put_PreferredTrackingPreventionLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile6 *This,
            /* [in] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, SetPermissionState)
        HRESULT(STDMETHODCALLTYPE *SetPermissionState)(
            ICoreWebView2Profile6 *This,
            /* [in] */ COREWEBVIEW2_PERMISSION_KIND PermissionKind,
            /* [in] */ LPCWSTR origin,
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE State,
            /* [in] */ ICoreWebView2SetPermissionStateCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, GetNonDefaultPermissionSettings)
        HRESULT(STDMETHODCALLTYPE *GetNonDefaultPermissionSettings)(
            ICoreWebView2Profile6 *This,
            /* [in] */ ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile5, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2Profile6 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, get_IsPasswordAutosaveEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPasswordAutosaveEnabled)(
            ICoreWebView2Profile6 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, put_IsPasswordAutosaveEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPasswordAutosaveEnabled)(
            ICoreWebView2Profile6 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, get_IsGeneralAutofillEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsGeneralAutofillEnabled)(
            ICoreWebView2Profile6 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, put_IsGeneralAutofillEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsGeneralAutofillEnabled)(
            ICoreWebView2Profile6 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2Profile6Vtbl;

    interface ICoreWebView2Profile6
    {
        CONST_VTBL struct ICoreWebView2Profile6Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Profile6_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Profile6_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Profile6_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Profile6_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2Profile6_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2Profile6_get_ProfilePath(This, value) \
    ((This)->lpVtbl->get_ProfilePath(This, value))

#define ICoreWebView2Profile6_get_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile6_put_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile6_get_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->get_PreferredColorScheme(This, value))

#define ICoreWebView2Profile6_put_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->put_PreferredColorScheme(This, value))

#define ICoreWebView2Profile6_ClearBrowsingData(This, dataKinds, handler) \
    ((This)->lpVtbl->ClearBrowsingData(This, dataKinds, handler))

#define ICoreWebView2Profile6_ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler) \
    ((This)->lpVtbl->ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler))

#define ICoreWebView2Profile6_ClearBrowsingDataAll(This, handler) \
    ((This)->lpVtbl->ClearBrowsingDataAll(This, handler))

#define ICoreWebView2Profile6_get_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->get_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile6_put_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->put_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile6_SetPermissionState(This, PermissionKind, origin, State, handler) \
    ((This)->lpVtbl->SetPermissionState(This, PermissionKind, origin, State, handler))

#define ICoreWebView2Profile6_GetNonDefaultPermissionSettings(This, handler) \
    ((This)->lpVtbl->GetNonDefaultPermissionSettings(This, handler))

#define ICoreWebView2Profile6_get_CookieManager(This, value) \
    ((This)->lpVtbl->get_CookieManager(This, value))

#define ICoreWebView2Profile6_get_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->get_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Profile6_put_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->put_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Profile6_get_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->get_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Profile6_put_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->put_IsGeneralAutofillEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Profile6_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Profile7_INTERFACE_DEFINED__
#define __ICoreWebView2Profile7_INTERFACE_DEFINED__

    /* interface ICoreWebView2Profile7 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Profile7 = {0x7b4c7906, 0xa1aa, 0x4cb4, {0xb7, 0x23, 0xdb, 0x09, 0xf8, 0x13, 0xd5, 0x41}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7b4c7906-a1aa-4cb4-b723-db09f813d541")
    ICoreWebView2Profile7 : public ICoreWebView2Profile6
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE AddBrowserExtension(
            /* [in] */ LPCWSTR extensionFolderPath,
            /* [in] */ ICoreWebView2ProfileAddBrowserExtensionCompletedHandler * handler) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetBrowserExtensions(
            /* [in] */ ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Profile7Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Profile7 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Profile7 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Profile7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2Profile7 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2Profile7 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfilePath)(
            ICoreWebView2Profile7 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_DefaultDownloadFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadFolderPath)(
            ICoreWebView2Profile7 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_DefaultDownloadFolderPath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadFolderPath)(
            ICoreWebView2Profile7 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_PreferredColorScheme)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredColorScheme)(
            ICoreWebView2Profile7 *This,
            /* [retval][out] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_PreferredColorScheme)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredColorScheme)(
            ICoreWebView2Profile7 *This,
            /* [in] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingData)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingData)(
            ICoreWebView2Profile7 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataInTimeRange)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataInTimeRange)(
            ICoreWebView2Profile7 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ double startTime,
            /* [in] */ double endTime,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataAll)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataAll)(
            ICoreWebView2Profile7 *This,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, get_PreferredTrackingPreventionLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile7 *This,
            /* [retval][out] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, put_PreferredTrackingPreventionLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile7 *This,
            /* [in] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, SetPermissionState)
        HRESULT(STDMETHODCALLTYPE *SetPermissionState)(
            ICoreWebView2Profile7 *This,
            /* [in] */ COREWEBVIEW2_PERMISSION_KIND PermissionKind,
            /* [in] */ LPCWSTR origin,
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE State,
            /* [in] */ ICoreWebView2SetPermissionStateCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, GetNonDefaultPermissionSettings)
        HRESULT(STDMETHODCALLTYPE *GetNonDefaultPermissionSettings)(
            ICoreWebView2Profile7 *This,
            /* [in] */ ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile5, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2Profile7 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, get_IsPasswordAutosaveEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPasswordAutosaveEnabled)(
            ICoreWebView2Profile7 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, put_IsPasswordAutosaveEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPasswordAutosaveEnabled)(
            ICoreWebView2Profile7 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, get_IsGeneralAutofillEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsGeneralAutofillEnabled)(
            ICoreWebView2Profile7 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, put_IsGeneralAutofillEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsGeneralAutofillEnabled)(
            ICoreWebView2Profile7 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile7, AddBrowserExtension)
        HRESULT(STDMETHODCALLTYPE *AddBrowserExtension)(
            ICoreWebView2Profile7 *This,
            /* [in] */ LPCWSTR extensionFolderPath,
            /* [in] */ ICoreWebView2ProfileAddBrowserExtensionCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile7, GetBrowserExtensions)
        HRESULT(STDMETHODCALLTYPE *GetBrowserExtensions)(
            ICoreWebView2Profile7 *This,
            /* [in] */ ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2Profile7Vtbl;

    interface ICoreWebView2Profile7
    {
        CONST_VTBL struct ICoreWebView2Profile7Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Profile7_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Profile7_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Profile7_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Profile7_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2Profile7_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2Profile7_get_ProfilePath(This, value) \
    ((This)->lpVtbl->get_ProfilePath(This, value))

#define ICoreWebView2Profile7_get_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile7_put_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile7_get_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->get_PreferredColorScheme(This, value))

#define ICoreWebView2Profile7_put_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->put_PreferredColorScheme(This, value))

#define ICoreWebView2Profile7_ClearBrowsingData(This, dataKinds, handler) \
    ((This)->lpVtbl->ClearBrowsingData(This, dataKinds, handler))

#define ICoreWebView2Profile7_ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler) \
    ((This)->lpVtbl->ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler))

#define ICoreWebView2Profile7_ClearBrowsingDataAll(This, handler) \
    ((This)->lpVtbl->ClearBrowsingDataAll(This, handler))

#define ICoreWebView2Profile7_get_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->get_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile7_put_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->put_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile7_SetPermissionState(This, PermissionKind, origin, State, handler) \
    ((This)->lpVtbl->SetPermissionState(This, PermissionKind, origin, State, handler))

#define ICoreWebView2Profile7_GetNonDefaultPermissionSettings(This, handler) \
    ((This)->lpVtbl->GetNonDefaultPermissionSettings(This, handler))

#define ICoreWebView2Profile7_get_CookieManager(This, value) \
    ((This)->lpVtbl->get_CookieManager(This, value))

#define ICoreWebView2Profile7_get_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->get_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Profile7_put_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->put_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Profile7_get_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->get_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Profile7_put_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->put_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Profile7_AddBrowserExtension(This, extensionFolderPath, handler) \
    ((This)->lpVtbl->AddBrowserExtension(This, extensionFolderPath, handler))

#define ICoreWebView2Profile7_GetBrowserExtensions(This, handler) \
    ((This)->lpVtbl->GetBrowserExtensions(This, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Profile7_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProfileAddBrowserExtensionCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProfileAddBrowserExtensionCompletedHandler = {0xdf1aab27, 0x82b9, 0x4ab6, {0xaa, 0xe8, 0x01, 0x7a, 0x49, 0x39, 0x8c, 0x14}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("df1aab27-82b9-4ab6-aae8-017a49398c14")
    ICoreWebView2ProfileAddBrowserExtensionCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2BrowserExtension * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProfileAddBrowserExtensionCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProfileAddBrowserExtensionCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProfileAddBrowserExtensionCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProfileAddBrowserExtensionCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProfileAddBrowserExtensionCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ProfileAddBrowserExtensionCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2BrowserExtension *result);

        END_INTERFACE
    } ICoreWebView2ProfileAddBrowserExtensionCompletedHandlerVtbl;

    interface ICoreWebView2ProfileAddBrowserExtensionCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2ProfileAddBrowserExtensionCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProfileAddBrowserExtensionCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler = {0xfce16a1c, 0xf107, 0x4601, {0x8b, 0x75, 0xfc, 0x49, 0x40, 0xae, 0x25, 0xd0}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("fce16a1c-f107-4601-8b75-fc4940ae25d0")
    ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2BrowserExtensionList * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProfileGetBrowserExtensionsCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ ICoreWebView2BrowserExtensionList *result);

        END_INTERFACE
    } ICoreWebView2ProfileGetBrowserExtensionsCompletedHandlerVtbl;

    interface ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2ProfileGetBrowserExtensionsCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2BrowserExtensionList_INTERFACE_DEFINED__
#define __ICoreWebView2BrowserExtensionList_INTERFACE_DEFINED__

    /* interface ICoreWebView2BrowserExtensionList */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2BrowserExtensionList = {0x2ef3d2dc, 0xbd5f, 0x4f4d, {0x90, 0xaf, 0xfd, 0x67, 0x79, 0x8f, 0x0c, 0x2f}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("2ef3d2dc-bd5f-4f4d-90af-fd67798f0c2f")
    ICoreWebView2BrowserExtensionList : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2BrowserExtension * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2BrowserExtensionListVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2BrowserExtensionList *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2BrowserExtensionList *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2BrowserExtensionList *This);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserExtensionList, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2BrowserExtensionList *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2BrowserExtensionList, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2BrowserExtensionList *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2BrowserExtension **value);

        END_INTERFACE
    } ICoreWebView2BrowserExtensionListVtbl;

    interface ICoreWebView2BrowserExtensionList
    {
        CONST_VTBL struct ICoreWebView2BrowserExtensionListVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2BrowserExtensionList_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2BrowserExtensionList_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2BrowserExtensionList_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2BrowserExtensionList_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#define ICoreWebView2BrowserExtensionList_GetValueAtIndex(This, index, value) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2BrowserExtensionList_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Profile8_INTERFACE_DEFINED__
#define __ICoreWebView2Profile8_INTERFACE_DEFINED__

    /* interface ICoreWebView2Profile8 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Profile8 = {0xfbf70c2f, 0xeb1f, 0x4383, {0x85, 0xa0, 0x16, 0x3e, 0x92, 0x04, 0x40, 0x11}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("fbf70c2f-eb1f-4383-85a0-163e92044011")
    ICoreWebView2Profile8 : public ICoreWebView2Profile7
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Delete(void) = 0;

        virtual HRESULT STDMETHODCALLTYPE add_Deleted(
            /* [in] */ ICoreWebView2ProfileDeletedEventHandler * eventHandler,
            /* [out] */ EventRegistrationToken * token) = 0;

        virtual HRESULT STDMETHODCALLTYPE remove_Deleted(
            /* [in] */ EventRegistrationToken token) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Profile8Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Profile8 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Profile8 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Profile8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfileName)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfileName)(
            ICoreWebView2Profile8 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_IsInPrivateModeEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsInPrivateModeEnabled)(
            ICoreWebView2Profile8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_ProfilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ProfilePath)(
            ICoreWebView2Profile8 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_DefaultDownloadFolderPath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultDownloadFolderPath)(
            ICoreWebView2Profile8 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_DefaultDownloadFolderPath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_DefaultDownloadFolderPath)(
            ICoreWebView2Profile8 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, get_PreferredColorScheme)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredColorScheme)(
            ICoreWebView2Profile8 *This,
            /* [retval][out] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile, put_PreferredColorScheme)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredColorScheme)(
            ICoreWebView2Profile8 *This,
            /* [in] */ COREWEBVIEW2_PREFERRED_COLOR_SCHEME value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingData)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingData)(
            ICoreWebView2Profile8 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataInTimeRange)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataInTimeRange)(
            ICoreWebView2Profile8 *This,
            /* [in] */ COREWEBVIEW2_BROWSING_DATA_KINDS dataKinds,
            /* [in] */ double startTime,
            /* [in] */ double endTime,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile2, ClearBrowsingDataAll)
        HRESULT(STDMETHODCALLTYPE *ClearBrowsingDataAll)(
            ICoreWebView2Profile8 *This,
            /* [in] */ ICoreWebView2ClearBrowsingDataCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, get_PreferredTrackingPreventionLevel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile8 *This,
            /* [retval][out] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile3, put_PreferredTrackingPreventionLevel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_PreferredTrackingPreventionLevel)(
            ICoreWebView2Profile8 *This,
            /* [in] */ COREWEBVIEW2_TRACKING_PREVENTION_LEVEL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, SetPermissionState)
        HRESULT(STDMETHODCALLTYPE *SetPermissionState)(
            ICoreWebView2Profile8 *This,
            /* [in] */ COREWEBVIEW2_PERMISSION_KIND PermissionKind,
            /* [in] */ LPCWSTR origin,
            /* [in] */ COREWEBVIEW2_PERMISSION_STATE State,
            /* [in] */ ICoreWebView2SetPermissionStateCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile4, GetNonDefaultPermissionSettings)
        HRESULT(STDMETHODCALLTYPE *GetNonDefaultPermissionSettings)(
            ICoreWebView2Profile8 *This,
            /* [in] */ ICoreWebView2GetNonDefaultPermissionSettingsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile5, get_CookieManager)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CookieManager)(
            ICoreWebView2Profile8 *This,
            /* [retval][out] */ ICoreWebView2CookieManager **value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, get_IsPasswordAutosaveEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPasswordAutosaveEnabled)(
            ICoreWebView2Profile8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, put_IsPasswordAutosaveEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPasswordAutosaveEnabled)(
            ICoreWebView2Profile8 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, get_IsGeneralAutofillEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsGeneralAutofillEnabled)(
            ICoreWebView2Profile8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile6, put_IsGeneralAutofillEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsGeneralAutofillEnabled)(
            ICoreWebView2Profile8 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile7, AddBrowserExtension)
        HRESULT(STDMETHODCALLTYPE *AddBrowserExtension)(
            ICoreWebView2Profile8 *This,
            /* [in] */ LPCWSTR extensionFolderPath,
            /* [in] */ ICoreWebView2ProfileAddBrowserExtensionCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile7, GetBrowserExtensions)
        HRESULT(STDMETHODCALLTYPE *GetBrowserExtensions)(
            ICoreWebView2Profile8 *This,
            /* [in] */ ICoreWebView2ProfileGetBrowserExtensionsCompletedHandler *handler);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile8, Delete)
        HRESULT(STDMETHODCALLTYPE *Delete)(
            ICoreWebView2Profile8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile8, add_Deleted)
        HRESULT(STDMETHODCALLTYPE *add_Deleted)(
            ICoreWebView2Profile8 *This,
            /* [in] */ ICoreWebView2ProfileDeletedEventHandler *eventHandler,
            /* [out] */ EventRegistrationToken *token);

        DECLSPEC_XFGVIRT(ICoreWebView2Profile8, remove_Deleted)
        HRESULT(STDMETHODCALLTYPE *remove_Deleted)(
            ICoreWebView2Profile8 *This,
            /* [in] */ EventRegistrationToken token);

        END_INTERFACE
    } ICoreWebView2Profile8Vtbl;

    interface ICoreWebView2Profile8
    {
        CONST_VTBL struct ICoreWebView2Profile8Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Profile8_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Profile8_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Profile8_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Profile8_get_ProfileName(This, value) \
    ((This)->lpVtbl->get_ProfileName(This, value))

#define ICoreWebView2Profile8_get_IsInPrivateModeEnabled(This, value) \
    ((This)->lpVtbl->get_IsInPrivateModeEnabled(This, value))

#define ICoreWebView2Profile8_get_ProfilePath(This, value) \
    ((This)->lpVtbl->get_ProfilePath(This, value))

#define ICoreWebView2Profile8_get_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->get_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile8_put_DefaultDownloadFolderPath(This, value) \
    ((This)->lpVtbl->put_DefaultDownloadFolderPath(This, value))

#define ICoreWebView2Profile8_get_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->get_PreferredColorScheme(This, value))

#define ICoreWebView2Profile8_put_PreferredColorScheme(This, value) \
    ((This)->lpVtbl->put_PreferredColorScheme(This, value))

#define ICoreWebView2Profile8_ClearBrowsingData(This, dataKinds, handler) \
    ((This)->lpVtbl->ClearBrowsingData(This, dataKinds, handler))

#define ICoreWebView2Profile8_ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler) \
    ((This)->lpVtbl->ClearBrowsingDataInTimeRange(This, dataKinds, startTime, endTime, handler))

#define ICoreWebView2Profile8_ClearBrowsingDataAll(This, handler) \
    ((This)->lpVtbl->ClearBrowsingDataAll(This, handler))

#define ICoreWebView2Profile8_get_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->get_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile8_put_PreferredTrackingPreventionLevel(This, value) \
    ((This)->lpVtbl->put_PreferredTrackingPreventionLevel(This, value))

#define ICoreWebView2Profile8_SetPermissionState(This, PermissionKind, origin, State, handler) \
    ((This)->lpVtbl->SetPermissionState(This, PermissionKind, origin, State, handler))

#define ICoreWebView2Profile8_GetNonDefaultPermissionSettings(This, handler) \
    ((This)->lpVtbl->GetNonDefaultPermissionSettings(This, handler))

#define ICoreWebView2Profile8_get_CookieManager(This, value) \
    ((This)->lpVtbl->get_CookieManager(This, value))

#define ICoreWebView2Profile8_get_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->get_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Profile8_put_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->put_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Profile8_get_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->get_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Profile8_put_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->put_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Profile8_AddBrowserExtension(This, extensionFolderPath, handler) \
    ((This)->lpVtbl->AddBrowserExtension(This, extensionFolderPath, handler))

#define ICoreWebView2Profile8_GetBrowserExtensions(This, handler) \
    ((This)->lpVtbl->GetBrowserExtensions(This, handler))

#define ICoreWebView2Profile8_Delete(This) \
    ((This)->lpVtbl->Delete(This))

#define ICoreWebView2Profile8_add_Deleted(This, eventHandler, token) \
    ((This)->lpVtbl->add_Deleted(This, eventHandler, token))

#define ICoreWebView2Profile8_remove_Deleted(This, token) \
    ((This)->lpVtbl->remove_Deleted(This, token))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Profile8_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ProfileDeletedEventHandler_INTERFACE_DEFINED__
#define __ICoreWebView2ProfileDeletedEventHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2ProfileDeletedEventHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ProfileDeletedEventHandler = {0xdf35055d, 0x772e, 0x4dbe, {0xb7, 0x43, 0x5f, 0xbf, 0x74, 0xa2, 0xb2, 0x58}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("df35055d-772e-4dbe-b743-5fbf74a2b258")
    ICoreWebView2ProfileDeletedEventHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ ICoreWebView2Profile * sender,
            /* [in] */ IUnknown * args) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ProfileDeletedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ProfileDeletedEventHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ProfileDeletedEventHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ProfileDeletedEventHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ProfileDeletedEventHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2ProfileDeletedEventHandler *This,
            /* [in] */ ICoreWebView2Profile *sender,
            /* [in] */ IUnknown *args);

        END_INTERFACE
    } ICoreWebView2ProfileDeletedEventHandlerVtbl;

    interface ICoreWebView2ProfileDeletedEventHandler
    {
        CONST_VTBL struct ICoreWebView2ProfileDeletedEventHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ProfileDeletedEventHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ProfileDeletedEventHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ProfileDeletedEventHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ProfileDeletedEventHandler_Invoke(This, sender, args) \
    ((This)->lpVtbl->Invoke(This, sender, args))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ProfileDeletedEventHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2SaveAsUIShowingEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2SaveAsUIShowingEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2SaveAsUIShowingEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2SaveAsUIShowingEventArgs = {0x55902952, 0x0e0d, 0x5aaa, {0xa7, 0xd0, 0xe8, 0x33, 0xcd, 0xb3, 0x4f, 0x62}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("55902952-0e0d-5aaa-a7d0-e833cdb34f62")
    ICoreWebView2SaveAsUIShowingEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ContentMimeType(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Cancel(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Cancel(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SuppressDefaultDialog(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SuppressDefaultDialog(
            /* [retval][out] */ BOOL * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SaveAsFilePath(
            /* [in] */ LPCWSTR value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SaveAsFilePath(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AllowReplace(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AllowReplace(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Kind(
            /* [in] */ COREWEBVIEW2_SAVE_AS_KIND value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Kind(
            /* [retval][out] */ COREWEBVIEW2_SAVE_AS_KIND * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2SaveAsUIShowingEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2SaveAsUIShowingEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2SaveAsUIShowingEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, get_ContentMimeType)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ContentMimeType)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, put_Cancel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Cancel)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, get_Cancel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cancel)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, put_SuppressDefaultDialog)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_SuppressDefaultDialog)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, get_SuppressDefaultDialog)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SuppressDefaultDialog)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, put_SaveAsFilePath)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_SaveAsFilePath)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, get_SaveAsFilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SaveAsFilePath)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, put_AllowReplace)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AllowReplace)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, get_AllowReplace)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AllowReplace)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, put_Kind)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Kind)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [in] */ COREWEBVIEW2_SAVE_AS_KIND value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveAsUIShowingEventArgs, get_Kind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Kind)(
            ICoreWebView2SaveAsUIShowingEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_SAVE_AS_KIND *value);

        END_INTERFACE
    } ICoreWebView2SaveAsUIShowingEventArgsVtbl;

    interface ICoreWebView2SaveAsUIShowingEventArgs
    {
        CONST_VTBL struct ICoreWebView2SaveAsUIShowingEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2SaveAsUIShowingEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2SaveAsUIShowingEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2SaveAsUIShowingEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2SaveAsUIShowingEventArgs_get_ContentMimeType(This, value) \
    ((This)->lpVtbl->get_ContentMimeType(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_put_Cancel(This, value) \
    ((This)->lpVtbl->put_Cancel(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_get_Cancel(This, value) \
    ((This)->lpVtbl->get_Cancel(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_put_SuppressDefaultDialog(This, value) \
    ((This)->lpVtbl->put_SuppressDefaultDialog(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_get_SuppressDefaultDialog(This, value) \
    ((This)->lpVtbl->get_SuppressDefaultDialog(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_GetDeferral(This, value) \
    ((This)->lpVtbl->GetDeferral(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_put_SaveAsFilePath(This, value) \
    ((This)->lpVtbl->put_SaveAsFilePath(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_get_SaveAsFilePath(This, value) \
    ((This)->lpVtbl->get_SaveAsFilePath(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_put_AllowReplace(This, value) \
    ((This)->lpVtbl->put_AllowReplace(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_get_AllowReplace(This, value) \
    ((This)->lpVtbl->get_AllowReplace(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_put_Kind(This, value) \
    ((This)->lpVtbl->put_Kind(This, value))

#define ICoreWebView2SaveAsUIShowingEventArgs_get_Kind(This, value) \
    ((This)->lpVtbl->get_Kind(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2SaveAsUIShowingEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2SaveFileSecurityCheckStartingEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2SaveFileSecurityCheckStartingEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2SaveFileSecurityCheckStartingEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2SaveFileSecurityCheckStartingEventArgs = {0xcf4ff1d1, 0x5a67, 0x5660, {0x8d, 0x63, 0xef, 0x69, 0x98, 0x81, 0xea, 0x65}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("cf4ff1d1-5a67-5660-8d63-ef699881ea65")
    ICoreWebView2SaveFileSecurityCheckStartingEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_CancelSave(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_CancelSave(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DocumentOriginUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FileExtension(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FilePath(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_SuppressDefaultPolicy(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_SuppressDefaultPolicy(
            /* [in] */ BOOL value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2SaveFileSecurityCheckStartingEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveFileSecurityCheckStartingEventArgs, get_CancelSave)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_CancelSave)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveFileSecurityCheckStartingEventArgs, put_CancelSave)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_CancelSave)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveFileSecurityCheckStartingEventArgs, get_DocumentOriginUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DocumentOriginUri)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveFileSecurityCheckStartingEventArgs, get_FileExtension)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FileExtension)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveFileSecurityCheckStartingEventArgs, get_FilePath)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FilePath)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveFileSecurityCheckStartingEventArgs, get_SuppressDefaultPolicy)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_SuppressDefaultPolicy)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveFileSecurityCheckStartingEventArgs, put_SuppressDefaultPolicy)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_SuppressDefaultPolicy)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2SaveFileSecurityCheckStartingEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2SaveFileSecurityCheckStartingEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **value);

        END_INTERFACE
    } ICoreWebView2SaveFileSecurityCheckStartingEventArgsVtbl;

    interface ICoreWebView2SaveFileSecurityCheckStartingEventArgs
    {
        CONST_VTBL struct ICoreWebView2SaveFileSecurityCheckStartingEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_get_CancelSave(This, value) \
    ((This)->lpVtbl->get_CancelSave(This, value))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_put_CancelSave(This, value) \
    ((This)->lpVtbl->put_CancelSave(This, value))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_get_DocumentOriginUri(This, value) \
    ((This)->lpVtbl->get_DocumentOriginUri(This, value))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_get_FileExtension(This, value) \
    ((This)->lpVtbl->get_FileExtension(This, value))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_get_FilePath(This, value) \
    ((This)->lpVtbl->get_FilePath(This, value))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_get_SuppressDefaultPolicy(This, value) \
    ((This)->lpVtbl->get_SuppressDefaultPolicy(This, value))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_put_SuppressDefaultPolicy(This, value) \
    ((This)->lpVtbl->put_SuppressDefaultPolicy(This, value))

#define ICoreWebView2SaveFileSecurityCheckStartingEventArgs_GetDeferral(This, value) \
    ((This)->lpVtbl->GetDeferral(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2SaveFileSecurityCheckStartingEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ScreenCaptureStartingEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2ScreenCaptureStartingEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2ScreenCaptureStartingEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ScreenCaptureStartingEventArgs = {0x892c03fd, 0xaee3, 0x5eba, {0xa1, 0xfa, 0x6f, 0xd2, 0xf6, 0x48, 0x4b, 0x2b}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("892c03fd-aee3-5eba-a1fa-6fd2f6484b2b")
    ICoreWebView2ScreenCaptureStartingEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Cancel(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Cancel(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Handled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Handled(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_OriginalSourceFrameInfo(
            /* [retval][out] */ ICoreWebView2FrameInfo * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ScreenCaptureStartingEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ScreenCaptureStartingEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ScreenCaptureStartingEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ScreenCaptureStartingEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ScreenCaptureStartingEventArgs, get_Cancel)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Cancel)(
            ICoreWebView2ScreenCaptureStartingEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ScreenCaptureStartingEventArgs, put_Cancel)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Cancel)(
            ICoreWebView2ScreenCaptureStartingEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ScreenCaptureStartingEventArgs, get_Handled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Handled)(
            ICoreWebView2ScreenCaptureStartingEventArgs *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ScreenCaptureStartingEventArgs, put_Handled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Handled)(
            ICoreWebView2ScreenCaptureStartingEventArgs *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2ScreenCaptureStartingEventArgs, get_OriginalSourceFrameInfo)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_OriginalSourceFrameInfo)(
            ICoreWebView2ScreenCaptureStartingEventArgs *This,
            /* [retval][out] */ ICoreWebView2FrameInfo **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ScreenCaptureStartingEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2ScreenCaptureStartingEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **value);

        END_INTERFACE
    } ICoreWebView2ScreenCaptureStartingEventArgsVtbl;

    interface ICoreWebView2ScreenCaptureStartingEventArgs
    {
        CONST_VTBL struct ICoreWebView2ScreenCaptureStartingEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ScreenCaptureStartingEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ScreenCaptureStartingEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ScreenCaptureStartingEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ScreenCaptureStartingEventArgs_get_Cancel(This, value) \
    ((This)->lpVtbl->get_Cancel(This, value))

#define ICoreWebView2ScreenCaptureStartingEventArgs_put_Cancel(This, value) \
    ((This)->lpVtbl->put_Cancel(This, value))

#define ICoreWebView2ScreenCaptureStartingEventArgs_get_Handled(This, value) \
    ((This)->lpVtbl->get_Handled(This, value))

#define ICoreWebView2ScreenCaptureStartingEventArgs_put_Handled(This, value) \
    ((This)->lpVtbl->put_Handled(This, value))

#define ICoreWebView2ScreenCaptureStartingEventArgs_get_OriginalSourceFrameInfo(This, value) \
    ((This)->lpVtbl->get_OriginalSourceFrameInfo(This, value))

#define ICoreWebView2ScreenCaptureStartingEventArgs_GetDeferral(This, value) \
    ((This)->lpVtbl->GetDeferral(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ScreenCaptureStartingEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ScriptDialogOpeningEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2ScriptDialogOpeningEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2ScriptDialogOpeningEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ScriptDialogOpeningEventArgs = {0x7390bb70, 0xabe0, 0x4843, {0x95, 0x29, 0xf1, 0x43, 0xb3, 0x1b, 0x03, 0xd6}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("7390bb70-abe0-4843-9529-f143b31b03d6")
    ICoreWebView2ScriptDialogOpeningEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Uri(
            /* [retval][out] */ LPWSTR * uri) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Kind(
            /* [retval][out] */ COREWEBVIEW2_SCRIPT_DIALOG_KIND * kind) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Message(
            /* [retval][out] */ LPWSTR * message) = 0;

        virtual HRESULT STDMETHODCALLTYPE Accept(void) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_DefaultText(
            /* [retval][out] */ LPWSTR * defaultText) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ResultText(
            /* [retval][out] */ LPWSTR * resultText) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ResultText(
            /* [in] */ LPCWSTR resultText) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ScriptDialogOpeningEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptDialogOpeningEventArgs, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptDialogOpeningEventArgs, get_Kind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Kind)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_SCRIPT_DIALOG_KIND *kind);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptDialogOpeningEventArgs, get_Message)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Message)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This,
            /* [retval][out] */ LPWSTR *message);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptDialogOpeningEventArgs, Accept)
        HRESULT(STDMETHODCALLTYPE *Accept)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptDialogOpeningEventArgs, get_DefaultText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_DefaultText)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This,
            /* [retval][out] */ LPWSTR *defaultText);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptDialogOpeningEventArgs, get_ResultText)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ResultText)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This,
            /* [retval][out] */ LPWSTR *resultText);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptDialogOpeningEventArgs, put_ResultText)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ResultText)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This,
            /* [in] */ LPCWSTR resultText);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptDialogOpeningEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2ScriptDialogOpeningEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        END_INTERFACE
    } ICoreWebView2ScriptDialogOpeningEventArgsVtbl;

    interface ICoreWebView2ScriptDialogOpeningEventArgs
    {
        CONST_VTBL struct ICoreWebView2ScriptDialogOpeningEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ScriptDialogOpeningEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ScriptDialogOpeningEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ScriptDialogOpeningEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ScriptDialogOpeningEventArgs_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2ScriptDialogOpeningEventArgs_get_Kind(This, kind) \
    ((This)->lpVtbl->get_Kind(This, kind))

#define ICoreWebView2ScriptDialogOpeningEventArgs_get_Message(This, message) \
    ((This)->lpVtbl->get_Message(This, message))

#define ICoreWebView2ScriptDialogOpeningEventArgs_Accept(This) \
    ((This)->lpVtbl->Accept(This))

#define ICoreWebView2ScriptDialogOpeningEventArgs_get_DefaultText(This, defaultText) \
    ((This)->lpVtbl->get_DefaultText(This, defaultText))

#define ICoreWebView2ScriptDialogOpeningEventArgs_get_ResultText(This, resultText) \
    ((This)->lpVtbl->get_ResultText(This, resultText))

#define ICoreWebView2ScriptDialogOpeningEventArgs_put_ResultText(This, resultText) \
    ((This)->lpVtbl->put_ResultText(This, resultText))

#define ICoreWebView2ScriptDialogOpeningEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ScriptDialogOpeningEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ScriptException_INTERFACE_DEFINED__
#define __ICoreWebView2ScriptException_INTERFACE_DEFINED__

    /* interface ICoreWebView2ScriptException */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ScriptException = {0x054DAE00, 0x84A3, 0x49FF, {0xBC, 0x17, 0x40, 0x12, 0xA9, 0x0B, 0xC9, 0xFD}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("054DAE00-84A3-49FF-BC17-4012A90BC9FD")
    ICoreWebView2ScriptException : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_LineNumber(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ColumnNumber(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Name(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Message(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ToJson(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ScriptExceptionVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ScriptException *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ScriptException *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ScriptException *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptException, get_LineNumber)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_LineNumber)(
            ICoreWebView2ScriptException *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptException, get_ColumnNumber)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ColumnNumber)(
            ICoreWebView2ScriptException *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptException, get_Name)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Name)(
            ICoreWebView2ScriptException *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptException, get_Message)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Message)(
            ICoreWebView2ScriptException *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ScriptException, get_ToJson)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ToJson)(
            ICoreWebView2ScriptException *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2ScriptExceptionVtbl;

    interface ICoreWebView2ScriptException
    {
        CONST_VTBL struct ICoreWebView2ScriptExceptionVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ScriptException_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ScriptException_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ScriptException_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ScriptException_get_LineNumber(This, value) \
    ((This)->lpVtbl->get_LineNumber(This, value))

#define ICoreWebView2ScriptException_get_ColumnNumber(This, value) \
    ((This)->lpVtbl->get_ColumnNumber(This, value))

#define ICoreWebView2ScriptException_get_Name(This, value) \
    ((This)->lpVtbl->get_Name(This, value))

#define ICoreWebView2ScriptException_get_Message(This, value) \
    ((This)->lpVtbl->get_Message(This, value))

#define ICoreWebView2ScriptException_get_ToJson(This, value) \
    ((This)->lpVtbl->get_ToJson(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ScriptException_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2ServerCertificateErrorDetectedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2ServerCertificateErrorDetectedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2ServerCertificateErrorDetectedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2ServerCertificateErrorDetectedEventArgs = {0x012193ED, 0x7C13, 0x48FF, {0x96, 0x9D, 0xA8, 0x4C, 0x1F, 0x43, 0x2A, 0x14}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("012193ED-7C13-48FF-969D-A84C1F432A14")
    ICoreWebView2ServerCertificateErrorDetectedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ErrorStatus(
            /* [retval][out] */ COREWEBVIEW2_WEB_ERROR_STATUS * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RequestUri(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ServerCertificate(
            /* [retval][out] */ ICoreWebView2Certificate * *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Action(
            /* [retval][out] */ COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Action(
            /* [in] */ COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION value) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2ServerCertificateErrorDetectedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2ServerCertificateErrorDetectedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2ServerCertificateErrorDetectedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2ServerCertificateErrorDetectedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2ServerCertificateErrorDetectedEventArgs, get_ErrorStatus)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ErrorStatus)(
            ICoreWebView2ServerCertificateErrorDetectedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_WEB_ERROR_STATUS *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ServerCertificateErrorDetectedEventArgs, get_RequestUri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RequestUri)(
            ICoreWebView2ServerCertificateErrorDetectedEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ServerCertificateErrorDetectedEventArgs, get_ServerCertificate)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ServerCertificate)(
            ICoreWebView2ServerCertificateErrorDetectedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Certificate **value);

        DECLSPEC_XFGVIRT(ICoreWebView2ServerCertificateErrorDetectedEventArgs, get_Action)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Action)(
            ICoreWebView2ServerCertificateErrorDetectedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION *value);

        DECLSPEC_XFGVIRT(ICoreWebView2ServerCertificateErrorDetectedEventArgs, put_Action)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Action)(
            ICoreWebView2ServerCertificateErrorDetectedEventArgs *This,
            /* [in] */ COREWEBVIEW2_SERVER_CERTIFICATE_ERROR_ACTION value);

        DECLSPEC_XFGVIRT(ICoreWebView2ServerCertificateErrorDetectedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2ServerCertificateErrorDetectedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        END_INTERFACE
    } ICoreWebView2ServerCertificateErrorDetectedEventArgsVtbl;

    interface ICoreWebView2ServerCertificateErrorDetectedEventArgs
    {
        CONST_VTBL struct ICoreWebView2ServerCertificateErrorDetectedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2ServerCertificateErrorDetectedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2ServerCertificateErrorDetectedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2ServerCertificateErrorDetectedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2ServerCertificateErrorDetectedEventArgs_get_ErrorStatus(This, value) \
    ((This)->lpVtbl->get_ErrorStatus(This, value))

#define ICoreWebView2ServerCertificateErrorDetectedEventArgs_get_RequestUri(This, value) \
    ((This)->lpVtbl->get_RequestUri(This, value))

#define ICoreWebView2ServerCertificateErrorDetectedEventArgs_get_ServerCertificate(This, value) \
    ((This)->lpVtbl->get_ServerCertificate(This, value))

#define ICoreWebView2ServerCertificateErrorDetectedEventArgs_get_Action(This, value) \
    ((This)->lpVtbl->get_Action(This, value))

#define ICoreWebView2ServerCertificateErrorDetectedEventArgs_put_Action(This, value) \
    ((This)->lpVtbl->put_Action(This, value))

#define ICoreWebView2ServerCertificateErrorDetectedEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2ServerCertificateErrorDetectedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Settings_INTERFACE_DEFINED__
#define __ICoreWebView2Settings_INTERFACE_DEFINED__

    /* interface ICoreWebView2Settings */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Settings = {0xe562e4f0, 0xd7fa, 0x43ac, {0x8d, 0x71, 0xc0, 0x51, 0x50, 0x49, 0x9f, 0x00}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("e562e4f0-d7fa-43ac-8d71-c05150499f00")
    ICoreWebView2Settings : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsScriptEnabled(
            /* [retval][out] */ BOOL * isScriptEnabled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsScriptEnabled(
            /* [in] */ BOOL isScriptEnabled) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsWebMessageEnabled(
            /* [retval][out] */ BOOL * isWebMessageEnabled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsWebMessageEnabled(
            /* [in] */ BOOL isWebMessageEnabled) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AreDefaultScriptDialogsEnabled(
            /* [retval][out] */ BOOL * areDefaultScriptDialogsEnabled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AreDefaultScriptDialogsEnabled(
            /* [in] */ BOOL areDefaultScriptDialogsEnabled) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsStatusBarEnabled(
            /* [retval][out] */ BOOL * isStatusBarEnabled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsStatusBarEnabled(
            /* [in] */ BOOL isStatusBarEnabled) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AreDevToolsEnabled(
            /* [retval][out] */ BOOL * areDevToolsEnabled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AreDevToolsEnabled(
            /* [in] */ BOOL areDevToolsEnabled) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AreDefaultContextMenusEnabled(
            /* [retval][out] */ BOOL * enabled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AreDefaultContextMenusEnabled(
            /* [in] */ BOOL enabled) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AreHostObjectsAllowed(
            /* [retval][out] */ BOOL * allowed) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AreHostObjectsAllowed(
            /* [in] */ BOOL allowed) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsZoomControlEnabled(
            /* [retval][out] */ BOOL * enabled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsZoomControlEnabled(
            /* [in] */ BOOL enabled) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsBuiltInErrorPageEnabled(
            /* [retval][out] */ BOOL * enabled) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsBuiltInErrorPageEnabled(
            /* [in] */ BOOL enabled) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2SettingsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Settings *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Settings *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Settings *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsScriptEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsScriptEnabled)(
            ICoreWebView2Settings *This,
            /* [retval][out] */ BOOL *isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsScriptEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsScriptEnabled)(
            ICoreWebView2Settings *This,
            /* [in] */ BOOL isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsWebMessageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsWebMessageEnabled)(
            ICoreWebView2Settings *This,
            /* [retval][out] */ BOOL *isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsWebMessageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsWebMessageEnabled)(
            ICoreWebView2Settings *This,
            /* [in] */ BOOL isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultScriptDialogsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings *This,
            /* [retval][out] */ BOOL *areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultScriptDialogsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings *This,
            /* [in] */ BOOL areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsStatusBarEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsStatusBarEnabled)(
            ICoreWebView2Settings *This,
            /* [retval][out] */ BOOL *isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsStatusBarEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsStatusBarEnabled)(
            ICoreWebView2Settings *This,
            /* [in] */ BOOL isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDevToolsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDevToolsEnabled)(
            ICoreWebView2Settings *This,
            /* [retval][out] */ BOOL *areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDevToolsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDevToolsEnabled)(
            ICoreWebView2Settings *This,
            /* [in] */ BOOL areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultContextMenusEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultContextMenusEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreHostObjectsAllowed)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreHostObjectsAllowed)(
            ICoreWebView2Settings *This,
            /* [retval][out] */ BOOL *allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreHostObjectsAllowed)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreHostObjectsAllowed)(
            ICoreWebView2Settings *This,
            /* [in] */ BOOL allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsZoomControlEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsZoomControlEnabled)(
            ICoreWebView2Settings *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsZoomControlEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsZoomControlEnabled)(
            ICoreWebView2Settings *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsBuiltInErrorPageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsBuiltInErrorPageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings *This,
            /* [in] */ BOOL enabled);

        END_INTERFACE
    } ICoreWebView2SettingsVtbl;

    interface ICoreWebView2Settings
    {
        CONST_VTBL struct ICoreWebView2SettingsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Settings_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Settings_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Settings_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Settings_get_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->get_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings_put_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->put_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings_get_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->get_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings_put_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->put_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings_get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings_put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings_get_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->get_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings_put_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->put_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings_get_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->get_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings_put_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->put_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings_get_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->get_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings_put_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->put_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings_get_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->get_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings_put_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->put_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings_get_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings_put_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings_get_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings_put_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsBuiltInErrorPageEnabled(This, enabled))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Settings_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Settings2_INTERFACE_DEFINED__
#define __ICoreWebView2Settings2_INTERFACE_DEFINED__

    /* interface ICoreWebView2Settings2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Settings2 = {0xee9a0f68, 0xf46c, 0x4e32, {0xac, 0x23, 0xef, 0x8c, 0xac, 0x22, 0x4d, 0x2a}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("ee9a0f68-f46c-4e32-ac23-ef8cac224d2a")
    ICoreWebView2Settings2 : public ICoreWebView2Settings
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UserAgent(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_UserAgent(
            /* [in] */ LPCWSTR value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Settings2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Settings2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Settings2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Settings2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsScriptEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsScriptEnabled)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ BOOL *isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsScriptEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsScriptEnabled)(
            ICoreWebView2Settings2 *This,
            /* [in] */ BOOL isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsWebMessageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsWebMessageEnabled)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ BOOL *isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsWebMessageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsWebMessageEnabled)(
            ICoreWebView2Settings2 *This,
            /* [in] */ BOOL isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultScriptDialogsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ BOOL *areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultScriptDialogsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings2 *This,
            /* [in] */ BOOL areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsStatusBarEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsStatusBarEnabled)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ BOOL *isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsStatusBarEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsStatusBarEnabled)(
            ICoreWebView2Settings2 *This,
            /* [in] */ BOOL isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDevToolsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDevToolsEnabled)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ BOOL *areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDevToolsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDevToolsEnabled)(
            ICoreWebView2Settings2 *This,
            /* [in] */ BOOL areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultContextMenusEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultContextMenusEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings2 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreHostObjectsAllowed)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreHostObjectsAllowed)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ BOOL *allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreHostObjectsAllowed)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreHostObjectsAllowed)(
            ICoreWebView2Settings2 *This,
            /* [in] */ BOOL allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsZoomControlEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsZoomControlEnabled)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsZoomControlEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsZoomControlEnabled)(
            ICoreWebView2Settings2 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsBuiltInErrorPageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsBuiltInErrorPageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings2 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, get_UserAgent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserAgent)(
            ICoreWebView2Settings2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, put_UserAgent)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_UserAgent)(
            ICoreWebView2Settings2 *This,
            /* [in] */ LPCWSTR value);

        END_INTERFACE
    } ICoreWebView2Settings2Vtbl;

    interface ICoreWebView2Settings2
    {
        CONST_VTBL struct ICoreWebView2Settings2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Settings2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Settings2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Settings2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Settings2_get_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->get_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings2_put_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->put_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings2_get_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->get_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings2_put_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->put_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings2_get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings2_put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings2_get_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->get_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings2_put_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->put_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings2_get_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->get_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings2_put_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->put_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings2_get_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->get_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings2_put_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->put_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings2_get_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->get_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings2_put_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->put_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings2_get_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings2_put_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings2_get_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings2_put_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings2_get_UserAgent(This, value) \
    ((This)->lpVtbl->get_UserAgent(This, value))

#define ICoreWebView2Settings2_put_UserAgent(This, value) \
    ((This)->lpVtbl->put_UserAgent(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Settings2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Settings3_INTERFACE_DEFINED__
#define __ICoreWebView2Settings3_INTERFACE_DEFINED__

    /* interface ICoreWebView2Settings3 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Settings3 = {0xfdb5ab74, 0xaf33, 0x4854, {0x84, 0xf0, 0x0a, 0x63, 0x1d, 0xeb, 0x5e, 0xba}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("fdb5ab74-af33-4854-84f0-0a631deb5eba")
    ICoreWebView2Settings3 : public ICoreWebView2Settings2
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AreBrowserAcceleratorKeysEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_AreBrowserAcceleratorKeysEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Settings3Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Settings3 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Settings3 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Settings3 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsScriptEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsScriptEnabled)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsScriptEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsScriptEnabled)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsWebMessageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsWebMessageEnabled)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsWebMessageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsWebMessageEnabled)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultScriptDialogsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultScriptDialogsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsStatusBarEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsStatusBarEnabled)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsStatusBarEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsStatusBarEnabled)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDevToolsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDevToolsEnabled)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDevToolsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDevToolsEnabled)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultContextMenusEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultContextMenusEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreHostObjectsAllowed)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreHostObjectsAllowed)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreHostObjectsAllowed)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreHostObjectsAllowed)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsZoomControlEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsZoomControlEnabled)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsZoomControlEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsZoomControlEnabled)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsBuiltInErrorPageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsBuiltInErrorPageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, get_UserAgent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserAgent)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, put_UserAgent)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_UserAgent)(
            ICoreWebView2Settings3 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, get_AreBrowserAcceleratorKeysEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings3 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, put_AreBrowserAcceleratorKeysEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings3 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2Settings3Vtbl;

    interface ICoreWebView2Settings3
    {
        CONST_VTBL struct ICoreWebView2Settings3Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Settings3_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Settings3_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Settings3_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Settings3_get_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->get_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings3_put_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->put_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings3_get_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->get_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings3_put_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->put_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings3_get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings3_put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings3_get_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->get_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings3_put_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->put_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings3_get_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->get_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings3_put_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->put_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings3_get_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->get_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings3_put_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->put_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings3_get_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->get_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings3_put_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->put_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings3_get_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings3_put_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings3_get_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings3_put_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings3_get_UserAgent(This, value) \
    ((This)->lpVtbl->get_UserAgent(This, value))

#define ICoreWebView2Settings3_put_UserAgent(This, value) \
    ((This)->lpVtbl->put_UserAgent(This, value))

#define ICoreWebView2Settings3_get_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->get_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings3_put_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->put_AreBrowserAcceleratorKeysEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Settings3_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Settings4_INTERFACE_DEFINED__
#define __ICoreWebView2Settings4_INTERFACE_DEFINED__

    /* interface ICoreWebView2Settings4 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Settings4 = {0xcb56846c, 0x4168, 0x4d53, {0xb0, 0x4f, 0x03, 0xb6, 0xd6, 0x79, 0x6f, 0xf2}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("cb56846c-4168-4d53-b04f-03b6d6796ff2")
    ICoreWebView2Settings4 : public ICoreWebView2Settings3
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsPasswordAutosaveEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsPasswordAutosaveEnabled(
            /* [in] */ BOOL value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsGeneralAutofillEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsGeneralAutofillEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Settings4Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Settings4 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Settings4 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Settings4 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsScriptEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsScriptEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsScriptEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsScriptEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsWebMessageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsWebMessageEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsWebMessageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsWebMessageEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultScriptDialogsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultScriptDialogsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsStatusBarEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsStatusBarEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsStatusBarEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsStatusBarEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDevToolsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDevToolsEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDevToolsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDevToolsEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultContextMenusEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultContextMenusEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreHostObjectsAllowed)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreHostObjectsAllowed)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreHostObjectsAllowed)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreHostObjectsAllowed)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsZoomControlEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsZoomControlEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsZoomControlEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsZoomControlEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsBuiltInErrorPageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsBuiltInErrorPageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, get_UserAgent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserAgent)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, put_UserAgent)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_UserAgent)(
            ICoreWebView2Settings4 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, get_AreBrowserAcceleratorKeysEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, put_AreBrowserAcceleratorKeysEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsPasswordAutosaveEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsPasswordAutosaveEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsGeneralAutofillEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings4 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsGeneralAutofillEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings4 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2Settings4Vtbl;

    interface ICoreWebView2Settings4
    {
        CONST_VTBL struct ICoreWebView2Settings4Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Settings4_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Settings4_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Settings4_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Settings4_get_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->get_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings4_put_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->put_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings4_get_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->get_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings4_put_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->put_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings4_get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings4_put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings4_get_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->get_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings4_put_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->put_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings4_get_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->get_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings4_put_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->put_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings4_get_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->get_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings4_put_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->put_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings4_get_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->get_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings4_put_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->put_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings4_get_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings4_put_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings4_get_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings4_put_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings4_get_UserAgent(This, value) \
    ((This)->lpVtbl->get_UserAgent(This, value))

#define ICoreWebView2Settings4_put_UserAgent(This, value) \
    ((This)->lpVtbl->put_UserAgent(This, value))

#define ICoreWebView2Settings4_get_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->get_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings4_put_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->put_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings4_get_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->get_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings4_put_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->put_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings4_get_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->get_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings4_put_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->put_IsGeneralAutofillEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Settings4_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Settings5_INTERFACE_DEFINED__
#define __ICoreWebView2Settings5_INTERFACE_DEFINED__

    /* interface ICoreWebView2Settings5 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Settings5 = {0x183e7052, 0x1d03, 0x43a0, {0xab, 0x99, 0x98, 0xe0, 0x43, 0xb6, 0x6b, 0x39}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("183e7052-1d03-43a0-ab99-98e043b66b39")
    ICoreWebView2Settings5 : public ICoreWebView2Settings4
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsPinchZoomEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsPinchZoomEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Settings5Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Settings5 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Settings5 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Settings5 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsScriptEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsScriptEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsScriptEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsScriptEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsWebMessageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsWebMessageEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsWebMessageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsWebMessageEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultScriptDialogsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultScriptDialogsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsStatusBarEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsStatusBarEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsStatusBarEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsStatusBarEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDevToolsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDevToolsEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDevToolsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDevToolsEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultContextMenusEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultContextMenusEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreHostObjectsAllowed)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreHostObjectsAllowed)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreHostObjectsAllowed)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreHostObjectsAllowed)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsZoomControlEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsZoomControlEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsZoomControlEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsZoomControlEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsBuiltInErrorPageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsBuiltInErrorPageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, get_UserAgent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserAgent)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, put_UserAgent)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_UserAgent)(
            ICoreWebView2Settings5 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, get_AreBrowserAcceleratorKeysEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, put_AreBrowserAcceleratorKeysEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsPasswordAutosaveEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsPasswordAutosaveEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsGeneralAutofillEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsGeneralAutofillEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, get_IsPinchZoomEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPinchZoomEnabled)(
            ICoreWebView2Settings5 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, put_IsPinchZoomEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPinchZoomEnabled)(
            ICoreWebView2Settings5 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2Settings5Vtbl;

    interface ICoreWebView2Settings5
    {
        CONST_VTBL struct ICoreWebView2Settings5Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Settings5_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Settings5_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Settings5_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Settings5_get_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->get_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings5_put_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->put_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings5_get_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->get_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings5_put_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->put_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings5_get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings5_put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings5_get_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->get_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings5_put_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->put_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings5_get_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->get_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings5_put_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->put_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings5_get_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->get_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings5_put_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->put_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings5_get_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->get_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings5_put_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->put_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings5_get_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings5_put_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings5_get_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings5_put_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings5_get_UserAgent(This, value) \
    ((This)->lpVtbl->get_UserAgent(This, value))

#define ICoreWebView2Settings5_put_UserAgent(This, value) \
    ((This)->lpVtbl->put_UserAgent(This, value))

#define ICoreWebView2Settings5_get_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->get_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings5_put_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->put_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings5_get_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->get_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings5_put_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->put_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings5_get_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->get_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings5_put_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->put_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings5_get_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->get_IsPinchZoomEnabled(This, value))

#define ICoreWebView2Settings5_put_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->put_IsPinchZoomEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Settings5_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Settings6_INTERFACE_DEFINED__
#define __ICoreWebView2Settings6_INTERFACE_DEFINED__

    /* interface ICoreWebView2Settings6 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Settings6 = {0x11cb3acd, 0x9bc8, 0x43b8, {0x83, 0xbf, 0xf4, 0x07, 0x53, 0x71, 0x4f, 0x87}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("11cb3acd-9bc8-43b8-83bf-f40753714f87")
    ICoreWebView2Settings6 : public ICoreWebView2Settings5
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsSwipeNavigationEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsSwipeNavigationEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Settings6Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Settings6 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Settings6 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Settings6 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsScriptEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsScriptEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsScriptEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsScriptEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsWebMessageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsWebMessageEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsWebMessageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsWebMessageEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultScriptDialogsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultScriptDialogsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsStatusBarEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsStatusBarEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsStatusBarEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsStatusBarEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDevToolsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDevToolsEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDevToolsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDevToolsEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultContextMenusEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultContextMenusEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreHostObjectsAllowed)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreHostObjectsAllowed)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreHostObjectsAllowed)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreHostObjectsAllowed)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsZoomControlEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsZoomControlEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsZoomControlEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsZoomControlEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsBuiltInErrorPageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsBuiltInErrorPageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, get_UserAgent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserAgent)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, put_UserAgent)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_UserAgent)(
            ICoreWebView2Settings6 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, get_AreBrowserAcceleratorKeysEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, put_AreBrowserAcceleratorKeysEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsPasswordAutosaveEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsPasswordAutosaveEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsGeneralAutofillEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsGeneralAutofillEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, get_IsPinchZoomEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPinchZoomEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, put_IsPinchZoomEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPinchZoomEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings6, get_IsSwipeNavigationEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSwipeNavigationEnabled)(
            ICoreWebView2Settings6 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings6, put_IsSwipeNavigationEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsSwipeNavigationEnabled)(
            ICoreWebView2Settings6 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2Settings6Vtbl;

    interface ICoreWebView2Settings6
    {
        CONST_VTBL struct ICoreWebView2Settings6Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Settings6_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Settings6_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Settings6_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Settings6_get_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->get_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings6_put_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->put_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings6_get_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->get_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings6_put_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->put_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings6_get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings6_put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings6_get_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->get_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings6_put_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->put_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings6_get_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->get_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings6_put_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->put_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings6_get_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->get_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings6_put_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->put_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings6_get_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->get_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings6_put_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->put_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings6_get_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings6_put_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings6_get_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings6_put_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings6_get_UserAgent(This, value) \
    ((This)->lpVtbl->get_UserAgent(This, value))

#define ICoreWebView2Settings6_put_UserAgent(This, value) \
    ((This)->lpVtbl->put_UserAgent(This, value))

#define ICoreWebView2Settings6_get_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->get_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings6_put_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->put_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings6_get_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->get_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings6_put_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->put_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings6_get_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->get_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings6_put_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->put_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings6_get_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->get_IsPinchZoomEnabled(This, value))

#define ICoreWebView2Settings6_put_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->put_IsPinchZoomEnabled(This, value))

#define ICoreWebView2Settings6_get_IsSwipeNavigationEnabled(This, value) \
    ((This)->lpVtbl->get_IsSwipeNavigationEnabled(This, value))

#define ICoreWebView2Settings6_put_IsSwipeNavigationEnabled(This, value) \
    ((This)->lpVtbl->put_IsSwipeNavigationEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Settings6_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Settings7_INTERFACE_DEFINED__
#define __ICoreWebView2Settings7_INTERFACE_DEFINED__

    /* interface ICoreWebView2Settings7 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Settings7 = {0x488dc902, 0x35ef, 0x42d2, {0xbc, 0x7d, 0x94, 0xb6, 0x5c, 0x4b, 0xc4, 0x9c}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("488dc902-35ef-42d2-bc7d-94b65c4bc49c")
    ICoreWebView2Settings7 : public ICoreWebView2Settings6
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HiddenPdfToolbarItems(
            /* [retval][out] */ COREWEBVIEW2_PDF_TOOLBAR_ITEMS * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_HiddenPdfToolbarItems(
            /* [in] */ COREWEBVIEW2_PDF_TOOLBAR_ITEMS value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Settings7Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Settings7 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Settings7 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Settings7 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsScriptEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsScriptEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsScriptEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsScriptEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsWebMessageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsWebMessageEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsWebMessageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsWebMessageEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultScriptDialogsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultScriptDialogsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsStatusBarEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsStatusBarEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsStatusBarEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsStatusBarEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDevToolsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDevToolsEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDevToolsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDevToolsEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultContextMenusEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultContextMenusEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreHostObjectsAllowed)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreHostObjectsAllowed)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreHostObjectsAllowed)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreHostObjectsAllowed)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsZoomControlEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsZoomControlEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsZoomControlEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsZoomControlEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsBuiltInErrorPageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsBuiltInErrorPageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, get_UserAgent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserAgent)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, put_UserAgent)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_UserAgent)(
            ICoreWebView2Settings7 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, get_AreBrowserAcceleratorKeysEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, put_AreBrowserAcceleratorKeysEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsPasswordAutosaveEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsPasswordAutosaveEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsGeneralAutofillEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsGeneralAutofillEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, get_IsPinchZoomEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPinchZoomEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, put_IsPinchZoomEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPinchZoomEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings6, get_IsSwipeNavigationEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSwipeNavigationEnabled)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings6, put_IsSwipeNavigationEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsSwipeNavigationEnabled)(
            ICoreWebView2Settings7 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings7, get_HiddenPdfToolbarItems)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HiddenPdfToolbarItems)(
            ICoreWebView2Settings7 *This,
            /* [retval][out] */ COREWEBVIEW2_PDF_TOOLBAR_ITEMS *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings7, put_HiddenPdfToolbarItems)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_HiddenPdfToolbarItems)(
            ICoreWebView2Settings7 *This,
            /* [in] */ COREWEBVIEW2_PDF_TOOLBAR_ITEMS value);

        END_INTERFACE
    } ICoreWebView2Settings7Vtbl;

    interface ICoreWebView2Settings7
    {
        CONST_VTBL struct ICoreWebView2Settings7Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Settings7_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Settings7_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Settings7_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Settings7_get_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->get_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings7_put_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->put_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings7_get_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->get_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings7_put_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->put_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings7_get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings7_put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings7_get_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->get_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings7_put_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->put_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings7_get_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->get_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings7_put_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->put_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings7_get_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->get_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings7_put_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->put_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings7_get_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->get_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings7_put_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->put_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings7_get_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings7_put_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings7_get_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings7_put_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings7_get_UserAgent(This, value) \
    ((This)->lpVtbl->get_UserAgent(This, value))

#define ICoreWebView2Settings7_put_UserAgent(This, value) \
    ((This)->lpVtbl->put_UserAgent(This, value))

#define ICoreWebView2Settings7_get_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->get_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings7_put_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->put_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings7_get_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->get_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings7_put_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->put_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings7_get_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->get_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings7_put_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->put_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings7_get_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->get_IsPinchZoomEnabled(This, value))

#define ICoreWebView2Settings7_put_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->put_IsPinchZoomEnabled(This, value))

#define ICoreWebView2Settings7_get_IsSwipeNavigationEnabled(This, value) \
    ((This)->lpVtbl->get_IsSwipeNavigationEnabled(This, value))

#define ICoreWebView2Settings7_put_IsSwipeNavigationEnabled(This, value) \
    ((This)->lpVtbl->put_IsSwipeNavigationEnabled(This, value))

#define ICoreWebView2Settings7_get_HiddenPdfToolbarItems(This, value) \
    ((This)->lpVtbl->get_HiddenPdfToolbarItems(This, value))

#define ICoreWebView2Settings7_put_HiddenPdfToolbarItems(This, value) \
    ((This)->lpVtbl->put_HiddenPdfToolbarItems(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Settings7_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Settings8_INTERFACE_DEFINED__
#define __ICoreWebView2Settings8_INTERFACE_DEFINED__

    /* interface ICoreWebView2Settings8 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Settings8 = {0x9e6b0e8f, 0x86ad, 0x4e81, {0x81, 0x47, 0xa9, 0xb5, 0xed, 0xb6, 0x86, 0x50}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9e6b0e8f-86ad-4e81-8147-a9b5edb68650")
    ICoreWebView2Settings8 : public ICoreWebView2Settings7
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsReputationCheckingRequired(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsReputationCheckingRequired(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Settings8Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Settings8 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Settings8 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Settings8 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsScriptEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsScriptEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsScriptEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsScriptEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsWebMessageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsWebMessageEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsWebMessageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsWebMessageEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultScriptDialogsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultScriptDialogsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsStatusBarEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsStatusBarEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsStatusBarEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsStatusBarEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDevToolsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDevToolsEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDevToolsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDevToolsEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultContextMenusEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultContextMenusEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreHostObjectsAllowed)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreHostObjectsAllowed)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreHostObjectsAllowed)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreHostObjectsAllowed)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsZoomControlEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsZoomControlEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsZoomControlEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsZoomControlEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsBuiltInErrorPageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsBuiltInErrorPageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, get_UserAgent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserAgent)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, put_UserAgent)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_UserAgent)(
            ICoreWebView2Settings8 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, get_AreBrowserAcceleratorKeysEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, put_AreBrowserAcceleratorKeysEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsPasswordAutosaveEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsPasswordAutosaveEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsGeneralAutofillEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsGeneralAutofillEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, get_IsPinchZoomEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPinchZoomEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, put_IsPinchZoomEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPinchZoomEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings6, get_IsSwipeNavigationEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSwipeNavigationEnabled)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings6, put_IsSwipeNavigationEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsSwipeNavigationEnabled)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings7, get_HiddenPdfToolbarItems)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HiddenPdfToolbarItems)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ COREWEBVIEW2_PDF_TOOLBAR_ITEMS *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings7, put_HiddenPdfToolbarItems)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_HiddenPdfToolbarItems)(
            ICoreWebView2Settings8 *This,
            /* [in] */ COREWEBVIEW2_PDF_TOOLBAR_ITEMS value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings8, get_IsReputationCheckingRequired)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsReputationCheckingRequired)(
            ICoreWebView2Settings8 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings8, put_IsReputationCheckingRequired)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsReputationCheckingRequired)(
            ICoreWebView2Settings8 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2Settings8Vtbl;

    interface ICoreWebView2Settings8
    {
        CONST_VTBL struct ICoreWebView2Settings8Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Settings8_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Settings8_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Settings8_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Settings8_get_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->get_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings8_put_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->put_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings8_get_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->get_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings8_put_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->put_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings8_get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings8_put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings8_get_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->get_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings8_put_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->put_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings8_get_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->get_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings8_put_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->put_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings8_get_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->get_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings8_put_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->put_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings8_get_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->get_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings8_put_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->put_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings8_get_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings8_put_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings8_get_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings8_put_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings8_get_UserAgent(This, value) \
    ((This)->lpVtbl->get_UserAgent(This, value))

#define ICoreWebView2Settings8_put_UserAgent(This, value) \
    ((This)->lpVtbl->put_UserAgent(This, value))

#define ICoreWebView2Settings8_get_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->get_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings8_put_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->put_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings8_get_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->get_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings8_put_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->put_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings8_get_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->get_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings8_put_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->put_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings8_get_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->get_IsPinchZoomEnabled(This, value))

#define ICoreWebView2Settings8_put_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->put_IsPinchZoomEnabled(This, value))

#define ICoreWebView2Settings8_get_IsSwipeNavigationEnabled(This, value) \
    ((This)->lpVtbl->get_IsSwipeNavigationEnabled(This, value))

#define ICoreWebView2Settings8_put_IsSwipeNavigationEnabled(This, value) \
    ((This)->lpVtbl->put_IsSwipeNavigationEnabled(This, value))

#define ICoreWebView2Settings8_get_HiddenPdfToolbarItems(This, value) \
    ((This)->lpVtbl->get_HiddenPdfToolbarItems(This, value))

#define ICoreWebView2Settings8_put_HiddenPdfToolbarItems(This, value) \
    ((This)->lpVtbl->put_HiddenPdfToolbarItems(This, value))

#define ICoreWebView2Settings8_get_IsReputationCheckingRequired(This, value) \
    ((This)->lpVtbl->get_IsReputationCheckingRequired(This, value))

#define ICoreWebView2Settings8_put_IsReputationCheckingRequired(This, value) \
    ((This)->lpVtbl->put_IsReputationCheckingRequired(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Settings8_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2Settings9_INTERFACE_DEFINED__
#define __ICoreWebView2Settings9_INTERFACE_DEFINED__

    /* interface ICoreWebView2Settings9 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2Settings9 = {0x0528a73b, 0xe92d, 0x49f4, {0x92, 0x7a, 0xe5, 0x47, 0xdd, 0xda, 0xa3, 0x7d}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0528a73b-e92d-49f4-927a-e547dddaa37d")
    ICoreWebView2Settings9 : public ICoreWebView2Settings8
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsNonClientRegionSupportEnabled(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_IsNonClientRegionSupportEnabled(
            /* [in] */ BOOL value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2Settings9Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2Settings9 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2Settings9 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2Settings9 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsScriptEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsScriptEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsScriptEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsScriptEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL isScriptEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsWebMessageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsWebMessageEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsWebMessageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsWebMessageEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL isWebMessageEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultScriptDialogsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultScriptDialogsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultScriptDialogsEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL areDefaultScriptDialogsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsStatusBarEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsStatusBarEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsStatusBarEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsStatusBarEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL isStatusBarEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDevToolsEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDevToolsEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDevToolsEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDevToolsEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL areDevToolsEnabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreDefaultContextMenusEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreDefaultContextMenusEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreDefaultContextMenusEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_AreHostObjectsAllowed)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreHostObjectsAllowed)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_AreHostObjectsAllowed)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreHostObjectsAllowed)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL allowed);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsZoomControlEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsZoomControlEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsZoomControlEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsZoomControlEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, get_IsBuiltInErrorPageEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings, put_IsBuiltInErrorPageEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsBuiltInErrorPageEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL enabled);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, get_UserAgent)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_UserAgent)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings2, put_UserAgent)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_UserAgent)(
            ICoreWebView2Settings9 *This,
            /* [in] */ LPCWSTR value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, get_AreBrowserAcceleratorKeysEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings3, put_AreBrowserAcceleratorKeysEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_AreBrowserAcceleratorKeysEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsPasswordAutosaveEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsPasswordAutosaveEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPasswordAutosaveEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, get_IsGeneralAutofillEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings4, put_IsGeneralAutofillEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsGeneralAutofillEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, get_IsPinchZoomEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsPinchZoomEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings5, put_IsPinchZoomEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsPinchZoomEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings6, get_IsSwipeNavigationEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsSwipeNavigationEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings6, put_IsSwipeNavigationEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsSwipeNavigationEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings7, get_HiddenPdfToolbarItems)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HiddenPdfToolbarItems)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ COREWEBVIEW2_PDF_TOOLBAR_ITEMS *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings7, put_HiddenPdfToolbarItems)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_HiddenPdfToolbarItems)(
            ICoreWebView2Settings9 *This,
            /* [in] */ COREWEBVIEW2_PDF_TOOLBAR_ITEMS value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings8, get_IsReputationCheckingRequired)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsReputationCheckingRequired)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings8, put_IsReputationCheckingRequired)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsReputationCheckingRequired)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings9, get_IsNonClientRegionSupportEnabled)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsNonClientRegionSupportEnabled)(
            ICoreWebView2Settings9 *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2Settings9, put_IsNonClientRegionSupportEnabled)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_IsNonClientRegionSupportEnabled)(
            ICoreWebView2Settings9 *This,
            /* [in] */ BOOL value);

        END_INTERFACE
    } ICoreWebView2Settings9Vtbl;

    interface ICoreWebView2Settings9
    {
        CONST_VTBL struct ICoreWebView2Settings9Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2Settings9_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2Settings9_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2Settings9_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2Settings9_get_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->get_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings9_put_IsScriptEnabled(This, isScriptEnabled) \
    ((This)->lpVtbl->put_IsScriptEnabled(This, isScriptEnabled))

#define ICoreWebView2Settings9_get_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->get_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings9_put_IsWebMessageEnabled(This, isWebMessageEnabled) \
    ((This)->lpVtbl->put_IsWebMessageEnabled(This, isWebMessageEnabled))

#define ICoreWebView2Settings9_get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->get_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings9_put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled) \
    ((This)->lpVtbl->put_AreDefaultScriptDialogsEnabled(This, areDefaultScriptDialogsEnabled))

#define ICoreWebView2Settings9_get_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->get_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings9_put_IsStatusBarEnabled(This, isStatusBarEnabled) \
    ((This)->lpVtbl->put_IsStatusBarEnabled(This, isStatusBarEnabled))

#define ICoreWebView2Settings9_get_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->get_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings9_put_AreDevToolsEnabled(This, areDevToolsEnabled) \
    ((This)->lpVtbl->put_AreDevToolsEnabled(This, areDevToolsEnabled))

#define ICoreWebView2Settings9_get_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->get_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings9_put_AreDefaultContextMenusEnabled(This, enabled) \
    ((This)->lpVtbl->put_AreDefaultContextMenusEnabled(This, enabled))

#define ICoreWebView2Settings9_get_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->get_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings9_put_AreHostObjectsAllowed(This, allowed) \
    ((This)->lpVtbl->put_AreHostObjectsAllowed(This, allowed))

#define ICoreWebView2Settings9_get_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings9_put_IsZoomControlEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsZoomControlEnabled(This, enabled))

#define ICoreWebView2Settings9_get_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->get_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings9_put_IsBuiltInErrorPageEnabled(This, enabled) \
    ((This)->lpVtbl->put_IsBuiltInErrorPageEnabled(This, enabled))

#define ICoreWebView2Settings9_get_UserAgent(This, value) \
    ((This)->lpVtbl->get_UserAgent(This, value))

#define ICoreWebView2Settings9_put_UserAgent(This, value) \
    ((This)->lpVtbl->put_UserAgent(This, value))

#define ICoreWebView2Settings9_get_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->get_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings9_put_AreBrowserAcceleratorKeysEnabled(This, value) \
    ((This)->lpVtbl->put_AreBrowserAcceleratorKeysEnabled(This, value))

#define ICoreWebView2Settings9_get_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->get_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings9_put_IsPasswordAutosaveEnabled(This, value) \
    ((This)->lpVtbl->put_IsPasswordAutosaveEnabled(This, value))

#define ICoreWebView2Settings9_get_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->get_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings9_put_IsGeneralAutofillEnabled(This, value) \
    ((This)->lpVtbl->put_IsGeneralAutofillEnabled(This, value))

#define ICoreWebView2Settings9_get_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->get_IsPinchZoomEnabled(This, value))

#define ICoreWebView2Settings9_put_IsPinchZoomEnabled(This, value) \
    ((This)->lpVtbl->put_IsPinchZoomEnabled(This, value))

#define ICoreWebView2Settings9_get_IsSwipeNavigationEnabled(This, value) \
    ((This)->lpVtbl->get_IsSwipeNavigationEnabled(This, value))

#define ICoreWebView2Settings9_put_IsSwipeNavigationEnabled(This, value) \
    ((This)->lpVtbl->put_IsSwipeNavigationEnabled(This, value))

#define ICoreWebView2Settings9_get_HiddenPdfToolbarItems(This, value) \
    ((This)->lpVtbl->get_HiddenPdfToolbarItems(This, value))

#define ICoreWebView2Settings9_put_HiddenPdfToolbarItems(This, value) \
    ((This)->lpVtbl->put_HiddenPdfToolbarItems(This, value))

#define ICoreWebView2Settings9_get_IsReputationCheckingRequired(This, value) \
    ((This)->lpVtbl->get_IsReputationCheckingRequired(This, value))

#define ICoreWebView2Settings9_put_IsReputationCheckingRequired(This, value) \
    ((This)->lpVtbl->put_IsReputationCheckingRequired(This, value))

#define ICoreWebView2Settings9_get_IsNonClientRegionSupportEnabled(This, value) \
    ((This)->lpVtbl->get_IsNonClientRegionSupportEnabled(This, value))

#define ICoreWebView2Settings9_put_IsNonClientRegionSupportEnabled(This, value) \
    ((This)->lpVtbl->put_IsNonClientRegionSupportEnabled(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2Settings9_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2SharedBuffer_INTERFACE_DEFINED__
#define __ICoreWebView2SharedBuffer_INTERFACE_DEFINED__

    /* interface ICoreWebView2SharedBuffer */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2SharedBuffer = {0xB747A495, 0x0C6F, 0x449E, {0x97, 0xB8, 0x2F, 0x81, 0xE9, 0xD6, 0xAB, 0x43}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("B747A495-0C6F-449E-97B8-2F81E9D6AB43")
    ICoreWebView2SharedBuffer : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Size(
            /* [retval][out] */ UINT64 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Buffer(
            /* [retval][out] */ BYTE * *value) = 0;

        virtual HRESULT STDMETHODCALLTYPE OpenStream(
            /* [retval][out] */ IStream * *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FileMappingHandle(
            /* [retval][out] */ HANDLE * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE Close(void) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2SharedBufferVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2SharedBuffer *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2SharedBuffer *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2SharedBuffer *This);

        DECLSPEC_XFGVIRT(ICoreWebView2SharedBuffer, get_Size)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Size)(
            ICoreWebView2SharedBuffer *This,
            /* [retval][out] */ UINT64 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SharedBuffer, get_Buffer)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Buffer)(
            ICoreWebView2SharedBuffer *This,
            /* [retval][out] */ BYTE **value);

        DECLSPEC_XFGVIRT(ICoreWebView2SharedBuffer, OpenStream)
        HRESULT(STDMETHODCALLTYPE *OpenStream)(
            ICoreWebView2SharedBuffer *This,
            /* [retval][out] */ IStream **value);

        DECLSPEC_XFGVIRT(ICoreWebView2SharedBuffer, get_FileMappingHandle)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_FileMappingHandle)(
            ICoreWebView2SharedBuffer *This,
            /* [retval][out] */ HANDLE *value);

        DECLSPEC_XFGVIRT(ICoreWebView2SharedBuffer, Close)
        HRESULT(STDMETHODCALLTYPE *Close)(
            ICoreWebView2SharedBuffer *This);

        END_INTERFACE
    } ICoreWebView2SharedBufferVtbl;

    interface ICoreWebView2SharedBuffer
    {
        CONST_VTBL struct ICoreWebView2SharedBufferVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2SharedBuffer_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2SharedBuffer_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2SharedBuffer_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2SharedBuffer_get_Size(This, value) \
    ((This)->lpVtbl->get_Size(This, value))

#define ICoreWebView2SharedBuffer_get_Buffer(This, value) \
    ((This)->lpVtbl->get_Buffer(This, value))

#define ICoreWebView2SharedBuffer_OpenStream(This, value) \
    ((This)->lpVtbl->OpenStream(This, value))

#define ICoreWebView2SharedBuffer_get_FileMappingHandle(This, value) \
    ((This)->lpVtbl->get_FileMappingHandle(This, value))

#define ICoreWebView2SharedBuffer_Close(This) \
    ((This)->lpVtbl->Close(This))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2SharedBuffer_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2SourceChangedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2SourceChangedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2SourceChangedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2SourceChangedEventArgs = {0x31e0e545, 0x1dba, 0x4266, {0x89, 0x14, 0xf6, 0x38, 0x48, 0xa1, 0xf7, 0xd7}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("31e0e545-1dba-4266-8914-f63848a1f7d7")
    ICoreWebView2SourceChangedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsNewDocument(
            /* [retval][out] */ BOOL * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2SourceChangedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2SourceChangedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2SourceChangedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2SourceChangedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2SourceChangedEventArgs, get_IsNewDocument)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_IsNewDocument)(
            ICoreWebView2SourceChangedEventArgs *This,
            /* [retval][out] */ BOOL *value);

        END_INTERFACE
    } ICoreWebView2SourceChangedEventArgsVtbl;

    interface ICoreWebView2SourceChangedEventArgs
    {
        CONST_VTBL struct ICoreWebView2SourceChangedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2SourceChangedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2SourceChangedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2SourceChangedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2SourceChangedEventArgs_get_IsNewDocument(This, value) \
    ((This)->lpVtbl->get_IsNewDocument(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2SourceChangedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebMessageReceivedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2WebMessageReceivedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebMessageReceivedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebMessageReceivedEventArgs = {0x0f99a40c, 0xe962, 0x4207, {0x9e, 0x92, 0xe3, 0xd5, 0x42, 0xef, 0xf8, 0x49}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("0f99a40c-e962-4207-9e92-e3d542eff849")
    ICoreWebView2WebMessageReceivedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Source(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_WebMessageAsJson(
            /* [retval][out] */ LPWSTR * value) = 0;

        virtual HRESULT STDMETHODCALLTYPE TryGetWebMessageAsString(
            /* [retval][out] */ LPWSTR * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebMessageReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebMessageReceivedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebMessageReceivedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebMessageReceivedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebMessageReceivedEventArgs, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2WebMessageReceivedEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WebMessageReceivedEventArgs, get_WebMessageAsJson)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_WebMessageAsJson)(
            ICoreWebView2WebMessageReceivedEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WebMessageReceivedEventArgs, TryGetWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *TryGetWebMessageAsString)(
            ICoreWebView2WebMessageReceivedEventArgs *This,
            /* [retval][out] */ LPWSTR *value);

        END_INTERFACE
    } ICoreWebView2WebMessageReceivedEventArgsVtbl;

    interface ICoreWebView2WebMessageReceivedEventArgs
    {
        CONST_VTBL struct ICoreWebView2WebMessageReceivedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebMessageReceivedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebMessageReceivedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebMessageReceivedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebMessageReceivedEventArgs_get_Source(This, value) \
    ((This)->lpVtbl->get_Source(This, value))

#define ICoreWebView2WebMessageReceivedEventArgs_get_WebMessageAsJson(This, value) \
    ((This)->lpVtbl->get_WebMessageAsJson(This, value))

#define ICoreWebView2WebMessageReceivedEventArgs_TryGetWebMessageAsString(This, value) \
    ((This)->lpVtbl->TryGetWebMessageAsString(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebMessageReceivedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebMessageReceivedEventArgs2_INTERFACE_DEFINED__
#define __ICoreWebView2WebMessageReceivedEventArgs2_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebMessageReceivedEventArgs2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebMessageReceivedEventArgs2 = {0x06fc7ab7, 0xc90c, 0x4297, {0x93, 0x89, 0x33, 0xca, 0x01, 0xcf, 0x6d, 0x5e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("06fc7ab7-c90c-4297-9389-33ca01cf6d5e")
    ICoreWebView2WebMessageReceivedEventArgs2 : public ICoreWebView2WebMessageReceivedEventArgs
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_AdditionalObjects(
            /* [retval][out] */ ICoreWebView2ObjectCollectionView * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebMessageReceivedEventArgs2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebMessageReceivedEventArgs2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebMessageReceivedEventArgs2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebMessageReceivedEventArgs2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebMessageReceivedEventArgs, get_Source)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Source)(
            ICoreWebView2WebMessageReceivedEventArgs2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WebMessageReceivedEventArgs, get_WebMessageAsJson)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_WebMessageAsJson)(
            ICoreWebView2WebMessageReceivedEventArgs2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WebMessageReceivedEventArgs, TryGetWebMessageAsString)
        HRESULT(STDMETHODCALLTYPE *TryGetWebMessageAsString)(
            ICoreWebView2WebMessageReceivedEventArgs2 *This,
            /* [retval][out] */ LPWSTR *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WebMessageReceivedEventArgs2, get_AdditionalObjects)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_AdditionalObjects)(
            ICoreWebView2WebMessageReceivedEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2ObjectCollectionView **value);

        END_INTERFACE
    } ICoreWebView2WebMessageReceivedEventArgs2Vtbl;

    interface ICoreWebView2WebMessageReceivedEventArgs2
    {
        CONST_VTBL struct ICoreWebView2WebMessageReceivedEventArgs2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebMessageReceivedEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebMessageReceivedEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebMessageReceivedEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebMessageReceivedEventArgs2_get_Source(This, value) \
    ((This)->lpVtbl->get_Source(This, value))

#define ICoreWebView2WebMessageReceivedEventArgs2_get_WebMessageAsJson(This, value) \
    ((This)->lpVtbl->get_WebMessageAsJson(This, value))

#define ICoreWebView2WebMessageReceivedEventArgs2_TryGetWebMessageAsString(This, value) \
    ((This)->lpVtbl->TryGetWebMessageAsString(This, value))

#define ICoreWebView2WebMessageReceivedEventArgs2_get_AdditionalObjects(This, value) \
    ((This)->lpVtbl->get_AdditionalObjects(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebMessageReceivedEventArgs2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebResourceRequest_INTERFACE_DEFINED__
#define __ICoreWebView2WebResourceRequest_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebResourceRequest */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebResourceRequest = {0x97055cd4, 0x512c, 0x4264, {0x8b, 0x5f, 0xe3, 0xf4, 0x46, 0xce, 0xa6, 0xa5}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("97055cd4-512c-4264-8b5f-e3f446cea6a5")
    ICoreWebView2WebResourceRequest : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Uri(
            /* [retval][out] */ LPWSTR * uri) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Uri(
            /* [in] */ LPCWSTR uri) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Method(
            /* [retval][out] */ LPWSTR * method) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Method(
            /* [in] */ LPCWSTR method) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Content(
            /* [retval][out] */ IStream * *content) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Content(
            /* [in] */ IStream * content) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Headers(
            /* [retval][out] */ ICoreWebView2HttpRequestHeaders * *headers) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebResourceRequestVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebResourceRequest *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebResourceRequest *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebResourceRequest *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequest, get_Uri)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Uri)(
            ICoreWebView2WebResourceRequest *This,
            /* [retval][out] */ LPWSTR *uri);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequest, put_Uri)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Uri)(
            ICoreWebView2WebResourceRequest *This,
            /* [in] */ LPCWSTR uri);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequest, get_Method)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Method)(
            ICoreWebView2WebResourceRequest *This,
            /* [retval][out] */ LPWSTR *method);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequest, put_Method)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Method)(
            ICoreWebView2WebResourceRequest *This,
            /* [in] */ LPCWSTR method);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequest, get_Content)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Content)(
            ICoreWebView2WebResourceRequest *This,
            /* [retval][out] */ IStream **content);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequest, put_Content)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Content)(
            ICoreWebView2WebResourceRequest *This,
            /* [in] */ IStream *content);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequest, get_Headers)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Headers)(
            ICoreWebView2WebResourceRequest *This,
            /* [retval][out] */ ICoreWebView2HttpRequestHeaders **headers);

        END_INTERFACE
    } ICoreWebView2WebResourceRequestVtbl;

    interface ICoreWebView2WebResourceRequest
    {
        CONST_VTBL struct ICoreWebView2WebResourceRequestVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebResourceRequest_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebResourceRequest_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebResourceRequest_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebResourceRequest_get_Uri(This, uri) \
    ((This)->lpVtbl->get_Uri(This, uri))

#define ICoreWebView2WebResourceRequest_put_Uri(This, uri) \
    ((This)->lpVtbl->put_Uri(This, uri))

#define ICoreWebView2WebResourceRequest_get_Method(This, method) \
    ((This)->lpVtbl->get_Method(This, method))

#define ICoreWebView2WebResourceRequest_put_Method(This, method) \
    ((This)->lpVtbl->put_Method(This, method))

#define ICoreWebView2WebResourceRequest_get_Content(This, content) \
    ((This)->lpVtbl->get_Content(This, content))

#define ICoreWebView2WebResourceRequest_put_Content(This, content) \
    ((This)->lpVtbl->put_Content(This, content))

#define ICoreWebView2WebResourceRequest_get_Headers(This, headers) \
    ((This)->lpVtbl->get_Headers(This, headers))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebResourceRequest_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebResourceRequestedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2WebResourceRequestedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebResourceRequestedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebResourceRequestedEventArgs = {0x453e667f, 0x12c7, 0x49d4, {0xbe, 0x6d, 0xdd, 0xbe, 0x79, 0x56, 0xf5, 0x7a}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("453e667f-12c7-49d4-be6d-ddbe7956f57a")
    ICoreWebView2WebResourceRequestedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Request(
            /* [retval][out] */ ICoreWebView2WebResourceRequest * *request) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Response(
            /* [retval][out] */ ICoreWebView2WebResourceResponse * *response) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Response(
            /* [in] */ ICoreWebView2WebResourceResponse * response) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetDeferral(
            /* [retval][out] */ ICoreWebView2Deferral * *deferral) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ResourceContext(
            /* [retval][out] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT * context) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebResourceRequestedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebResourceRequestedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebResourceRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebResourceRequestedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, get_Request)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Request)(
            ICoreWebView2WebResourceRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **request);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, get_Response)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Response)(
            ICoreWebView2WebResourceRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, put_Response)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Response)(
            ICoreWebView2WebResourceRequestedEventArgs *This,
            /* [in] */ ICoreWebView2WebResourceResponse *response);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2WebResourceRequestedEventArgs *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, get_ResourceContext)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ResourceContext)(
            ICoreWebView2WebResourceRequestedEventArgs *This,
            /* [retval][out] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT *context);

        END_INTERFACE
    } ICoreWebView2WebResourceRequestedEventArgsVtbl;

    interface ICoreWebView2WebResourceRequestedEventArgs
    {
        CONST_VTBL struct ICoreWebView2WebResourceRequestedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebResourceRequestedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebResourceRequestedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebResourceRequestedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebResourceRequestedEventArgs_get_Request(This, request) \
    ((This)->lpVtbl->get_Request(This, request))

#define ICoreWebView2WebResourceRequestedEventArgs_get_Response(This, response) \
    ((This)->lpVtbl->get_Response(This, response))

#define ICoreWebView2WebResourceRequestedEventArgs_put_Response(This, response) \
    ((This)->lpVtbl->put_Response(This, response))

#define ICoreWebView2WebResourceRequestedEventArgs_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#define ICoreWebView2WebResourceRequestedEventArgs_get_ResourceContext(This, context) \
    ((This)->lpVtbl->get_ResourceContext(This, context))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebResourceRequestedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebResourceRequestedEventArgs2_INTERFACE_DEFINED__
#define __ICoreWebView2WebResourceRequestedEventArgs2_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebResourceRequestedEventArgs2 */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebResourceRequestedEventArgs2 = {0x9c562c24, 0xb219, 0x4d7f, {0x92, 0xf6, 0xb1, 0x87, 0xfb, 0xba, 0xdd, 0x56}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("9c562c24-b219-4d7f-92f6-b187fbbadd56")
    ICoreWebView2WebResourceRequestedEventArgs2 : public ICoreWebView2WebResourceRequestedEventArgs
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_RequestedSourceKind(
            /* [retval][out] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebResourceRequestedEventArgs2Vtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebResourceRequestedEventArgs2 *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebResourceRequestedEventArgs2 *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebResourceRequestedEventArgs2 *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, get_Request)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Request)(
            ICoreWebView2WebResourceRequestedEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **request);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, get_Response)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Response)(
            ICoreWebView2WebResourceRequestedEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2WebResourceResponse **response);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, put_Response)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Response)(
            ICoreWebView2WebResourceRequestedEventArgs2 *This,
            /* [in] */ ICoreWebView2WebResourceResponse *response);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, GetDeferral)
        HRESULT(STDMETHODCALLTYPE *GetDeferral)(
            ICoreWebView2WebResourceRequestedEventArgs2 *This,
            /* [retval][out] */ ICoreWebView2Deferral **deferral);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs, get_ResourceContext)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ResourceContext)(
            ICoreWebView2WebResourceRequestedEventArgs2 *This,
            /* [retval][out] */ COREWEBVIEW2_WEB_RESOURCE_CONTEXT *context);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceRequestedEventArgs2, get_RequestedSourceKind)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_RequestedSourceKind)(
            ICoreWebView2WebResourceRequestedEventArgs2 *This,
            /* [retval][out] */ COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS *value);

        END_INTERFACE
    } ICoreWebView2WebResourceRequestedEventArgs2Vtbl;

    interface ICoreWebView2WebResourceRequestedEventArgs2
    {
        CONST_VTBL struct ICoreWebView2WebResourceRequestedEventArgs2Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebResourceRequestedEventArgs2_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebResourceRequestedEventArgs2_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebResourceRequestedEventArgs2_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebResourceRequestedEventArgs2_get_Request(This, request) \
    ((This)->lpVtbl->get_Request(This, request))

#define ICoreWebView2WebResourceRequestedEventArgs2_get_Response(This, response) \
    ((This)->lpVtbl->get_Response(This, response))

#define ICoreWebView2WebResourceRequestedEventArgs2_put_Response(This, response) \
    ((This)->lpVtbl->put_Response(This, response))

#define ICoreWebView2WebResourceRequestedEventArgs2_GetDeferral(This, deferral) \
    ((This)->lpVtbl->GetDeferral(This, deferral))

#define ICoreWebView2WebResourceRequestedEventArgs2_get_ResourceContext(This, context) \
    ((This)->lpVtbl->get_ResourceContext(This, context))

#define ICoreWebView2WebResourceRequestedEventArgs2_get_RequestedSourceKind(This, value) \
    ((This)->lpVtbl->get_RequestedSourceKind(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebResourceRequestedEventArgs2_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponse_INTERFACE_DEFINED__
#define __ICoreWebView2WebResourceResponse_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebResourceResponse */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebResourceResponse = {0xaafcc94f, 0xfa27, 0x48fd, {0x97, 0xdf, 0x83, 0x0e, 0xf7, 0x5a, 0xae, 0xc9}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("aafcc94f-fa27-48fd-97df-830ef75aaec9")
    ICoreWebView2WebResourceResponse : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Content(
            /* [retval][out] */ IStream * *content) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Content(
            /* [in] */ IStream * content) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Headers(
            /* [retval][out] */ ICoreWebView2HttpResponseHeaders * *headers) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StatusCode(
            /* [retval][out] */ int *statusCode) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_StatusCode(
            /* [in] */ int statusCode) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ReasonPhrase(
            /* [retval][out] */ LPWSTR * reasonPhrase) = 0;

        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_ReasonPhrase(
            /* [in] */ LPCWSTR reasonPhrase) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebResourceResponseVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebResourceResponse *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebResourceResponse *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebResourceResponse *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponse, get_Content)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Content)(
            ICoreWebView2WebResourceResponse *This,
            /* [retval][out] */ IStream **content);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponse, put_Content)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_Content)(
            ICoreWebView2WebResourceResponse *This,
            /* [in] */ IStream *content);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponse, get_Headers)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Headers)(
            ICoreWebView2WebResourceResponse *This,
            /* [retval][out] */ ICoreWebView2HttpResponseHeaders **headers);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponse, get_StatusCode)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusCode)(
            ICoreWebView2WebResourceResponse *This,
            /* [retval][out] */ int *statusCode);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponse, put_StatusCode)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_StatusCode)(
            ICoreWebView2WebResourceResponse *This,
            /* [in] */ int statusCode);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponse, get_ReasonPhrase)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ReasonPhrase)(
            ICoreWebView2WebResourceResponse *This,
            /* [retval][out] */ LPWSTR *reasonPhrase);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponse, put_ReasonPhrase)
        /* [propput] */ HRESULT(STDMETHODCALLTYPE *put_ReasonPhrase)(
            ICoreWebView2WebResourceResponse *This,
            /* [in] */ LPCWSTR reasonPhrase);

        END_INTERFACE
    } ICoreWebView2WebResourceResponseVtbl;

    interface ICoreWebView2WebResourceResponse
    {
        CONST_VTBL struct ICoreWebView2WebResourceResponseVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebResourceResponse_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebResourceResponse_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebResourceResponse_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebResourceResponse_get_Content(This, content) \
    ((This)->lpVtbl->get_Content(This, content))

#define ICoreWebView2WebResourceResponse_put_Content(This, content) \
    ((This)->lpVtbl->put_Content(This, content))

#define ICoreWebView2WebResourceResponse_get_Headers(This, headers) \
    ((This)->lpVtbl->get_Headers(This, headers))

#define ICoreWebView2WebResourceResponse_get_StatusCode(This, statusCode) \
    ((This)->lpVtbl->get_StatusCode(This, statusCode))

#define ICoreWebView2WebResourceResponse_put_StatusCode(This, statusCode) \
    ((This)->lpVtbl->put_StatusCode(This, statusCode))

#define ICoreWebView2WebResourceResponse_get_ReasonPhrase(This, reasonPhrase) \
    ((This)->lpVtbl->get_ReasonPhrase(This, reasonPhrase))

#define ICoreWebView2WebResourceResponse_put_ReasonPhrase(This, reasonPhrase) \
    ((This)->lpVtbl->put_ReasonPhrase(This, reasonPhrase))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebResourceResponse_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponseReceivedEventArgs_INTERFACE_DEFINED__
#define __ICoreWebView2WebResourceResponseReceivedEventArgs_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebResourceResponseReceivedEventArgs */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebResourceResponseReceivedEventArgs = {0xd1db483d, 0x6796, 0x4b8b, {0x80, 0xfc, 0x13, 0x71, 0x2b, 0xb7, 0x16, 0xf4}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("d1db483d-6796-4b8b-80fc-13712bb716f4")
    ICoreWebView2WebResourceResponseReceivedEventArgs : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Request(
            /* [retval][out] */ ICoreWebView2WebResourceRequest * *value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Response(
            /* [retval][out] */ ICoreWebView2WebResourceResponseView * *value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebResourceResponseReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebResourceResponseReceivedEventArgs *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebResourceResponseReceivedEventArgs *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebResourceResponseReceivedEventArgs *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponseReceivedEventArgs, get_Request)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Request)(
            ICoreWebView2WebResourceResponseReceivedEventArgs *This,
            /* [retval][out] */ ICoreWebView2WebResourceRequest **value);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponseReceivedEventArgs, get_Response)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Response)(
            ICoreWebView2WebResourceResponseReceivedEventArgs *This,
            /* [retval][out] */ ICoreWebView2WebResourceResponseView **value);

        END_INTERFACE
    } ICoreWebView2WebResourceResponseReceivedEventArgsVtbl;

    interface ICoreWebView2WebResourceResponseReceivedEventArgs
    {
        CONST_VTBL struct ICoreWebView2WebResourceResponseReceivedEventArgsVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebResourceResponseReceivedEventArgs_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebResourceResponseReceivedEventArgs_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebResourceResponseReceivedEventArgs_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebResourceResponseReceivedEventArgs_get_Request(This, value) \
    ((This)->lpVtbl->get_Request(This, value))

#define ICoreWebView2WebResourceResponseReceivedEventArgs_get_Response(This, value) \
    ((This)->lpVtbl->get_Response(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebResourceResponseReceivedEventArgs_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponseView_INTERFACE_DEFINED__
#define __ICoreWebView2WebResourceResponseView_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebResourceResponseView */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebResourceResponseView = {0x79701053, 0x7759, 0x4162, {0x8F, 0x7D, 0xF1, 0xB3, 0xF0, 0x84, 0x92, 0x8D}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("79701053-7759-4162-8F7D-F1B3F084928D")
    ICoreWebView2WebResourceResponseView : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Headers(
            /* [retval][out] */ ICoreWebView2HttpResponseHeaders * *headers) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_StatusCode(
            /* [retval][out] */ int *statusCode) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ReasonPhrase(
            /* [retval][out] */ LPWSTR * reasonPhrase) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetContent(
            /* [in] */ ICoreWebView2WebResourceResponseViewGetContentCompletedHandler * handler) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebResourceResponseViewVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebResourceResponseView *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebResourceResponseView *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebResourceResponseView *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponseView, get_Headers)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Headers)(
            ICoreWebView2WebResourceResponseView *This,
            /* [retval][out] */ ICoreWebView2HttpResponseHeaders **headers);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponseView, get_StatusCode)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_StatusCode)(
            ICoreWebView2WebResourceResponseView *This,
            /* [retval][out] */ int *statusCode);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponseView, get_ReasonPhrase)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ReasonPhrase)(
            ICoreWebView2WebResourceResponseView *This,
            /* [retval][out] */ LPWSTR *reasonPhrase);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponseView, GetContent)
        HRESULT(STDMETHODCALLTYPE *GetContent)(
            ICoreWebView2WebResourceResponseView *This,
            /* [in] */ ICoreWebView2WebResourceResponseViewGetContentCompletedHandler *handler);

        END_INTERFACE
    } ICoreWebView2WebResourceResponseViewVtbl;

    interface ICoreWebView2WebResourceResponseView
    {
        CONST_VTBL struct ICoreWebView2WebResourceResponseViewVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebResourceResponseView_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebResourceResponseView_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebResourceResponseView_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebResourceResponseView_get_Headers(This, headers) \
    ((This)->lpVtbl->get_Headers(This, headers))

#define ICoreWebView2WebResourceResponseView_get_StatusCode(This, statusCode) \
    ((This)->lpVtbl->get_StatusCode(This, statusCode))

#define ICoreWebView2WebResourceResponseView_get_ReasonPhrase(This, reasonPhrase) \
    ((This)->lpVtbl->get_ReasonPhrase(This, reasonPhrase))

#define ICoreWebView2WebResourceResponseView_GetContent(This, handler) \
    ((This)->lpVtbl->GetContent(This, handler))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebResourceResponseView_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_INTERFACE_DEFINED__
#define __ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_INTERFACE_DEFINED__

    /* interface ICoreWebView2WebResourceResponseViewGetContentCompletedHandler */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WebResourceResponseViewGetContentCompletedHandler = {0x875738e1, 0x9fa2, 0x40e3, {0x8b, 0x74, 0x2e, 0x89, 0x72, 0xdd, 0x6f, 0xe7}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("875738e1-9fa2-40e3-8b74-2e8972dd6fe7")
    ICoreWebView2WebResourceResponseViewGetContentCompletedHandler : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke(
            /* [in] */ HRESULT errorCode,
            /* [in] */ IStream * result) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WebResourceResponseViewGetContentCompletedHandlerVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WebResourceResponseViewGetContentCompletedHandler *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WebResourceResponseViewGetContentCompletedHandler *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WebResourceResponseViewGetContentCompletedHandler *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WebResourceResponseViewGetContentCompletedHandler, Invoke)
        HRESULT(STDMETHODCALLTYPE *Invoke)(
            ICoreWebView2WebResourceResponseViewGetContentCompletedHandler *This,
            /* [in] */ HRESULT errorCode,
            /* [in] */ IStream *result);

        END_INTERFACE
    } ICoreWebView2WebResourceResponseViewGetContentCompletedHandlerVtbl;

    interface ICoreWebView2WebResourceResponseViewGetContentCompletedHandler
    {
        CONST_VTBL struct ICoreWebView2WebResourceResponseViewGetContentCompletedHandlerVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_Invoke(This, errorCode, result) \
    ((This)->lpVtbl->Invoke(This, errorCode, result))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WebResourceResponseViewGetContentCompletedHandler_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2WindowFeatures_INTERFACE_DEFINED__
#define __ICoreWebView2WindowFeatures_INTERFACE_DEFINED__

    /* interface ICoreWebView2WindowFeatures */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2WindowFeatures = {0x5eaf559f, 0xb46e, 0x4397, {0x88, 0x60, 0xe4, 0x22, 0xf2, 0x87, 0xff, 0x1e}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("5eaf559f-b46e-4397-8860-e422f287ff1e")
    ICoreWebView2WindowFeatures : public IUnknown
    {
    public:
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasPosition(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HasSize(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Left(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Top(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Height(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Width(
            /* [retval][out] */ UINT32 * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShouldDisplayMenuBar(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShouldDisplayStatus(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShouldDisplayToolbar(
            /* [retval][out] */ BOOL * value) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ShouldDisplayScrollBars(
            /* [retval][out] */ BOOL * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2WindowFeaturesVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2WindowFeatures *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2WindowFeatures *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2WindowFeatures *This);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_HasPosition)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HasPosition)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_HasSize)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_HasSize)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_Left)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Left)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_Top)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Top)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_Height)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Height)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_Width)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Width)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ UINT32 *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_ShouldDisplayMenuBar)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldDisplayMenuBar)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_ShouldDisplayStatus)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldDisplayStatus)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_ShouldDisplayToolbar)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldDisplayToolbar)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ BOOL *value);

        DECLSPEC_XFGVIRT(ICoreWebView2WindowFeatures, get_ShouldDisplayScrollBars)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_ShouldDisplayScrollBars)(
            ICoreWebView2WindowFeatures *This,
            /* [retval][out] */ BOOL *value);

        END_INTERFACE
    } ICoreWebView2WindowFeaturesVtbl;

    interface ICoreWebView2WindowFeatures
    {
        CONST_VTBL struct ICoreWebView2WindowFeaturesVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2WindowFeatures_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2WindowFeatures_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2WindowFeatures_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2WindowFeatures_get_HasPosition(This, value) \
    ((This)->lpVtbl->get_HasPosition(This, value))

#define ICoreWebView2WindowFeatures_get_HasSize(This, value) \
    ((This)->lpVtbl->get_HasSize(This, value))

#define ICoreWebView2WindowFeatures_get_Left(This, value) \
    ((This)->lpVtbl->get_Left(This, value))

#define ICoreWebView2WindowFeatures_get_Top(This, value) \
    ((This)->lpVtbl->get_Top(This, value))

#define ICoreWebView2WindowFeatures_get_Height(This, value) \
    ((This)->lpVtbl->get_Height(This, value))

#define ICoreWebView2WindowFeatures_get_Width(This, value) \
    ((This)->lpVtbl->get_Width(This, value))

#define ICoreWebView2WindowFeatures_get_ShouldDisplayMenuBar(This, value) \
    ((This)->lpVtbl->get_ShouldDisplayMenuBar(This, value))

#define ICoreWebView2WindowFeatures_get_ShouldDisplayStatus(This, value) \
    ((This)->lpVtbl->get_ShouldDisplayStatus(This, value))

#define ICoreWebView2WindowFeatures_get_ShouldDisplayToolbar(This, value) \
    ((This)->lpVtbl->get_ShouldDisplayToolbar(This, value))

#define ICoreWebView2WindowFeatures_get_ShouldDisplayScrollBars(This, value) \
    ((This)->lpVtbl->get_ShouldDisplayScrollBars(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2WindowFeatures_INTERFACE_DEFINED__ */

#ifndef __ICoreWebView2PermissionSettingCollectionView_INTERFACE_DEFINED__
#define __ICoreWebView2PermissionSettingCollectionView_INTERFACE_DEFINED__

    /* interface ICoreWebView2PermissionSettingCollectionView */
    /* [unique][object][uuid] */

    EXTERN_C __declspec(selectany) const IID IID_ICoreWebView2PermissionSettingCollectionView = {0xf5596f62, 0x3de5, 0x47b1, {0x91, 0xe8, 0xa4, 0x10, 0x4b, 0x59, 0x6b, 0x96}};

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("f5596f62-3de5-47b1-91e8-a4104b596b96")
    ICoreWebView2PermissionSettingCollectionView : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE GetValueAtIndex(
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2PermissionSetting * *permissionSetting) = 0;

        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Count(
            /* [retval][out] */ UINT32 * value) = 0;
    };

#else /* C style interface */

    typedef struct ICoreWebView2PermissionSettingCollectionViewVtbl
    {
        BEGIN_INTERFACE

        DECLSPEC_XFGVIRT(IUnknown, QueryInterface)
        HRESULT(STDMETHODCALLTYPE *QueryInterface)(
            ICoreWebView2PermissionSettingCollectionView *This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_ void **ppvObject);

        DECLSPEC_XFGVIRT(IUnknown, AddRef)
        ULONG(STDMETHODCALLTYPE *AddRef)(
            ICoreWebView2PermissionSettingCollectionView *This);

        DECLSPEC_XFGVIRT(IUnknown, Release)
        ULONG(STDMETHODCALLTYPE *Release)(
            ICoreWebView2PermissionSettingCollectionView *This);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionSettingCollectionView, GetValueAtIndex)
        HRESULT(STDMETHODCALLTYPE *GetValueAtIndex)(
            ICoreWebView2PermissionSettingCollectionView *This,
            /* [in] */ UINT32 index,
            /* [retval][out] */ ICoreWebView2PermissionSetting **permissionSetting);

        DECLSPEC_XFGVIRT(ICoreWebView2PermissionSettingCollectionView, get_Count)
        /* [propget] */ HRESULT(STDMETHODCALLTYPE *get_Count)(
            ICoreWebView2PermissionSettingCollectionView *This,
            /* [retval][out] */ UINT32 *value);

        END_INTERFACE
    } ICoreWebView2PermissionSettingCollectionViewVtbl;

    interface ICoreWebView2PermissionSettingCollectionView
    {
        CONST_VTBL struct ICoreWebView2PermissionSettingCollectionViewVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define ICoreWebView2PermissionSettingCollectionView_QueryInterface(This, riid, ppvObject) \
    ((This)->lpVtbl->QueryInterface(This, riid, ppvObject))

#define ICoreWebView2PermissionSettingCollectionView_AddRef(This) \
    ((This)->lpVtbl->AddRef(This))

#define ICoreWebView2PermissionSettingCollectionView_Release(This) \
    ((This)->lpVtbl->Release(This))

#define ICoreWebView2PermissionSettingCollectionView_GetValueAtIndex(This, index, permissionSetting) \
    ((This)->lpVtbl->GetValueAtIndex(This, index, permissionSetting))

#define ICoreWebView2PermissionSettingCollectionView_get_Count(This, value) \
    ((This)->lpVtbl->get_Count(This, value))

#endif /* COBJMACROS */

#endif /* C style interface */

#endif /* __ICoreWebView2PermissionSettingCollectionView_INTERFACE_DEFINED__ */

#endif /* __WebView2_LIBRARY_DEFINED__ */

    /* Additional Prototypes for ALL interfaces */

    /* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif
